基于CMM成熟度模型,包括中小企业在内的软件企业如何进行软件过程改造,如何在具体项目中引入并实施CMM的标准成为人们关注的重点。CMM的实施核
心焦点不在于软件的开发技术层面,而在于工程过程层面和工程管理层面。所谓工程过程层面是指将工程开发的整个过程所涉及的相关议题作为过程学的体系来研究
和执行。过程学本身既不同于通常所说的软件工程技术,(如编码,操作系统等等),也不同于一般所言的工程管理学,软件过程既是对软件工程这一领域中所涉及
的流程按其独特特性进行专门描述。事实上,任何企业在开发工程产品的实践中,都有开发过程产生,虽然很多企业并未对其进行记录或关注。按照工程过程学派的
观点,没有正确的过程就不可能有正确的产品产生,因此对开发组织的过程需要规范和改进。 由于软件过程必然与工程管理相关,因而它不象具体的开发技术问题那样容易规划并着手实施,特别是国内广大的中小软件企业和部门,在采纳某一过程体系进行开发流程的改造时,应特别注意如下几方面的问题,将其作为过程实施开端的要领加以掌握: 1.不可急于求成和盲目乐观。任何新体系的采纳和改进都必然涉及对旧有体系的重组和调整,需要投入相当的决心和时间。如果企业在充分评估后决定了以CMM工程标准来规范建构自身的软件开发行为,则应该在次序改进的前提下尽早实施企业开发过程调整以便有充裕时间理解和评估前期改造的成效。 2.必须懂得CMM作为一套标准,它指明的是该作什么(What)而非怎样去做(How),同时CMM也代表了一种对软件生产过程进行理解和分析的独到观点(Philosophy)。CMM着重于过程中的关键要素,而非面面俱到,它主要不是为了解决某个具体项目的问题,也不能保证在此框架下产品开发100%成功,CMM所述的软件过程集合了工程过程和管理过程等方面,对它的过程改进要靠许多细小的阶段性的步骤而非一蹴而就的革新。 3.CMM1.1版主要针对大型软件企业,这些企业的开发工作通常关涉软件生产过程的方方面面。对于20人以下的小型企业,1.1版中的一些环节可能并不适用。 4.企业在采纳CMM过程改进的同时,可以引入新技术与自动化工具帮助软件开发的实现,不过,对过程的改进要求企业全面投入并需较长周期,而技术引进则相对周期较短。但如果企业只是依靠技术改进而不注重过程改进,长远看来,企业可能收获甚少。 5."知己知彼,百战不殆"。实施改进之前,企业应对自身当前所有的软件能力水平及过程状态有尽可能的客观、详尽的了解。可以参考本文后附企业开发能力自测表进行初步诊断,在明了自身实际过程等级之后,企业应确定需要达到的等级目标并找到主要差距所在。企
业要想达到的等级目标包括它所特定的过程目标及核心过程域(KPA)。这一等级应符合企业自身开发水平与项目特征。在企业明了了自身实际等级与目标等级之
间的差距之后,应制定规划,决定改进次序及程度,可参考的决策因素包括:目标与能力的平衡,投入工期与质量的保证,企业总体发展与当前项目开发的平衡,员
工素质条件,最薄弱环节与最急需改进环节,还有最易见效的环节,等等。 6.如有可能,在企业内部成立专门的过程改进规划组,并配合企业外聘的咨询机构或顾问,拟订出详细的过程实施方案,同时注意在实施过程中对计划进行修正和调节。在此,应将改进方案指定得尽量具体详细,这包括:
CMM模式即可用于描述软件机构实际具备的能力成熟度水平,也可用于指明软件企业改进软件工程所需着力之处,它说明了努力的方向,又允许企业自己选择恰
当的方式去达到这一目的。实施CMM的经验告诉软件工程人员,在软件项目开发中,更多的问题和错误来源于工程安排的次序,工程规划和工程管理而不是技术上
的how to
do。软件工程的过程学不断分析和改善已有工程经验,拟定出尽可能完善的开发过程,并按开发生命周期确定重点环节加以管理,最终达到以量化数据来建立能力
成熟度等级的目标。良好的工程过程保证了有序的开发实施,避免了以往开发人员被动救火的方式,并将个人主观因素减低至最少。开发人员的个人创造性从独立任
意的发挥消解并转移到如何创建性地运用和完善工程过程上来。 作为一种模型,CMM实际上是对软件机构工程过程的理论和数据模拟,在对它的应用中,主要包括软件产品供应方和应用方两大类。 目前,世界范围内已采纳CMM标准的企业纷纷以此标准决定软件项目合同的承接与分包。实践中,许多中小企业在接纳CMM体系时,采纳了保留企业部分原有工程过程指标并加以修改的办法。 卡莱基·梅隆大学软件研究所提出了一套实施CMM标准的方法,按照他们的建议,IDEAL是企业开始引入CMM体系的良好参照模式,它包括: I--启动(Initiating),表示开发机构应为CMM的引入准备好前期基础设施和程序。
如有可能,企业在咨询机构或咨询师的协助下可以加快CMM体系引入的过程,但企业必须同时着力于培训自身理解工程过程的人才。较好的方法包括在开发组织
内部分项目形成CMM研讨小组以促进开发组及开发人员之间的经验交流。显而易见,实施CMM的成效应根据机构自身特有的实际情况作判断,正确的实施应该从
质和量两方面对过程的各环节发生作用。CMM体系在中小企业的应用中并未要求逐字照章对应每一项核心过程域和核心实践来进行,机构可以用裁减的办法对其应
用程度作修正,也可选用阐述的办法将某项具体的实施工作等同为特定的核心实施。 根据SEI的研究数据,绝大多数软件项目的成功都遵循了下述的工程原则: |
|