关于在公司实施基于CMM/PSP过程改进的建议(转载)
发表于:2007-06-30来源:作者:点击数:
标签:
无语东流 近年来,CMM在我国获得了各界越来越多关注,业界有过多次关于CMM的讨论,国务院发布的《鼓励软件产业和集成电路产业发展的若干政策》(国发[2000]18号)对中国软件企业申请CMM认证给予了积极的支持,在第17条规定“对软件出口型企业CMM认证费用予以
无语东流
近年来,CMM在我国获得了各界越来越多关注,业界有过多次关于CMM的讨论,国务院发布的《鼓励软件产业和集成电路产业发展的若干政策》(国发[2000]18号)对中国软件企业申请CMM认证给予了积极的支持,在第17条规定“对软件出口型企业CMM认证费用予以适当支持”。鼎新、联想、方正、金蝶、用友、浪潮、创智、华为、东大阿尔派等大型集团或企业等都从1997---2000年起批企业都在进行研究、实验或实施预评估。其中鼎新、联想、东大阿尔派、西安博通、用友、华为等几家软件公司已经通过了CMM评估。
今年三月,我有幸被公司派到北京参加了为期3天的
项目管理培训。在培训期间,着重介绍了CMM,并听取了中国摩托罗拉公司(CMM5级)高级经理和北京鼎新公司(CMM2级)副总经理介绍了实施CMM的经验。回到公司后,我收集了CMM相关资料,并分析了公司这些年来存在的一些问题,深深地感觉到,在公司内部建立
质量保证体系,实施CMM改进过程的必要和迫切。
1 .CMM概述
CMM是软件能力成熟度(the Capability Maturity Model for Software)的简称,是美国卡内几—梅隆大学
软件工程研究所(Carnegie Mellon University Software Engineering Institute, 缩写为CMU/SEI)首先提出的。1987年在美国国防部支持下,卡内几—梅隆大学率先推出了软件过程评估项目的研究成果——软件过程能力成熟度模型CMM。很快就引起了软件界的广泛关注,并在此后引发了一系列反响,以至在其基础上形成了国际标准(ISO/IEC 15504)。
CMM模型为较全面地描述和分析软件过程能力的发展程度,建立了一个描述一个组织的软件过程成熟度的分级标准。利用它,软件组织可以评估自己当前的过程成熟程度,并通过提出严格的软件质量标准和过程改进,来选择自己的改进策略,以达到高级的成熟度。CMM模型提供了一种结构,组织成五个成熟性级别,其主要特征为:
(1)初始级。软件过程的特点是杂乱无章,有时甚至混乱,几乎没有明确定义的步骤,成功完全依赖个人努力和英雄式核心人物,管理是反应式(消防式)。
(2)可重复级。建立了基本的项目管理过程来跟踪成本、进度和功能特性,制定了必要的过程纪律,能重复早先类似应用项目取得成功。
(3)已定义级。管理和工程的软件过程已文件化、标准化,并综合成整个软件
开发组织的标准软件过程。所有项目都采用根据实际情况修改后得到的标准软件过程来发展和维护软件。
(4)定量管理级。制定了软件过程和产品质量详细的
度量标准。软件过程和产品的质量都被开发组织的成员所理解和控制。
(5)优化级。加强了定量分析,通过来自过程质量反馈和来自新观念、新科技的反馈使过程能不断持续地改进。
基于这种级别的划分,可以标识软件组织的过程能力,还可以方便地和有所遵循地实现持续不断改进。因为,每种级别都提供了一个软件过程改进层次,达到成熟性结构每一个层次是通过实现软件过程中的一些标准来实现的。这种方法同样使软件企业的软件能力得到提高。
2 .CMM的作用
CMM有两个基本用途:软件过程评估和软件能力评价。软件过程评估,目的是确定一个组织的当前软件过程的状态,找出组织所面临的急需解决的与软件过程有关问题,进而有步骤地实施软件过程改进,使组织的软件过程能力不断提高。软件能力评价,目的是识别合格的能完成软件工程项目的承制方,或者监控承制方现有软件工作中软件过程的状态,进而提出承制方应改进之处。
根据SEI的统计,软件企业在引入CMM后劳动生产率平均增长了35%;错误比率平均减少39%;平均成本回报率为5:1。(见表1)
类别 |
范围 |
平均 |
生产率提高/年 |
9%—67% |
35% |
上市时间(提早/年) |
15%—23% |
/ |
发布后的缺陷(减少/年) |
10%—94% |
39% |
收益比 |
4.0:1~8.8:1 |
5:1 |
表1 CMM的改进数据
据国内通过CMM评估的企业介绍,企业内部实施CMM改造后,收到了以下成效:
提高研发效率、保证质量、降低风险,保证开发出满足客户需求的产品,同时得到国际认可。
做事方法逐渐变得标准化、规范化了。规范的过程控制,将软件企业由于人员流动带来的风险降到了最低,同时还促使员工养成良好的职业素养。
效率不断在提高,时间控制更严格,品质更有保证,管理更有序。可以逐渐具备承接跨地区、跨部门的大型项目的实力。
CMM带来最大的改变就是把隐性管理变为了显性管理。
3.PSP概述
CMM不是万能的,它的成功与否,与一个组织内部有关人员的积极参与和创造性活动是密不可分的,而且CMM并未提供实现有关子过程域所需要的具体
知识和技能,或者就如何选择、雇佣、激励和留住有能力的人,提出建议。因此,CMU/SEI在CMM1.1的基础上又提出了PSP和TSP。
PSP是个体软件过程(Personal Software Process)的简称,是由美国Carnegie Mellon大学软件工程研究所(CMU/SEI)的Watts s. Humphrey领导开发的,于1995年它的推出,在软件工程界引起了极大的轰动,可以说是由定向软件工程走向定量软件工程的一个标志。PSP是一种可用于控制、管理和改进个人工作方式的自我改善过程,是一个包括软件开发表格、指南和规程的结构化框架。
PSP为基于个体和小型群组软件过程的优化提供了具体而有效的途径,例如如何制订计划,如何控制质量,如何与其他人相互协作等等。在软件设计阶段, PSP的着眼点在于
软件缺陷的预防,其具体办法是强化设计结束准则,而不是设计方法的选择。根据对参加培训的104位软件人员的统计数据表明,在应用了PSP后,软件中总的差错减少了58.0%,在
测试阶段发现的差错减少了71.0%,生产效率提高了20.0%。
PSP的研究结果还表明,绝大多数软件缺陷是由于对问题的错误理解或简单的失误所造成的,只有很少一部分是由于技术问题而产生的。而且根据多年来的软件工程统计数据表明,如果在设计阶段注入一个差错,则这个差错在编码阶段引发了3一5个新的缺陷,要修复这些缺陷所花的费用要比修复这个设计缺陷所花的费用多一个数量级。因此,PSP保障软件产品质量的一个重要途径是提高设计质量。
4.PSP的作用
使用自底向上的方法来改进过程,向每个软件工程师表明过程改进的原则,使他们能够明白如何有效地生产出高质量的软件。
为基于个体和小型群组软件过程的优化提供了具体而有效的途径。其研究与实践填补了CMM的空白。
帮助软件工程师在个人的基础上运用过程的原则,借助于PSP提供的一些度量和分析工具,了解自己的技能水平,控制和管理自己的工作方式,使自己日常工作的评估、计划和预测更加准确、更加有效,进而改进个人的工作表现,提高个人的工作质量和产量,积极而有效地参与高级管理人员和过程人员推动的组织范围的软件工程过程改进。
5.TSP概述
TSP是群组软件过程(Team Software Process)的简称,致力于开发高质量的产品,建立、管理和授权项目小组,并且指导他们如何在满足计划费用的前提下,在承诺的期限范围内,不断生产并交付高质量的产品。
TSP指导项目组中的成员如何有效地规划和管理所面临的项目开发任务,并且告诉管理人员如何指导软件开发队伍。始终以最佳状态来完成工作。TSP实施集体管理与自己管理自己相结合的原则,最终目的在于指导开发人员如何在最少的时间内,以预定的费用生产出高质量的软件产品,所采用的方法是对群组开发过程的定义、度量和改进。
6.实现TSP方法需要具备的条件
需要有高层主管和各级经理的支持,以取得必要的资源。
整个软件开发小组至少应在CMM的第二级(可重复级)。
全体软件开发人员必须经过PSP的培训,并有按TSP工作的愿望和热情。
开发小组成员应在2到20个人之间。
7.公司面临的问题
管理不规范,分工不明确、职责不明确,工作效率不高。
软件过程比较混乱,几乎没有明确定义的步骤,成功完全依赖个人努力。经常出现开发成本过高、产品交付超期等现象。
质量管理薄弱,缺乏有效的质量保证手段,产品质量不高。
新技术更进较慢,导致开发出来的产品难以保证市场领先地位,再加上现有产品维护成本太高,如果不更新技术,难以保持竞争优势。
关键技术掌握在个人手中,公司难以保证可重复开发。
8.实施CMM改进过程的建议
加强质量管理,提高产品质量,是企业的生存之本,实施CMM进行软件企业改造也不大势所趋,发展必然。信息产业部有关人员表示,在今后的软件企业评审中,也要参照CMM标准。实施CMM,早实施早受益,投入大,收益大。现在不是说要不要实施CMM的问题,而是应该说如何实施,要投入多大力度的问题。
实施CMM进行企业过程改造,需要大量人力、物力、财力的投入,我们可以针对公司最薄弱环节,最容易出成效的地方着手,首先实施PSP,进行个体软件过程改造,提高个人工作质量和产量。在此基础上,再实施CMM2级改造,提高组织过程能力。在实施CMM的过程中,引入先进的计算机辅助软件工程(CASE)工具,比如项目管理工具、
配置管理工具、
面向对象建模工具、文档生成工具等,以提高工作效率。
原文转自:http://www.ltesting.net