CMMI和敏捷实践分析.doc
CMMI 和敏捷实践分析 由于上次已经说过 CMMI 与敏捷的关系在企业宏观面的思考,这里只谈在企业实施层面的共同点和区别。 一、共同点分析 1、 目标一致,都是要又快又好地做出产品,以满足用户需求,提高用户满意度 ; 2、 都是总结了业界的最佳实践,以把成功的经验能够更快更有效的传播。 二、区别分析 1、 CMMI 是在研究了大量成功的软件企业的实践基础上,对成功实践进行抽象,总结出来的过程标准和推荐实践 ; 2、 Agile 在经验教训的基础上,结合了有效的实践,提出的一些具体的实践方法,可以说是方法论 ; 3、 CMMI 更多是站在企业如何获取成功的角度,从企业的业务目标、发展战略分析企业的业务流程如何开展 ; 4、 Agile 更多关注软件开发的方法和实践,是为达成企业业务目标的一些有效的实践手段和方法 ; 5、 CMMI 更侧重于过程的手段,通过一致的过程来消除不同能力水平的人对企业绩效带来的波动,以稳步提升企业的整体成熟度 ; 6、 Agile 更侧重于发挥人的主观能动性,通过最大限度的激发人的主观能动性,来为企业发展作出贡献。 三、应用和融合 1、 CMMI 是企业级管理思路,企业在达到一定规模时需要进行引入,以使得企业从杂牌军迈向正规军,而 Agile 在企业中形成游击队,是可以大大提高正规军的灵活度,避免因为规模增大、管理规范而形成僵化 ; 2、 由于 CMMI 针对企业级,其中提到的实践可以用于规模大的项目,做大的战役,尤其适用于一些较为复杂的新产品开发,以明确各方协作要求,确保一个稳定的产品架构 ;Agile 针对项目级,更适合不断更新升级的产品开发,适合于小团队作战,最好团队规模小于 7 人 ; 3、 CMMI 相关标准的推荐适用情景: 1) 项目管理:立项、结项 ;总体计划、里程碑管理、决策管理 2) 度量:区分组织绩效考核的要求 (采用外部、客户相关数据 )、效率的要求 (项目的数据 ) 3) 需求管理:制定规范和要求,明确协商原则和奖惩措施 ; 4) 设计开发:制定指导书、推荐用模板和工具,不做强制要求,项目根据生命周期模型选择和调整设计开发方法 ; 5) 产品质量保证:制定指导书、推荐用模板和工具,不做强制要求,项目根据生命周期模型选择和调整产品质量保证的手段和方法 ; 4、 Agile 的推荐适用情景: 1) 项目管理:关注具体项目任务的分配和跟踪、项目问题和风险的管理方式 2) 度量:对每个迭代周期进行度量,而不是针对每个迭代中的阶段进行度量 ; 3) 需求管理:定期的与客户面对面需求确认、进行需求分析和优先级排序,并依据迭代进展,不断更新需求状态 ; 4) 设计开发:在必要时保持简单设计和不断重构,来保证代码质量的可靠性 ; 5) 产品质量保证:极致的评审 (结队编程 )、持续集成 四、实践中的困难 1、 企业价值观导向 Agile 需要在组织中推动,一个很基本的条件是:企业要具备相应的价值观,例如以人为本,重视人的价值和创造性,管理从控制型向引导型转变 ;说起容易做起难,这是一个从上到下的观念和做法的转变,同时要配合更多的企业制度的支持才能做到,是最大的障碍。 2、 人的创造性和积极性 人的潜能是无限的,但如何激发人的创造性和积极性呢 ?在一个产品研发型企业,员工的创造性和积极性是企业生命的源泉,但如何激发和保护员工的这些特质,我们还缺乏有效的手段。 3、 绩效考核 企业为了实现业务目标,做好方向把握和控制, 需要通过绩效考核和 KPI体现公司的导向 ;通常的做法是,组织的 KPI 会层层分解,最终会落实到对个人的绩效考核上 ;但 Agile 的实施,很多团队中人人都工作积极、能力不断提升、差距逐步缩小,在这样的团队氛围下,怎样实施绩效考核才能体现公平,不至于打击员工的积极性 ?