CMMI和敏捷.doc
CMMI 和敏捷 敏捷虽然提出也有一些年头了,但这两年才开始在软件行业流行,搞得轰轰烈烈、如火如荼,这种情形与之前的 6SIGMA、 CMMI 流行期间一样风靡,得到了大多数人的一致拥护和认可,被大家所推崇 !! 2009 年底的中国过程改进年会中,有一个经典的 CMMI&Agile 的 PK 赛事,PK 双方都是一些业界知名人士或者咨询行业专家,其结果是 CMMI 方获胜。结果并不能说明一切,但其过程却发人深省。 CMMI 由于其强大的理论体系和多年在软件业的深入人心,得到了在场评委的一致认可 ;而 Agile 就如初生婴儿,没有完善的理论体系来指导世人,因而获败 !然而,让我记忆深刻的一件事是,获得CMMI 组最佳辩手的资深咨询人士私下对我说,如果可以选择,宁愿作为 Agile组的辩手。 看到这种潮流,我们也不禁跃跃欲试,希望通过对 Agile 和 CMMI 进行比较,了解其优缺点,有目的的引入一些好的 实践。这期间,我们调研了一些实践敏捷的企业或单位,发现了一个共同的现象是:所有做敏捷的企业都在引入一些典型的实践,例如任务的看板管理、持续集成、结对编程、 TDD 等,似乎大家的目的都是要不断的无限的缩小产品推出周期,以更敏捷的姿态来应对市场竞争,或者由于竞争对手引入了,所以我们要引入。但是,我们没有听到哪个实施 Agile的企业或单位去深入剖析自己的业务模式、经营特点、竞争对手态势等,从而来形成自己的开发管理模式 !!!而这点,恰恰是我们的方向和目标,是我们需要在开展具体工作中不断要抬头关注的东西。 有一些需 要考虑的因素: 1、 公司的市场战略和产品战略是什么 ?是尽快提升市场占有率还是开发出产品的核心竞争力 ? 2、 新产品有哪些 ?老产品有哪些 ?新老产品当期的市场战略和竞争策略是什么 ? 3、 老产品若属于产品成熟期,可能需要稳定市场、开发新市场,并降低产品成本,提高产品开发效率 ; 4、 新产品可能需要尽快开发出来,并不断到市场测试和检验,以不断调整自己的产品特性,以符合市场的需求 ; 5、 公司当前的投入产出比、净利润率状况如何 ?扩大再生产的投入比例是多少 ? 这些是公司层面甚至于产品决策层面 需要思考清楚的问题,在这个基础上,我们才能说质量战略是什么,不同的产品采用不同的质量策略 ;CMMI 也好、 Agile也好,都是服务于公司战略的,是为达到公司长短期业务目标服务的 ;通常来说,大部分企业都使用了 CMMI 来塑造自己的开发模型,以达到成本、质量、进度受控的目的。在运用了 CMMI 之后,企业过程达到了一定的稳定度,各企业能在不同程度上把握控制产品研发 ;但是也凸现一些问题,比如创造性、民主意识等等,这也是为什么 Agile 应运而生的根源。 但是,我们要意识到,无论 CMMI 还是 Agile,都在具体产品状况下 有着不同的应用方式,因此,我们一定要注意,千万不要一拥而上,拿来就用,不考虑各种实践的适用性。刚才说过新老产品的区别,新产品也许连 CMMI 的标准都够不上, Agile 更不用谈 ;也许要的就是一个有能力的管理者 +几个核心技术人员,大家一股作气把新产品搞定,这其中人的因素、人的创造性就是决定因素 ;说到老产品,每个老产品各有不同的成熟度,比如:我这个产品开发团队组成新人占50%,那么 Agile 的效果也许是要大打折扣的,更多还是从 CMMI 基础开始,咱们一步步来 ;如果比较成熟,人员能力较强,也许探索 Agile 来提升效率, 把以往重复的工作不断自动化、并强化人员的交互、加强创造性,那么可能是很好的举措。 还有一个要提醒的点,无论打算引入什么实践,管理者都需要问自己,公司的质量战略是什么 ?我们产品的特点是什么 ?而尤其重要的是我们的困难是什么 ?哪些是关键问题需要得到解决 ?想清楚这些问题,自然会明白我们需要应用哪些实践。而之后要做的,就是踏踏实实地做起来,落实下去,并不断调整。