您的位置:首页 > 其它

敏捷开发一千零一问系列之十五:同时实施CMMI和敏捷哪个为主?

2012-04-25 15:26 369 查看
这是敏捷开发一千零一问系列的第十五篇。(在这里提问之一之二之三问题总目录
也是敏捷与CMMI系列的第三篇。(总目录

问题

原来问题是这么写的:“一家企业既要过CMMI,又要过ISO,还要实施敏捷,应该怎样做?”
之所以改成“哪个好”,是因为如果要多头并存,就要有主次关系。
那么,到底哪个好,应该以哪个为主呢?

分析

每次说到这个问题,都会有不同的角度可以分析。
一个常见的角度是说:CMMI比较完整“大气”,可以做整个公司的管理框架,而敏捷更适合团队级别的管理。
另外一个角度是说:两个是可以共存的,可以用敏捷开发的实践来满足CMMI的要求。
那么,到底哪个角度是优先考虑的呢?
商业目标是优先考虑的角度。
这是一个经常被廉价贩卖以至于不太引起重视的角度了,大致说的是:要理解自己的现状和目标,以便决策自己的研发方法。
有时候过程改进人员或质量人员也常常研究这个目标,但常常仅限于研究个别度量数据的目标,而极少有人有足够的高度来看整体框架的目标(本人当年也是如此)。
基于这一点,下面方案中分为几个场景一一描述。

方案

方案1:军工、航空航天——生命攸关和潜在重大损失的——CMMI为主
在敏捷与CMMI系列之一/article/1432210.html 中曾经提到,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开发的敏捷开发管理工具)因为原来银行业的业务一直变化很慢,就是存取款贷款之类,但最近大家应该能感受到,银行队伍的长度,和股市、基金、理财、黄金的关系更大,这些业务的需求变化很快,敏捷开发变得势在必行。
因此应该理解自己的行业,也要理解自己正在面对的具体产品,才能决定那种方法更适合,哪种方法为主。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐