高品质软件,Rational工艺[4] 软件测试
5.1 流程改进的标准
目前国内很多企业都在应用ISO9000、CMMI、6 Sigma等方法来改进自身的流程,它们的目标都是一致的,都是要帮助企业来不断改进生产工艺,提高产品质量。这些标准实际上都是对质量管理大师戴明的全面质量控制TQC (Total Quality Control) 理论为依据的实践,这些标准各不相同,但是它们殊途同归,都是为了帮助企业提高质量。其中国际化标准组织制定的ISO9000较多应用于生产制造型企业,在软件团队中应用较多的是CMMI和6 Sigma。
CMMI是美国卡耐基梅陇大学软件工程研究所制定的一个企业能力成熟度综合改进模型,该模型根据企业在质量管理能力上的强弱而将企业分为不同的成熟度等级,获得CMMI成熟度能力级别的"认证"成为很多企业追求的目标,实际上该"认证"是由SEI授权的主任评估师出具的一份关于该企业在某一段时期内的生产流程是否附合CMMI模型规定的评估报告。企业不应以追求达到某一CMMI成熟度级别为最终目标,我们要达到的实际目标是不断地改进流程以提高质量,CMMI的成熟级别只是让企业对目前自身所达到的质量管理水平有一个量化的认识而已,从而帮助了解自己还有那些方面的差距而需要做进一步的提高。值得注意的是CMMI模型中第5级所关注的主要问题就是不断地优化流程,以帮助企业获得更高的质量。
6 Sigma 则定义一个流程改进的具体方法,称之为 DMAIC 模型:
定义 (Define)
定义问题并确定重要的内容
度量 (Measurement)
度量当前过程
分析 (Analysis)
分析错误和潜在的解决方案
改进 (Improvement)
通过实现解决方案来改进过程
控制 (Control)
通过确保这些改进被继续保持下去来控制改进了的过程
无论是部署IBM Rational软件开发平台还是实施CMMI的过程中都可以应用6 Sigma的方法来持续地改进软件开发流程。
5.2 走出CMMI实践的误区
国内部分软件企业实施了基于CMMI模型的流程改进之后,普遍感觉到自身的开发水平和产品质量并没有得到预期的提升。其中涉及到几个方面的原因,一个就是流程改进措施是否落到了实处,是不是开发过程中每一个环节每一个角色都切实执行了流程改进的措施;而不是仅仅将流程改进落在了容易体现成果的"文档"上,从应付审查的角度来说"文档"是最有效的证据,但这并不企业进行流程改进的目标。
另一方面我们应该充分认识到流程改进的复杂性,改进意味着改变现有的工作习惯,如果没有让所有的团队成员统一认识到流程改进的前景目标,可以想象这种改进工作一定会受到来自各方面的阻力,从而影响改进的效果,或者使流程改进流于形式。另外我们也看到一些CMMI流程改进的速成案例,一个软件企业可以在一两年内就可以完成CMMI模型中几个成塾度级别的飞跃,可以想象这种大跃进的实际效果如何。
第三就是CMMI 为软件团队的流程改进提供了一个系统的框架,但是它所提供的只是一个流程框架,在实践过程中还需要具体工程技术的支持。如对于CMMI 中的每一个目标,CMMI 建议了一些实践来达到该目标,但这些实践只是提出了在具体实践过程应该注意的事项,并没有列出具体可采用的工程技术。因为作为一个标准,它不可能局陷在某一特定的工程技术之上,不同的软件组织可以采用不同的技术手段来达到相同的目标。
实际上CMMI模型有两种不同的表述形式,阶段式表述和连续式表述,后者建议企业根据自身的情况,优先改进自身最为薄弱的环节,这种改进可以循序渐进的,相比前者每次改进的步骤都比较小,从而更易于见到实际效果。由于众所周知的原因,绝大多数企业都选择CMMI的阶段式表述模型来指导流程改进工作。
5.3 保证流程改进的效果
应该如何保证流程改进的效果呢?我们建议软件团队可以在基于CMMI模型进行流程改进的同时,同时导入RUP流程。CMMI实施过程中要求软件团队改进自己的流程以满足模型中的标准规定,对于任何一个团队而言,制定一个完善的开发流程是非常困难的,因为这个流程既要能满足CMMI模型的定义又必须是一个实际可操作的流程。而RUP是从软件开发的实践经验中总结出来的流程,它是一个实际可执行的流程;同时RUP又是一个非常完善的软件开发过程,RUP中几乎所有的内容都是与CMMI模型相兼容的。当然CMMI模型的范畴要比RUP更广一些,不过当软件团队导入RUP流程之后,再去对照CMMI模型进行改进的难度和工作量就不大了。
CMMI流程的实施也需要落到日常开发工作的每一个环节,IBM 软件开发平台正好作为一种特定的工程技术解决方案为 CMMI 流程改进提供了一种具体可操作的实践手段,CMMI 中很多过程域都有相关的Rational解决方案与之相对应。例如:CMMI模型中的"需求开发 (Requirement Develop)"这一过程域的目标之一是要"分析和确认需求,并开发一个所需要的功能性定义",IBM软件开发平台中就提供了具体的用例建模技术来完成这方面的工作。另外,流程的标准规范也需要在工具中固化体现,人对于规范的执行往往是有弹性的,但工具平台就可以克服人的这些惰性,从而保证流程规范在软件团队中得到彻底的执行。
总之,IBM Rational 软件开发平台可以与CMMI、6 Sigma这些业界标准一起配合使用,全面改进软件团队生产流程,从而生产出更高品质的软件产品。
文章来源于领测软件测试网 https://www.ltesting.net/