CMMI V2.0丨如何通过CMMI真正在企业中的实施规模化敏捷开发
原创- 2020-08-26 09:00:00
- 2151
本篇目录
在过去的几年中,敏捷开发已经从一个利基概念(利基(niche)是指针对企业的优势细分出来的市场,这个市场不大,而且没有得到令人满意的服务。产品推进这个市场,有盈利的基础。)转变为全球许多大公司采用的标准实践。 通过小型、自我管理的团队加速软件开发现已成为一种公认的策略,并且越来越被视为企业创新和竞争力的关键。CMMI研究院的统计报告显示,2018年参加CMMI评估的企业80%以上使用了敏捷。如今,随着公司寻求更多地将敏捷性注入整个组织及其文化中,敏捷技术已经不仅仅应用于软件开发领域。
尽管敏捷越来越流行,但是当企业尝试在整个企业范围内推广使用敏捷软件开发时,仍然会遇到问题。尽管敏捷对于小型、独立、自我管理的项目可能非常有效,但是很难用于协调构建大型、复杂的产品和系统所需的多个项目和团队。结果就是公司遇到了与早期软件开发方法相同的许多棘手的问题,例如集成和接口问题、未能充分满足所有需求、延迟交付和质量缺陷。
因此,随着敏捷的普及,对克服上述问题的最佳实践的需求也在不断增长。CMMI V2.0提供了这些最佳实践,可帮助组织建立成熟的流程,来控制规模化敏捷可能面对的复杂情况和风险。
CMMI V2.0专门解决了企业在尝试规模化敏捷时遇到的挑战,例如准确估算开发时间度量和资源、集成系统组件以及保持质量。CMMI V2.0还支持对成功实施至关重要的各种其它流程,例如管理和交付服务以及选择和管理供应商流程。此外,CMMI V2.0还扩展覆盖到包括安全性在内的更多领域。CMMI V2.0不仅着重于提高绩效,而且着眼于维持习惯和持久性,以确保企业随着时间的推移保持该性能。CMMI V2.0在最小化投入的同时,提供了这些关键优势,因为CMMI V2.0允许选择满足业务独特需求的实践域。
全面使用CMMI是成功实施规模化敏捷开发的关键,这与试图大规模支持敏捷的其它方法形成鲜明对比。通常,这些方法解决了一些挑战,却完全无法解决其它挑战。SAFe(规模化敏捷框架)就是一个例子,它在关键领域缺少关键要素,例如软件质量、设计和集成、管理服务和供应商、规划和管理工作、管理业务弹性以及维持性能。
CMMI提供了强大的框架帮助公司在初始需求和设计阶段定义接口和集成需求,然后在整个开发过程中的各个冲刺里进行跟踪和测试。如果没有CMMI,确保无故障集成的能力则完全取决于团队的经验。专家级开发人员可能具有远见卓识和专业知识来确保组件能够进行集成。但是经验不足的人可能缺乏关键知识,即使他们能够快速编写良好的代码。CMMI的最佳实践从根本上提高了团队的专业知识,使团队能够发现原本可能会遗漏的潜在问题。
通过支持重要但常规的项目任务(如估算和集成),CMMI使开发人员可以将精力集中在他们真正应该做的事情上,从而解决了开发新功能带来的艰巨而有趣的挑战。而且,由于CMMI为所有开发项目提供了通用框架,因此也使在项目之间的人员调动变得更加容易,提高了组织的敏捷性。随着一个项目的结束,CMMI使这些开发人员更轻松地转向另一个项目并开始工作。
尽管敏捷越来越流行,但是当企业尝试在整个企业范围内推广使用敏捷软件开发时,仍然会遇到问题。尽管敏捷对于小型、独立、自我管理的项目可能非常有效,但是很难用于协调构建大型、复杂的产品和系统所需的多个项目和团队。结果就是公司遇到了与早期软件开发方法相同的许多棘手的问题,例如集成和接口问题、未能充分满足所有需求、延迟交付和质量缺陷。
因此,随着敏捷的普及,对克服上述问题的最佳实践的需求也在不断增长。CMMI V2.0提供了这些最佳实践,可帮助组织建立成熟的流程,来控制规模化敏捷可能面对的复杂情况和风险。
CMMI V2.0如何帮助实现规模化敏捷
CMMI是一套用于改善业务性能的最佳实践。多年来,很多公司已经同时使用了CMMI和敏捷开发。 2017年的一项调查发现,使用CMMI的公司中有80%也使用敏捷。但是最新版本的CMMI V2.0增强了两者之间的协同作用,为在敏捷开发中建立规模和弹性提供了直接指导。
CMMI V2.0专门解决了企业在尝试规模化敏捷时遇到的挑战,例如准确估算开发时间度量和资源、集成系统组件以及保持质量。CMMI V2.0还支持对成功实施至关重要的各种其它流程,例如管理和交付服务以及选择和管理供应商流程。此外,CMMI V2.0还扩展覆盖到包括安全性在内的更多领域。CMMI V2.0不仅着重于提高绩效,而且着眼于维持习惯和持久性,以确保企业随着时间的推移保持该性能。CMMI V2.0在最小化投入的同时,提供了这些关键优势,因为CMMI V2.0允许选择满足业务独特需求的实践域。
全面使用CMMI是成功实施规模化敏捷开发的关键,这与试图大规模支持敏捷的其它方法形成鲜明对比。通常,这些方法解决了一些挑战,却完全无法解决其它挑战。SAFe(规模化敏捷框架)就是一个例子,它在关键领域缺少关键要素,例如软件质量、设计和集成、管理服务和供应商、规划和管理工作、管理业务弹性以及维持性能。
解决集成问题
来看看CMMI是如何帮助组织成功地应用规模化敏捷开发。组织经常遇到麻烦的两个领域是项目估算和产品集成。CMMI提供了可靠的估算方法,这些估算方法支持用许多小组件构建大型复杂系统的敏捷方法。它还可以帮助确保设计的每个系统组件可以与其他组件集成。在大多数组织中,多个团队在Sprint中开发系统的组件。大型系统可能涉及许多单独的Sprint,每个冲刺都会生成必须集成的组件。敏捷项目通常在设计和需求阶段无法充分解决这一问题,结果就是许多软件开发组织遇到了与接口和组件之间的集成相关的重大问题。如果您有两个开发团队进行敏捷冲刺,生产不同的组件,那么您如何知道这些组件将在冲刺完成后是否可以集成?如果您尚未预先定义组件的组装方式,那么每个组件都将各自在真空中被独立构建。
CMMI提供了强大的框架帮助公司在初始需求和设计阶段定义接口和集成需求,然后在整个开发过程中的各个冲刺里进行跟踪和测试。如果没有CMMI,确保无故障集成的能力则完全取决于团队的经验。专家级开发人员可能具有远见卓识和专业知识来确保组件能够进行集成。但是经验不足的人可能缺乏关键知识,即使他们能够快速编写良好的代码。CMMI的最佳实践从根本上提高了团队的专业知识,使团队能够发现原本可能会遗漏的潜在问题。
通过支持重要但常规的项目任务(如估算和集成),CMMI使开发人员可以将精力集中在他们真正应该做的事情上,从而解决了开发新功能带来的艰巨而有趣的挑战。而且,由于CMMI为所有开发项目提供了通用框架,因此也使在项目之间的人员调动变得更加容易,提高了组织的敏捷性。随着一个项目的结束,CMMI使这些开发人员更轻松地转向另一个项目并开始工作。
使用CMMI避免敏捷混乱
如果没有成熟的流程来协调多个团队和个人进行冲刺,那么规模化敏捷开发的尝试很容易导致混乱。CMMI提供了可在整个组织中使用的全面而独特的业务性能框架,因此公司可以更好地协调项目、集成复杂的系统,更快地交付更高质量的软件。
参考文献:
How to Truly Scale Agile Development in the Enterprise—with CMMI,Submitted by: CMMI Institute, 15 October, 2019
https://cmmiinstitute.com/resource-files/public/how-to-truly-scale-agile-development-in-the-enterp