我国最大的IT项目管理门户网站,国内IT项目管理培训与咨询服务提供商

当前位置:首页 > 经典文库 > 正文

基于CMMI及DevOps的软件开发及管理数字化体系的应用实践

2019-02-20 来源:《上海质量》 作者:泛亚汽车技术中心有限公司 李鹤群 王丹
       摘要:CMMI模型在国内软件开发行业的普及,旨在不断提升软件开发质量,提高开发效率。然而,由于缺少行之有效的CMMI部署解决方案,使得流程文档过于泛滥,度量数据收集分析工作量大等问题日益凸现。文中作者结合亲身实践及DevOps的概念,介绍了如何将CMMI模型部署到软件开发和管理系统中,从而确保模型有效落地实施的实践。
       关键词:CMMI;DevOps;软件开发及管理体系;数字化
          1.引言
       自2002年CMMIv1.1发布以来,CMMI模型的应用和认证在软件开发行业内成燎原之势不断发展。其中CMMI-DEV模型的应用最为广泛,2014~2017年SEI的官方数据[1]显示,中国通过CMMI3级的软件企业有2528家,通过高成熟度CMMI4及CMMI5级的软件企业有353家,而全世界通过认证的国家共有5747家,仅中国就占50%。虽然通过了CMMI3级甚至高成熟度等级的评估,CMMI-DEV模型在国内软件企业的应用仍然存在很多问题,在汽车电子软件开发行业中更加明显。问题主要体现在:
       (1)流程文档过多过滥;
       (2)流程复杂,执行效率低,人工流转等待时间长;
       (3)度量数据的收集及分析工作量大;
       (4)CMMI的四大领域(工程、支持、组织、项目管理)涉及开发、质量及PMO等多个组织,协同性差;
       (5)软件行业人员流动率高,导致重复的培训、评估和改进活动,增加了许多成本。
       总之,CMMI定位为精细化管理,需要过程、交付、量化数据来支撑,如果仅依赖人员检查、海量的Excel文件汇总,势必导致技术人员抵触,CMMI的优势无法发挥,因此构建一套使CMMI真正落地实施的IT解决方案是汽车行业亟待解决的难题。本文以作者所在公司的实际实践为例,介绍CMMI3的落地实施IT解决方案的开发过程。
       2.DevOps概念
       DevOps是一组过程、方法与系统的统称,如图1[2]所示,它用于促进开发(应用程序/软件工程)、项目管理和质量保障(QA)部门之间的沟通、协作与整合。从实现上来讲,DevOps通过构建全生命周期的工具链,打通工程开发过程之间的沟通壁垒,减少线下文档的管理,实现自动化、跨团队的线上协作开发。通过实现流程的自动化、度量数据的自动化收集、分析功能,从而减少度量数据收集和分析工作,同时实现CMMI的精细化管理。
       3.运用DevOps概念设计IT解决方案
       3.1功能梳理
       CMMI3共包含18个过程域,各个过程域之间有着紧密的联系和功能重叠,如果逐一通过工具实现,必然会产生冗余功能及过多接口。因此,开发CMMI落地的IT解决方案的首要任务就是梳理这些过程域,识别可以合并或优化的过程域,整合为几个大的功能,作为IT解决方案的需求。本次开发不包括供应商管理(SAM)过程域、组织培训管理(OT)过程域。根据DevOps的概念,将CMMI3的其余16个过程域归类划分为三大类(工程领域、过程领域、管理领域)共计10项功能,其具体功能描述,实现的CMMI过程域[3]以及所属DevOps领域的对应关系如下表所示。
       3.2系统架构设计
       基于DevOps的概念,设计系统的架构。从项目管理、工程开发、质量管理三大领域应用入手,针对梳理的十大系统功能,构建工程开发纵向集成、项目管理及质量管理横向集成的两条工具链,如图2所示。
       纵向打通工程开发全生命周期,包括需求、设计、开发、编译、构建、测试、打包、发布、配置的工具集成。DevOps强调的重点是跨工具链的「自动化」。例如,针对集成编译活动,传统的方式是通过编写冗长的集成编译手册,在每个开发阶段手工完成编译、排错、集成、打包、测试的重复工作,但在基于DevOps开发的平台下,通过预先设置编译参数,包括编译对象、编译环境选择、编译时机等,实现数字化的“集成编译手册”,不仅方便工程师理解,而且可以通过系统实现全自动执行,整个过程可被追踪和审计,不仅解决了CMMI模型要求的文档留证问题,而且执行效率大大提升。
横向打通开发、管理、质量保证等多个“组织”的壁垒。DevOps强调的重点是跨团队的线上协作,也就是通过IT系统,实现信息的实时精确传递。传统的SQA检查方式,可能是通过一个冗长的Checklist来执行,包括对所有开发过程和开发产品是否执行、是否按照正确的过程执行、是否输出正确的结果、是否经过正确的评审等多个检查项开展质量保证活动。通过横向集成,很多过程已经部署在基于DevOps开发的平台上,流转的工作流完全参照组织的CMMI3级软件开发过程模型定制,工作产物的模板也定制在平台中,并且规定了其中的必填项要素,大大节省了SQA过程和产品检查以及沟通的时间。
       图3为基于DevOps概念的系统架构设计[4]。应用层通过界面化的形式实现计划的编制及监控、需求的开发、追溯、集成、测试用例开发及管理,以及强大的报表功能供项目经理、QA以及工程师从不同视角关注项目的进度、质量、风险等状况;控制层为具体的功能实现逻辑,工作流根据组织的相关过程定义定制开发,合并重复工作项,并实现部分文档的电子化;数据层包含过程库(过程定义、模板、指南、检查单等)、复用库(软件复用组件、测试用例等)、项目经验教训库、度量数据库(包括组织过程能力绩效数据、KPI等)以及组织风险库,所有的数据供控制层调用,返回到应用层进行展示及各种操作;最底层为基础开发平台层,包括邮件服务、持续集成服务、自动化测试相关的服务等,用于支撑整个系统的运行。
       3.3解决方案的实现
       目前行业内有较多实现上述解决方案的工具,例如Requistitepro,IBM的基于Jazz平台的集成产品(Doors、RTC等)以及RDM等。下文介绍以Doors及RTC为基础开发平台实施的解决方案的具体落地实例。
       3.3.1项目集成管理的实现
       将PDCA的管理思想部署到系统中,实现如图4所示的功能。项目经理在系统中进行资源分派、任务分派以及制定项目计划,并可以通过项目纬度查看计划的开展情况;工程师则在系统中提交交付物、填写工时,并可通过个人纬度查看个人任务的开展情况。在监控环节,项目经理通过系统提供的丰富的报表功能(如图5所示),实现对进度、缺陷、风险以及变更等执行情况的全面监控;QA则通过度量数据对项目过程执行情况进行监控和分析,以便及时指出过程执行中存在的问题并制定纠正措施,从而对计划作出科学调整。
       3.3.2需求追溯的实现
       传统的需求追溯是通过表格来实现的。工程开发下游对上游的需求及设计进行逐一追溯跟踪,容易遗漏,导致变更追踪出错。通过在系统中建立需求到设计、编码、测试的关联关系,系统自动生成如图6所示的需求追溯一览,需求变更路径清晰可见,省去了维护表格的大量人工工作量且避免出错。
       3.3.3持续集成的实现
       结合工程开发的实际需求,系统部署了持续集成及测试功能。基于系统集成的配置管理功能,持续集成功能的实现相对容易。如图7所示,集成服务器选用开源工具Jenkins,目前有很多通过Jenkins部署持续集成工作的指南和案例可供参考。基于CMMI3与DevOps概念的软硬件开发及管理数字化系统也借鉴了Jenkins的部署经验[5]。但是在测试部署的时候,融入了组织特有的测试方法及测试设备,包括与系统中测试用例管理库的衔接等。

       4.结语
       借鉴DevOps的纵横双向集成的概念,将CMMI模型对软件开发过程质量的要求部署到可执行的系统中,不仅实现了软件开发和管理工作的自动化、智能化,减少文档的管理,提升流程执行的效率和效果,而且系统通过自动采集的度量数据分析反馈到过程改进中,进一步完善开发流程,形成良性的改善环,从而引导CMMI模型在企业的真正落地实施。(本文2017年发表于《上海质量》)
分享到:

免责声明:
  1、IT项目管理界发布的所有资讯与文章是出于为业界传递更多信息之目的,并不意味着赞同其观点或证实其描述。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请浏览者仅作参考,并请自行核实相关内容。
  2、本站部分内容转载于其他网站和媒体,版权归原作者或原发布媒体所有。如文章涉及版权等问题,请联系本站,我们将在两个工作日内进行删除或修改处理。敬请谅解!

延伸阅读:

Copyright ©2017-2019 IT项目管理界 版权所有 京ICP备17062359号-4 如转载本站文章,请注明原作者和原发布媒体

本着互联网分享精神,本站部分内容转载于其他网站和媒体,如稿件涉及版权等问题,请联系本站进行删除或修改处理

客服电话:010-89506650 89504891 非工作时间可联系:18701278071(微信) QQ在线:511524637

新闻与原创文章投稿:tougao#cpmta.com 客服邮箱:info#cpmta.com(请将#换成@)

IT项目管理界——我国最大的IT项目管理门户网站,隶属卓橡公司

IT项目管理界官方微信

IT项目管理界官方微信

PMO大会官方微信

PMO大会官方微信