该帖子同步发自:(dynamic99的博客 访问该博客) 敏捷虽然提出也有一些年头了,但这两年才开始在软件行业流行,搞得轰轰烈烈、如火如荼,这种情形与之前的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来提升效率,把以往重复的工作不断自动化、并强化人员的交互、加强创造性,那么可能是很好的举措。 还有一个要提醒的点,无论打算引入什么实践,管理者都需要问自己,公司的质量战略是什么?我们产品的特点是什么?而尤其重要的是我们的困难是什么?哪些是关键问题需要得到解决?想清楚这些问题,自然会明白我们需要应用哪些实践。而之后要做的,就是踏踏实实地做起来,落实下去,并不断调整。
|