待开发产品的特征、研发团队的业务能力与技术积累,决定了研发项目过程。当研发过程满足产品要求,既不冗余以致为开发团队带来很多不增值的活动,也不简陋得丧失了质量标准,就可以称之为恰当。
实施有序
研发体系能够按照计划有序地推进工作,各角色/职能单位适时地参与到研发工作,配合顺畅并提供高质量的输出;重要的研发活动以一种有序、成熟的方式获得实施,其执行过程和交付成果能够被预计与控制。
国内某知名高科技公司,十余年来非常重视研发过程改进。在主要产品线内部,采用IPD(集成产品开发)作为主干流程,在细节流程上引入了CMM/CMMI8的管理体系,并通过了CMMI 4级认证。
根据业务的持续发展,该公司又引入了敏捷开发的实践,作为CMMI的补充,软件开发项目都使用了敏捷开发过程。在实际研发工作中,多数项目团队认为CMMI与敏捷是对立的:CMMI模式就是写文档,就是瀑布模式;敏捷开发实践重在沟通和快速反馈。CMMI所要求的一些如配置管理、度量管理等管理实践在敏捷中定义得并不清楚。很多原来好的软件工程标准,在敏捷的冲击下,被团队弃用。
总体来讲,该公司在CMMI和敏捷模式之间,努力寻找适用于公司实际需要的软件研发模式,目前效果似乎并不理想。公司的项目形态存在较大差异,既有功能和技术复杂高、规模较大的项目(CMMI模式较为适用),又有简单的轻量级项目(敏捷模式较为适用)。试图为各类不同形态的项目提供统一的过程和模式,是极具挑战性的。截至目前,该公司软件开发过程尚未达到适配程度。