CMMI和敏捷开发过程的分析研究

2016-10-21 14:56景学红
电子技术与软件工程 2016年9期
关键词:比较分析

景学红

【关键词】CMMI 敏捷开发过程 比较分析

随着软件开发企业的发展,软件开发市场竞争越来越激烈,目前软件开发面临的最大挑战是软件按开发企业既要积极应对开发过程中客户的变动需求,又要保障在较短的时间内完成整个项目的研发工作。简单的说就是,软件开发团队既要有过硬的技术,又要在开发过程管理上积极的改进,以便提高整个开发团队的效率,提高软件开发的质量,满足不断变化的市场与客户需求。所以必须制定一套软件开发过程管理机制,达到软件的开发与客户需求的一致性。

1 CMMI和敏捷开发简述

CMMI和敏捷开发是两种完全不同的软件开发模式,它们的概念不同,管理方法和技巧不同,开发流程不同,开发过程不同,管理特点不同,它们之间有着本质的区别。敏捷与CMMI 都非常注重质量,差别在于CMMI开发模式是一种重量形式的开发,敏捷是一种轻量模式的开发。CMMI强调的是以数学统计为基础的技术方式,而敏捷强调的更多的是具体的、使用的工程技术方式 。另外敏捷与CMMI有着共同的目标,即用最短的时间,投入最少的资金,开发出满足客户需求的最好的软件;同时他们都是目前应用比较广泛软件开发模式,均具有最佳的实践经验。CMMI软件开发管理模式的有很强的包容性,它强调重量级的项目过程管理控制,而敏捷是轻量级开发,强调具体、实用开发技术。相比较而言他们在各自的开发领域都有比较好的积极作用的发挥,但是敏捷开发中轻量级的管理过程开发效率相对比较高。敏捷开发与CMMI都注重团队与组织,只是敏捷开发更加注重人的主观能动性。

2 敏捷与CMMI项目管理比较

敏捷开发项目管理更注重软件开发实施的模式,强调团队中个人的能力的发挥。它对软件开发中技术和控制管理不是太看重。从这方面来看它与CMMI项目管理过程有着较大的区别。CMMI软件开发过程管理模式是根据预先制定的计划,按照计划中的每一个步骤进行的管理与开发。如果在开发的过程中项目发生变更,需要重新对项目进行估计,重新作出项目计划,所以此管理模式容易受客户需求变更的影响,效率比较低。CMMI项目管理过程对客户和供应商的可视性不高。在开发过程中计划驱动方法、软件交付实践少,风险控制滞后。

敏捷开发的项目管理过程是一个不断变化的过程,它使用迭代、增量的步骤进行开发管理。敏捷开发的方式实现没有对项目进行仔细的分析,项目研发初期他们不注重对项目的了解,而是在开发的过程中对项目进行慢慢的了解的过程,敏捷只为项目中的一个迭代做开发规划,不会针对整个项目做整体规划,所以它的具有较高的灵活性,能够在客户变更需求时,第一时间做出反应。另外,它对整个项目一个比较粗略的规划,然后对每一次迭代做详细的规划,根据迭代规划做研发工作。相互信任和给予权力是敏捷开发的主要管理方式。这种管理模式使合同变更变得简单,客户和开发人合作关系,关系密切,每次迭代的完成,都有可交付的软件生成,能够利用第一代迭代软件识别软件早期风险,从而及时更正。

敏捷来发不仅能及时、有效的解决软件研发中存在的问题,减少软件开发风险,而且能够在最短的实践内完成项目的交付,提高研发效率。因为它每次迭代都可以产生可以运行的软件,所以能够实现快捷交付。开发的过程中国根据项目风险级别,采取最优先行开发的原则进行开发。增强项目的变更管理,减少大量的重型计划工作,简化繁琐的管理过程,提高研发的效率。有效的改善项目的沟通,使客户能够有效的参与到研发中,减少项目管理中错误的假设。敏捷开发能够最大限度的额提高研发效率,减少工作中不必要的文档和工作量,提高客户满意度,达到短期内生产生效,完成交付的任务。还能有效的改善员工的满意度,增强团队精神,使每位员工都能够规划和管理自己的工作,提高员工工作的积极性,使项目更加适应市场变化。

CMMI和敏捷开发各有优势,只是侧重带你不同,前者侧重管理过程的规划和质量控制的技术,后者侧重具体、使用的软件按工程技术,它们在各自的应用范围内都是最佳的管理模式。在未来的发展中,CMMI和敏捷开发可能会走向融合,敏捷可以帮助CMMI高级别更容易实现短期的转变。从另外一方面看敏捷开发是使用CMMI第4,5级别来改进如何发展产品的完美例子,二者具有很强的互补性。

3 结语

总之,软件的开发并不是只有一个或者两个模式,软件企业可以选用一个比较适合自身且发展的而研发模式实施管理,也可以多个结合运用。CMMI与敏捷开发虽然有很多的不同,但是也不是两个完全对立的管理模式,他们有着共同的研发目标,致力于软件研发的高质量、高效率以及高效益,同样追求客户的满意度。所以,在一定的环境下,二者完全可以相互补充、共同促进,共同达到市场需求标准,推动软件研发的发展。

参考文献

[1]徐俊,彭章纲.敏捷开发过程与CMMI实施融合研究[J].现代计算机(下半月版),2011(24):122-123.

[2]王易,童杰,宋鹏飞.基于CMM/CMMI和敏捷软件过程改进的研究[J].科技资讯,2009(14):196-197.

[3]杨根兴.软件过程的改進与敏捷方法[J].软件产业与工程,2010(6):287-288.

[4]仲萃豪.从认知观看“软件危机”是怎样解决[J].软件工程,2006(12):114-115.

猜你喜欢
比较分析
高校图书馆与互联网知识服务的比较及发展策略
安徽省区域经济竞争力研究