我们说CMMI是一个复杂的,标准化的,程式化的软件研发过程,是相对比较重的。然而,敏捷,是轻量级的,快速响应的一种所谓高效的研发方式。二者貌似水火不容,但是,也可以牵手成功。

在对于敏捷这件事上,很多人有几个误区:

  1. 敏捷很快。

这是很多老板想使用敏捷方法做开发的根本初衷,其实并不然。敏捷是一种快速响应的开发方式,所谓的快速响应说的是,尽可能短时间的发布可交付产品增量,以获取用户或客户的反馈。所以,敏捷不是快,而是快速反馈和快速响应,实践过的人都知道,一个项目用传统瀑布方式和敏捷方式,还不一定哪个周期长呢。

  1. 敏捷就是迭代开发。

敏捷从根本上来说就是一种思想,或者说通过一系列的实践来遵循这些思想的研发过程,敏捷开发过程是迭代的过程不假,但是迭代的不一定就是敏捷,因为敏捷思想是在迭代过程中起关键作用的。

  1. 敏捷可以节省成本。

敏捷其实很贵,从成本的角度来说,软件开发会用人天成本来核算,也就是说,最大的成本就是人。然而现今的软件开发,已经工种繁复,专业性越来越强。在搭建敏捷软件团队的时候,对团队成员就有相对高的要求,对比传统方法,这些人一定是贵的。再者,因为快速交付和快速反馈,在每个迭代的成果叫做潜在可交付产品增量,既然是潜在的,就有一定的返工或者废弃的风险。另外,在快速迭代的过程中,既然成果叫增量,那么全量回归测试会非常消耗团队成本,所以,敏捷很贵。

那我们再看CMMI,拿v1.3的三级来说,一共18个过程域:

1. OPD:(Organizational Process Definition)组织级过程定义。

2. OPF:(Organizational Process Focus)组织级过程焦点。

3. OT:(Organizational Training)组织培训管理。

4. PP:(Project Plan)项目计划。

5. PMC:(Project Monitoring and Control)项目监督与控制。

6.SAM:(Supplier Agreement Management)供应商协议管理。

7.IPM:(Integrated Project Management)集成项目管理。

8. RSKM:(Risk Management)风险管理。

9.RD:(Requirement Development)需求开发。

10.REQM(Requirement Management)需求管理。

11.TS:(Technical Solution)技术解决方案。

12.PI:(Product Integration)产品集成。

13.VAL:(Validation)确认。

14.VER:(Verification)验证。

15. CM:(Configuration Management)配置管理。

16.PPQA:(Process and Product Quality Assurance)过程和产品质量保证。

17.MA:(Measurement and Analysis)测量与分析。

18. DAR:(Decision Analysis and Resolution)决策分析与解决。

从这些过程域来看,CMMI是很复杂,但是有这样的一个理论是说,任何研发型企业,对项目管理都是从简单-复杂-简单,其实从另外一个角度来说,那就是不会的-规定好的-自由灵活的。CMMI的已定义过程都做不好,那是没有办法敏捷的。无论是CMMI、OPM3、PUB还是什么别的项目管理框架,首先有,是迈向敏捷的一个必然的阶段。这就是我认为CMMI跟敏捷的关系。

那么说到融合,有一点我认为大家的观点是一致的——他们是可以牵手成功的。但是具体是怎么融合的还是要看你所在的组织实际的情况。为了好描述,下面我用CMMI的几个方面来说明一下。

我们先说说需求也就是RD,在CMMI环境下,我们会有一个用户需求说明书,还有一个需求规格说明书,在这两个文档中我们知道有用户的原始需求,有系统需求,还有功能性需求和非功能性需求,另外还有验收标准。那我们到敏捷中找找这俩东西的影子。在敏捷中,我们用故事(story)。我们知道故事一般来说都是由用户去讲,那么用户需求自然也就被覆盖了,那么系统需求和非功能性需求在哪呢?其实是一样的,我们拿Scrum框架来说,通常你看到的需求会是一个叫product backlog的东西,在这个东西里面,都是一些故事,有些是用户开头的,那另外一些则是系统开头的。也就是所谓的去描述系统的质量。那这又是什么呢,不就是非功能性需求嘛。

再说系统需求,我们都知道故事很短,通常故事不是为了说明用户或者软件是怎么实现的。通常的意义上,我们认为,故事是要引发讨论的,通过讨论对故事进行进一步拆分,所谓渐进明细,系统需求也就是这么产生出来的。

在敏捷中,验收标准这个东西如果非要比对,应该属于验证(VAR)过程域,说白了,与测试相关。我们知道验收标准这种东西应该是由客户提出,团队去满足。但是在理想的敏捷团队中,应该由客户或者客户代表去构建验收测试用例。说的高大上点来说,这叫基于验收标准的测试驱动开发(ATDD)。不要问我怎么让客户配合,这算世界性难题,特别是在我国的软件环境下。但是验收标准应该随着故事一起出现在你的backlog上,或者是看板上。

无论是在CMMI环境下还是在敏捷环境下,需求总是软件开发过程中最重要的一个环节,在敏捷开发中也是一样,通常PO(product owner)消耗最大的就是与Team去研讨product backlog,然后与团队一起确定sprint backlog。

然后我们要说的另外一个方面是项目监督与控制(PMC),从CMMI的角度来说,我们要做的事是,要监督的是计划、承诺、风险、数据、干系人、进度外加一个里程碑。

我们先说里程碑,还是拿scrum来说,在scrum中里程碑更像是sprint回顾会议,我们在这个会上总结经验教训,在敏捷中里程碑评审成为了一种团队自发的行为,而不是审计行为。

那计划和承诺,我们知道在敏捷团队中,计划和承诺是由全体团队成员共同作出的,会得到全体团队成员的共同监督。

剩下的风险、数据、干系人、进度等方面,理想敏捷团队的工作是高度可视化的,风险理论上是存在的,但是都能在第一时间由团队成员发现并得到缓解,持续下去,团队也好,软件产品也好,稳定性相对比较高。剩下的三个方面都由团队全部成员共同监督。

所以,一个敏捷团队,理应是自发的,自组织的无领导小组,团队中成员能够相互促进,相互监督,共同为团队目标奋斗,在这样一个黄井下,监督和控制就是团队的事了,与第三方无关。

最后,我们说说度量(MA)。在CMMI中的度量除了收集项目数据之外还有过程数据。无非就是进度、范围、质量、成本这几个东西。

很多人觉得,敏捷要省略很多东西,首先会被忽略的估计就是度量了。其实不是这样的,所谓的省略不是不做,而是潜移默化的融合在过程中,用高效的方式去处理。

敏捷也是一样,只不过在度量元和收集的方式上需要稍作调整。团队是自组织的,那么收集的过程那就很自然了。比如说进度问题,我们可以在公共的区域绘制一张燃尽图,每天站立会的时候去更新这个燃尽图,到了迭代结束的时候,自然也就有了这些数据。这只是一个小小的实践,还有很多的方法每个团队都不尽相同,在这就不多赘述了。

其实CMMI与敏捷并不冲突,所谓的融合也是当正规化或者程式化发展到一定的阶段自然形成的,所谓的敏捷转型也就是这个道理,融合制度和过程并不难,难的是让团队都能够发生思想的转变。

浅谈CMMI与敏捷体系的融合相关推荐

  1. 浅谈CMMI几个过程概念流程管理 (转)

    浅谈CMMI几个过程概念流程管理 CMMI(Capability Maturity Model Integration)能力成熟度模型集成,正如它的名字一样,它是一个模型.个人觉得它更是一种概念.它带 ...

  2. 浅谈c++中继承体系中易错点

    浅谈c++中继承体系中易错点 目前,就我工作经验来看,在c++中继承体系中总爱搞错的有两点: 不把基类中需要覆盖的方法为设置为虚方法. 不把基类中的析构函数设置为虚方法. 就第一点而言,如果基类中需要 ...

  3. linux read函数_浅谈Linux内核IO体系之磁盘IO

    前言 Linux I/O体系是Linux内核的重要组成部分,主要包含网络IO.磁盘IO等.基本所有的技术栈都需要与IO打交道,分布式存储系统更是如此.本文主要简单分析一下磁盘IO,看看一个IO请求从发 ...

  4. 浅谈数据中台安全体系构建思路

    作者:王振东 来源:绿盟科技 战略规划部 摘要 数据中台是大数据业务体系数据规约化建设的核心场景,数据中台既搭建大量数据归集的相关设施,又针对数据开展大量治理.运维.分析.加工.共享.开放等交互事务, ...

  5. 金融科技团队的敏捷转型之路 ——浅谈如何提升敏捷领导力

    一.为什么要敏捷转型 (一)转型背景 随着移动互联网.大数据.云计算.人工智能.区块链等诸多创新科技的不断涌现和广泛应用,金融行业迎来了前所未有的挑战和机遇,我们迎来了乌卡(VUCA)时代.为了抓住市 ...

  6. 浅谈业务质量保障体系的建设

    文章目录 前言 质量保障的内容 效率工程 工程规范 内建质量 质量保障实践 质量保障第初级阶段 质量保障第二阶段 迭代流程管理 需求管理 用例管理 缺陷管理 文档管理 线上问题统一管理 统一的问题上报 ...

  7. 浅谈如何搭建知识体系

    作者:wisehuang 在电影<教父>中,有一句台词:"在一秒钟内看到本质的人和花半辈子也看不清一件事本质的人,自然是不一样的命运." 为什么你只能看见的是豹子身上的 ...

  8. 浅谈信息安全与ISO27001体系认证的紧密性

    在全球关注信息安全的今天,ISO27001证书的取得,标志着一个企业在网络安全.运维服务等方面建立的科学有效的信息安全管理体系,得到了权威机构的认可,也表明在系统运行和信息安全管理体系的建设.实施方面 ...

  9. java hexits,[Java]浅谈Java的异常体系

    为什么需要异常 理想的情况下,程序是不会有BUG的.但是现实的情况是:处处都可能引发BUG,比如一个糟糕的输入.需要访问的资源不存在.网络出现抖动.服务器资源不足等等.这就要求我们的程序需要一个机制来 ...

最新文章

  1. 热门 | Google Brain前员工深度盘点2017人工智能和深度学习各大动态
  2. readonly时禁用删除键,readonly按删除键后页面后退解决方案
  3. python爬虫的技能_python-爬虫技能升级记录
  4. golang go mod包管理自定义包及init初始化函数介绍
  5. 网络传输之TCP/IP协议族
  6. 开发到底喜欢看怎样的需求文档
  7. python3 十六进制字符串进行分割并累加
  8. 阿里云产品之数据中台架构
  9. mac 上装windows系统 win10 没声音 耳机也没声音
  10. 研发工程师历年企业笔试真题汇总
  11. RFC 文档(1-500)
  12. 计算机本地网络给手机使用吗,电脑共享网络给手机用的方法步骤
  13. (多方法)彻底解决MAC终端[进程已完成]的“死机”现象
  14. 人生必看的一百部电影
  15. 走近腾讯技术大牛——2012年腾讯线下讨论PPT大盘点
  16. 软件分享 gif转视频
  17. winform中动态生成控件
  18. 关于UDP双向通信原理解释与范例
  19. 套接字技术java_java网络编程之套接字TCP
  20. 联想拯救者r7000p在ubuntu20.04未找到wifi适配器,安装rtl8852ae网卡驱动问题解决方案

热门文章

  1. Yii2 composer安装asset packagist 再提速 静态资源安装
  2. 栈帧及EBP、ESP寄存器及出入栈的流程
  3. core修改模型属性中的默认单位
  4. 双目立体视觉Bouguet矫正算法详解
  5. [C语言]成绩与平均分问题:编写函数ReadScore()和Average(),输入某班学生某门课的成绩(最多不超过40人),当输入为负值时,表示输入结束,用函数编程统计成绩高于平均分的学生人数。
  6. 3款在线网页原型图设计软件推荐
  7. Matlab如何调用外部函数/工具包,如何将新函数加到默认函数库中
  8. lifeifei翻译目录
  9. 从Flyme 1到Flyme 6 看魅族如何打造最懂你的OS
  10. Thinkpad E450c WIN8 重装系统 如何U盘启动