CMMI和敏捷开发过程的分析比较

时间:2022-10-04 09:59:54

CMMI和敏捷开发过程的分析比较

【关键词】敏捷开发 CMMI 融合

对于一个软件项目来说,其最大的挑战不仅在于必须应对变动中的各种需求,而且还要在较短时间内完成规定的软件项目。一般传统软件工程很难达到这些要求,因此软件企业不仅要不断改进其生产技术,同时还应该不断研究更为有效、合理的开发过程,使软件团队的综合效益能够充分发挥出来。本研究主要对敏捷开发中纳入CMMI进行分析与探讨。

1 敏捷开发特性

从根本上说,敏捷开发主要突出以下几点:

(1)可工作软件优于全能化文档;

(2)交互与个体优于工具和过程;

(3)客户合作优于合同谈判;

(4)响应变化优于循规蹈矩。

1.1 敏捷开发的特性主要包括

(1)软件开发人员和客户之间是一个合作较为密切的团队,由于客户不能在初期对完整规格予以定义,软件开发者也往往不能获悉业务与软件外在环境的变动,因此,必须软件人员和客户形成密切的联系,由此才能将客户满意的软件开发出来;

(2)将适合的软件产品提交给客户是项目的终极目标,所以每个中间产品都要有一个审慎评估环节;

(3)采用迭代与增量法分阶段性实施,通过同行评估的方式保证开发结果能够与用户需求相符合;

(4)可以有简单的过程,但是一定要严谨的执行和规划;

(5)重点强调软件团队的合作性,同时赋予软件团队以高度责任,所有软件团队成员都享有自。

1.2 敏捷开发适用软件项目的条件包括

(1)稳定的技术开发框架;

(2)成熟的软件产品团队;

(3)较强的项目人员综合能力;

(4)较强的管理及自我学习能力;

(5)不会紧迫的要求软件开发前进度。

2 CMMI和敏捷开发的融合

敏捷开发和CMMI是具有较大差异性的两种软件研发过程与管理体系,两者的共同目标在于,将产品多快好省的开发出来,以使客户需求得到有效满足;CMMI与敏捷开发均为软件行业最佳实践总结,都是成功经验的传播与累积;CMMI本身具有较强的包容性。两者的区别在于CMMI为重量级软件项目控制,敏捷开发则为轻量级软件项目控制。敏捷开发中有大量实用且具体的软件技术措施,CMMI为软件开发提供了大量基于数学统计的质量控制与过程管理方法。轻量过程在一定条件下所带来的开发效率比较高。从根本上说,敏捷开发既注重个人,同时也注重组织与团队。该开发模式的层次主要有三个,即:敏捷团队、敏捷个人以及敏捷企业。敏捷开发和CMMI均比较重视组织与团队,其中敏捷开发主要强调的是个人主观能动性的充分发挥,因为出发点、价值观以及适用条件具有一定差异性,使得CMMI与敏捷开发的关注面与具体做法也有所不同。以往CMMI模式中对高技能工作人员能力与需求变更的要求相对比较多,而且CMMI注重强调必须严格执行软件开发过程,可替代软件人员的能力,而且项目管理相对也比较负责,该模式很可能会引发需求变更影响大、项目开发周期长以及相应用户需求的速度比较慢等问题。对于CMMI所存在的问题,敏捷开发可为软件开发提供更为有效的解决方案,而且敏捷开发有利于软件团队整体效率的提升,其中包括沟通效率与开发效率等。

总而言之,近年来越来越多的软件开发企业应用了CMMI模式,这就涉及到融合敏捷开发的问题。敏捷开发和CMMI都存在其各自适用范围,这两种模式在实践做法、价值观以及原则等方面不仅相互独立又彼此补充。敏捷项目管理在传统项目管理的基础上, 把项目管理的职能化“有形”为“无形”,适合知识型员工的、带有创新性质的中小型项目,为缩短产品交付周期、提高员工积极性, 营造良好的团队文化提供了一条新的途径。可以帮助识别和消除软件开发中的冗余的、不能为客户创造价值的活动。提高产品质量,减少因质量低下造成返工带来的浪费。CMMI与敏捷开发包含很多优秀的软件工程实践。作为一个相对比较复杂的软件过程体系,CMMI参考实践做法比较多,而敏捷开发却有着较少的实践做法,且操作起来也比较容易,也许两者在各自环境中具有最优化。

参考文献

[1]陶艳玲.基于CMMI的软件测量与分析的研究与应用[J].宇航计测技术.2011(01):145-146.

[2]唐俊,赵晓娟.成功实施软件过程改进的三个要素[J].电脑知识与技术(学术交流).2007(20):120-121.

[3]焦鹏欢,张朋.基于能力成熟度模型的软件测试改进[J].电脑知识与技术.2011(09):111-112.

[4]胡霞.初探敏捷开发在项目开发中的应用[J].硅谷,2009(12):154-155.

上一篇:远程实时智能喂养宠物系统设计与实现 下一篇:基于物联网的智能冷链物流关键技术研究