敏捷开发一千零一问系列之十五:同时实施CMMI和敏捷哪个为主?
问题
原来问题是这么写的:“一家企业既要过CMMI,又要过ISO,还要实施敏捷,应该怎样做?”
之所以改成“哪个好”,是因为如果要多头并存,就要有主次关系。
那么,到底哪个好,应该以哪个为主呢?
分析
每次说到这个问题,都会有不同的角度可以分析。
一个常见的角度是说:CMMI比较完整“大气”,可以做整个公司的管理框架,而敏捷更适合团队级别的管理。
另外一个角度是说:两个是可以共存的,可以用敏捷开发的实践来满足CMMI的要求。
那么,到底哪个角度是优先考虑的呢?
商业目标是优先考虑的角度。
这是一个经常被廉价贩卖以至于不太引起重视的角度了,大致说的是:要理解自己的现状和目标,以便决策自己的研发方法。
有时候过程改进人员或质量人员也常常研究这个目标,但常常仅限于研究个别度量数据的目标,而极少有人有足够的高度来看整体框架的目标(本人当年也是如此)。
基于这一点,下面方案中分为几个场景一一描述。
方案
方案1:军工、航空航天——生命攸关和潜在重大损失的——CMMI为主
在敏捷与CMMI系列之一http://blog.csdn.net/cheny_com/article/details/6423463 中曾经提到,CMMI的本质是美国国防部(DOD)用于筛选供应商的标准,其核心价值观是利用需求、计划的可追溯性、一致性,来达成对生命攸关和潜在重大损失项目的保障。
这一要求可以令其基本忽略我们常常引以为豪的“创新”“激励”这些因素,或至少坚定地把这些因素排在一致性、可追溯性之后。
方案2:银行、证券——潜在重大损失的——CMMI为主,辅以RUP
IBM是CMMI的重要推手之一,此外他们还是军工和制造业软件研发管理工具的提供者——Rational系列产品及后来收购的Telelogic DOORs、SA等产品,广泛应用于军工、航空航天、制造业,但IBM最喜欢的,不是瀑布模型,而是RUP。
RUP可以理解为瀑布被迭代化了,允许业务的“不断精进”,而不是最初把需求就要一次定好。
RUP也可以理解为迭代被瀑布化了,允许迭代的目标不完全是“生产可运行软件”,或者虽然如此,但比重不同;比如开始做“可运行软件”的目的,不是交付,而是用作需求沟通的原型。
RUP是IBM这个与银行业打交道由来已久的老牌供应商的工作方式,无疑是这个行业的代表方法。
方案3:一般外包——CMMI为框架,辅以敏捷
为什么以CMMI为框架?
因为CMMI除了有军工、国防部这些标签外,还有几个标签:外包,供应商,供应商筛选。甚至可以说CMMI整体就是为外包双方准备的。而敏捷开发中,就无法直接看到有直接相关的内容。
方案4:互联网,网络游戏——Scrum为主
这个行业建议一点都不要看CMMI。
不是说CMMI完全无用,而是说有比CMMI适合地多的东西值得去做,比如产品创新,用户体验。
这就有点像多数人都学点英语,但不学日语,不是学日语无用,而是对自己的职业生涯影响不很直接。
方案5:创新产品,移动互联小程序,网络游戏的初期——XP,“原始的”原型法,乃至混沌
各种神奇的创业公司在初期的时候几乎都没有任何管理体系,然而其生产率估计到后来“正规化管理”后也无法超越,难道“管理”“开发方法”这些东西起的是反作用吗?
不是。
各种管理及方法,整体上有两个大的目标:
1. 保证正在做一个正确的产品,需求符合用户的需要。
2. 保证人员在正确地做事(包括正确的技术,被激励的工作态度等),确保产品被及时完成。
在创业团队中,虽然没有“正规管理”,但却有其他的方法在保证这两件事情。换言之,如果“正规管理”没有聚焦于这两点,或没有充分做到这两点,那么就显得用处不大。
在方案5涉及的语境中,“正规管理”能起到的作用是很小的,或者说无需正规管理,1和2应该也是能做到的(否则只能说找错了人,比如“我们用严格管理进行创新”就是错误的,应该是“我们找到一群激情的人进行创新”),因此过程应该尽量轻量化,去完成真正应该完成的创新工作。
方案6:随时随地按实际情况决策
并非所有行业都是一成不变的,也不是所有行业的所有产品都符合行业特征。
为什么CMMI中开始出现了敏捷的内容?很多人会想:“敏捷开发过于热火,CMMI不得不考虑一下广大程序员的心情。”其实不然,美国国防部是不会基于程序员的心情或业界的呼声而改变自己选择供应商的标准的,除非行业自身发生了变化。随着设备小型化,原来主要用于大型航空航天载具、指挥管控系统的软件已经逐渐走向单兵或单个小型器械,如果经常看《未来武器》系列纪录片,就会意识到这一点。这些产品很多对“一致的、可追溯的”需求没有太大的追求,反而是快速响应变化变成了一个看得见的价值。
为什么IBM也开始做RTC了呢?(RTC是IBM Rational开发的敏捷开发管理工具)因为原来银行业的业务一直变化很慢,就是存取款贷款之类,但最近大家应该能感受到,银行队伍的长度,和股市、基金、理财、黄金的关系更大,这些业务的需求变化很快,敏捷开发变得势在必行。
因此应该理解自己的行业,也要理解自己正在面对的具体产品,才能决定那种方法更适合,哪种方法为主。
转载于:https://blog.51cto.com/cheny/1102058
敏捷开发一千零一问系列之十五:同时实施CMMI和敏捷哪个为主?相关推荐
- 敏捷开发一千零一问系列之十八:长期受制于强势客户怎么办?(下)
这是敏捷开发一千零一问系列的第十七篇.(在这里提问,之一,之二,之三,问题总目录) 方案3:培养产品经理,想到客户前面 被客户牵着鼻子走本来不是坏事,还少了做需求分析的工作,但关键是客户一会牵着向东, ...
- 敏捷开发一千零一问系列之十六:如何让开发人员学习产品?
这是敏捷开发一千零一问系列的第十六篇.(在这里提问,之一,之二,之三,问题总目录) 这个和上一篇"敏捷开发与CMMI谁为主"都是最近一次培训被大家选出来的最有价值问题. 问题 开发 ...
- 敏捷开发一千零一问系列之十四:敏捷开发加班吗?
这是敏捷开发一千零一问系列的第十四篇.(在这里提问,之一,之二,之三,问题总目录) 正逢周末,又是愚人节,群中有人正在加班,想起上次培训中间休息的时候,讨论起这个"敏捷开发加班吗" ...
- 敏捷开发一千零一问系列之十二:敏捷实施的步骤?
这是敏捷开发一千零一问系列的第十二篇.(在这里提问,之一,之二,之三,问题总目录) 问题 原问题:敏捷的具体实施是否按照一定的步骤? 方案 越前面的方案月容易实施,但是也越容易流于肤浅而失败. 方案1 ...
- 敏捷开发一千零一问系列之十:总体架构什么时机进行?(下)
这是敏捷开发一千零一问系列的第十篇.(在这里提问,之一,之二,之三,问题总目录) 问题 总体架构设计在什么时机进行?是每个迭代做还是先做完再迭代? 方案 之前提到了在时间的角度上,从技术和商业层面上的 ...
- 敏捷开发一千零一问系列之五:怎样让队员主动要活?
这是敏捷开发一千零一问系列的第五篇.(在这里提问,之一,之二,之三,问题总目录) 本问题被评为某次课程最佳问题之一(每场2-4个). 问题 怎样让团队成员完成从派活到主动要活? 方案 步骤0: 在一个 ...
- 敏捷开发一千零一问系列之七:怎样对待有看法的徒弟?
2019独角兽企业重金招聘Python工程师标准>>> 这是敏捷开发一千零一问系列的第七篇.(之一,之二,之三,问题总目录) 问题 松结对编程中,师傅对徒弟安排任务时,对于有想法的徒 ...
- 敏捷开发一千零一问系列之一:序言及解决问题的心法(无我)
这是敏捷开发一千零一问系列的第一篇.(之一,之二,之三,问题总目录) 也是般若敏捷系列第十篇.(之一,之二,之三,之四,之五,之六,之七,之八,之九,之十,之十一,之十二) 转载于:https://w ...
- 敏捷开发一千零一问系列之二:序言及解决问题的心法(无住)
这是敏捷开发一千零一问系列的第二篇.(之一,之二,之三,问题总目录) 也是般若敏捷系列第十一篇.(之一,之二,之三,之四,之五,之六,之七,之八,之九,之十,之十一,之十二) 无住 在般若敏捷系列中已 ...
最新文章
- python画轨迹曲线-python 自动轨迹绘制的实例代码
- Ubuntu 取消 Apache及MySQL等自启动
- 批量更改Windows操作系统文件名
- [Issue Fixed]-不能为虚拟电脑xxx打开一个新任务
- 项目中用到的BAPI合集
- | 一文读懂迁移学习(附学习工具包)
- 【杭州云栖】边缘计算ENS:拓展云的边界
- (转)shiro权限框架详解05-shiro授权
- php 设置 最大内存,修改PHP的memory_limit限制的方法分享
- java爬虫框架哪个好_Java爬虫(二)Java爬虫框架
- Linux高清壁纸软件,十个小众的 Linux 桌面软件
- ajax接收反参时,接收到[object XMLDocument]时的处理方法
- onkeyup+onafterpaste 只能输入数字和小数点
- unnormal C++
- Nature子刊 | 全球变化因子对土壤微生物多样性和功能的影响
- 美国加州中学课本 教材介绍 - Glencoe系列- 美国初中语文 数学 科学 健康
- 计算机老师给新生的第一堂课怎么讲,新老师如何讲好第一堂课?看这篇就够了!...
- Asia's pollution exodus: Firms struggle to woo top talent 逃离亚洲空气污染:企业难以吸引顶尖人才
- 开源免费的图片压缩软件,从50M到50K,极力安利
- python3的tkinter登录界面设计+mysql数据库的导入数据
热门文章
- axios_的基本使用_使用axios()方法来发送请求---axios工作笔记004
- Sharding-Sphere,Sharding-JDBC_介绍_Sharding-Sphere,Sharding-JDBC分布式_分库分表工作笔记001
- C#.Net工作笔记015---C#中Decimal类型四舍五入_小数点截位
- 数据库异常---ORA-01436: 用户数据中的 CONNECT BY loop in user data 循环
- java面试要点---oracle,mysql,DB2数据库的分页
- android学习笔记---56_activity切换动画与页面切换动画,自定义activity窗口切换动画效果的实现.
- princomp 与pca的区别与联系
- kafka删除topic及其相关数据
- linux如何做bond4,linux系统做bond
- laravel auth::check 后session失败_01.laravel简介