CMMI之IDEAL模型
2016-05-07 08:59阅读:
1.IDEAL模型概念
软件过程能力成熟度模型是美国卡内基·梅隆大学软件工程研究所
SEI(Software Engineering
Institution)从1986年开始研究并完成的,它侧重于对软件开发过程和开发方法论的考察。CMM包括5级:①初始级(Initial);②可重复级(Repeatable);③已定义级(De-fined);④已管理级(Managed);⑤优化级(Optimizing)。CMM提供了一整套较为完善的软件研发项目管理的方法。美国先后在这上面投资了5亿多美元,做了很多实践工作来改进软件研发项目管理,而且其内容还在不断地改进,SW-CMM
1.1版本推出后,又推出了SW-CMM
2.0草案。目前,已取消了单独的CMM,正在开发CMMI,其模型包括CMMI-SW,CMMI-SE,CMMI-SE/SW,CMMI-SE/SW/IPPD。
SEI又与
HP公司合作,提出了实施SW-CMM的IDEAL模型。IDEAL模型是一个单位用于启动、规划和实现过程改善措施蓝图的模型,概括了建立一个成功的过程改善项目的必要步骤,其中I代表Initiating(启动)、D代表Diagnosing(诊断)、E代表Establishing(建造)、A代表Acting(实施)、L代表Learning(学习)。图1是详细的IDEAL五阶段模型。

图
1 详细的IDEAL五阶段模型
其中:启动—获得改进的支持和责任;诊断—确定改进范围;建立—选择和计划特
定的改进活动;实施—设计、指导、实现以及改进制度化;学习—确定基于
IDEAL模型的改进活动。其两维观点见图2。

图
2 过程改进活动的两维观点
图
2说明了IDEAL模型的两维结构,它处理过程改进中的两种不同操作级别:
①
战略级 这些过程主要是高层领导的责任。
②
战术级 这些过程主要由产品线经理和参与者执行。
图
3说明支持软件过程改进(Software Process
Improvement,SPI)的因素。其中基础设施能够在需要时提供资源;对工作的方向、范围和进度提供建议;为SPI程序顺利前进排除障碍。其目的是维持SPI程序的可视性;方便和鼓励信息共享;抓住和保存经验教训并发展改进;提供支持网络。

图
3 成功的过程改进
2.IDEAL模型各个阶段
2.1启动阶段。该阶段要学习过程改进、约定启动资源并建立过程基础设施。最主要的是建立管理操作组(
Management
Steering Group,MSG)和软件工程过程组(Software Engineering Process
Group,SEPG)。常常形成一个问题发现小组(Discovery
Team)研究有关议题(Issues),并开发软件过程(Software Process
Improvement,SPI)改进建议给高层管理者。
启动阶段任务如下:①开始;②识别改进的商业需要和推动者;③建立
SPI提议;④教育和建立支持;⑤获得SPI提议的批准和启动资源;⑥建立软件过程改进基础设施;⑦评估SPI的情况(Climate);⑧确定SPI总的目标;⑨确定SPI程序的指导原则;⑩正式启动。
2.2诊断阶段。该阶段建立当前过程的成熟度、过程说明、度量等等并启动行动计划的开发。
诊断阶段任务如下:①确定需要的基准(
Baselines);②基准计划;③指导(Conduct)基准;④结果(Findings)展示;⑤开发最终结果和建议报告;⑥与组织就最终结果和建议报告进行沟通。
2.3建立阶段。该阶段建立目标和优先权,完成行动计划的开发。
建立阶段任务如下:①选择和得到战略规划过程的培训;②评审组织愿景(
Vision);③评审组织的商业计划;④确定关键商业议题;⑤评审过去的改进工作;⑥说明改进的动机;⑦确定当前和将来的改进工作;⑧确定不同基础设施实体的角色和责任;⑨确定改进活动和开发议题的优先级;⑩协调在基准结论和建议内已有和计划的改进工作;⑾将一般的SPI目标变成特定的可度量的目标;⑿建立和更新SPI战略计划;⒀建立审计、评审,并批准SPI战略计划,约定行动的资源;⒁形成技术工作组(Technical
Working Group,TWG)。
2.4行动阶段。阶段研究和开发过程问题的解决方案,并扩展成功的过程改进到整个组织。
行动阶段任务如下:①完成
TWG的具体计划;②开发解决方案;③试验有潜力的解决方案;④选择解决方案提供商;⑤确定长期的支持需要;⑥开发首次(Rollout)实行的战略和计划的模板;⑦整理改进(模板)并交给SEPG;⑧解散TWG;⑨首次实行解决方案;⑩转移到长期支持。
2.5学习阶段。该阶段准备再次通过
IDEAL模型,应用学到的经验教训完善SPI过程。
学习阶段任务如下:①收集学到的经验教训;②分析学到的经验教训;③修改组织方法;④评审保证人和约定;⑤建立高级的目标;⑥开发新的
/修改的SPI提议;⑦继续进行SPI。
2.6管理软件过程改进。对改进过程提供监督并解决相应的问题。
管理软件过程改进任务如下:①设置软件过程改进的阶段(
SPI);②组织SPI程序;③计划SPI程序;④SPI程序人员组织;⑤监督SPI程序;⑥指导SPI程序。
大多数情况下
SPI的组织基础设施由三个部分组成(见图4):软件工程过程组(SEPG)、管理指导组(MSG)和技术工作组(TWG)。

图
4 典型的SPI基础设施
第一位并且最重要的是
SEPG,有时也叫过程组。SEPG在SPI程序中为组织执行许多功能。SEPG可以:有利于在环境变化时对SPI程序提供持续的支持;建立和加强与保证人的关系;培育和持续个人的改进活动;保证在全组织内协调这些活动。
由
MSG任命SEPG。任命书作为管理层和SEPG的协议。提出任命书概括出SEPG的角色、责任和权威。任务是建立MSG;建立SEPG;开发SEPG(MSG)的任命书;向保证人演示改进活动;开发TWGs的任命书模板。
3.IDEAL模型与PDCA周期
巴西电信公司(
NEC do
Brassil,NDB)在实施SPI时采用了PDCA周期:其中P代表Plan(计划)、D代表Do(行动)、C代表Check(检查)、A代表Act(实施)。采用PDCA周期的理由如下:
(
1)PDCA周期与客户驱动质量管理概念中建立的连续改进结构一致;
(
2)PDCA周期实践和术语已经在NDB中制度化了;
(
3)PDCA周期包括了绝大多数IDEAL的目标需求。
基于
IDEAL模型与PDCA周期的分析和剪裁,SPI可以结构化为如下阶段(见表1)。

表
1 SPI的PDCA周期
4.提高CMM的级别的模型ICASE
ICASE是一个基本的系统开发过程改进模型,软件开发组织可以用来达到其希望提高
CMM级别的目的。其中I代表Investigation(调查):即调查组织的系统开发过程的现有状态;C代表Construction(建立):即在组织内部建立一种意识,使开发人员和管理人员进入改进系统开发过程的概念中;A代表Action(行动):即在组织中对必须要求的过程改进行动建立一张清单;S代表Selection(选择):即选择一个计划以达到要求的行动;E代表Execution(执行):即提交执行计划必需的资源。
最后,当开始不断在
CMM级别进行改进时,重复这一过程。
5.CMM实施方法论的若干讨论
中国哲学讲阴阳,讲和谐,讲平衡。讲和谐、讲平衡不是不想前进,和谐就是有运动才能发出声响的东西。平衡更是非同小可,在运动中需要格外讲究。譬如滑冰,向前滑行了就必须寻找平衡,只讲前进不找平衡,一定跌倒。要不断前进就必须不断寻找平衡,平衡与和谐就是前进的主旋律。
软件过程是关系错综复杂的各种活动的集合,各活动之间有时有严格的时序关系,有时是异步并行的,有时互为条件,有时互为反馈,因此实际的软件过程中的活动存在着一种复杂的网状关系。软件开发是一个高度动态的过程,动态变化渗透到了软件过程的各个方面:需求说明、任务分配、调试、开发策略、工具集、支持环境等,这些变化的出现通常不可预料,造成的影响也无法确定。同时,软件过程是一个面向人的系统,而软件本身又是一种无形的产品,这就导致了工作进度难以控制,工作质量难以评估,整个过程存在极大的模糊性。我们认为
SW-CMM的对策是:无规矩不成方圆(按部就班写文档);不积跬步无以至千里(积小成多,量变到质变);平衡与和谐(循序渐进,稳中求变,有序和创造相统一),似乎应该再加上适者生存(市场复杂多变,项目管理与战略管理相结合)。我们认为对我国软件企业,技术和管理要一起抓,国外大学开设信息技术管理学院似乎较我国普遍采用的电子商务学院更有效、更实在。此外,CMM也不是全能的,我们从美国和印度的情况中发现它较适合用户定制的大型软件应用系统和软件出口,似乎不太适应以软件产品占领市场的软件公司,例如金山和北大方正。微软公司的哲理是追求高度灵活,企图把一种松散(有时称Hacker)组织成的小组风格提升成正规的产品开发就是证明。因此,如何增强CMM的灵活性也应该认真研究,这对目前中国软件企业也很重要。中国软件企业现在最欠缺的就是管理以及有创新思维的人才。是否能够像培养MBA那样,培养大量IT技术管理的将才,让这些将才在全球市场经济的竞争中自学成帅,以改变中国IT界“兵多将少没有帅”的局面?
我们在研究中初步发现能力形成过程中有两点值得重视,现提出共同探讨:一是学习方式的变化。早期以农业经济为主,人类知识总量也较少,学习主要是增加知识数量;随着人类知识总量的增加和工业化的发展,有效地发挥所学知识的作用就显得重要了,要学以致用;近年来,随着信息技术和互联网迅速发展,人类知识总量爆炸式增加,为适应经济全球化的复杂多变环境,就要求掌握知识,发展学习能力和基础素质,基础素质又反过来发展学习能力,信息时代必须重视终身学习、实时学习、高效学习再加上组织学习,要温故而创新。其二是通识能力的培养,就是要见多识广,以达到“海阔凭鱼跃,天高任鸟飞”的境界。