如何快速响应市场的变化,如何推出更有竞争力的产品,如何在竞争中脱颖而出,是国内研发企业普遍面临的核心问题,为了解决这些问题,越来越多的企业开始重视创新与研发管理,加强研发过程的规范化,集成产品开发(IPD)、集成能力成熟度模型(CMMI)、敏捷开发(Scrum)是当前企业产品研发管理的最热门的3个体系,但是很多朋友并不真正了解这3套管理体系的适用范围和内涵,本文描述了它们之间的区别以及如何在企业研发管理过程中合理加以应用才能达到最优化的结果,使企业在市场竞争中保持不败之地并能脱颖而出。

上篇请参考:如何理解IPD+CMMI+Scrum一体化研发管理解决方案之IPD篇

http://blog.sina.com.cn/s/blog_81427a800102wqm5.html

中篇请参考:如何理解IPD+CMMI+Scrum一体化研发管理解决方案之CMMI篇

http://blog.sina.com.cn/s/blog_81427a800102wqm6.html

下篇请参考:如何理解IPD+CMMI+Scrum一体化研发管理解决方案之Scrum篇

http://blog.sina.com.cn/s/blog_81427a800102wqk7.html

敏捷开发是历史必然

软件生命周期模式的发展体现了软件工程理论的发展,最早的时候,软件处于无序、混乱的状态,为了管理和控制软件的开发过程,就把软件开发严格区分为多个不同的阶段,并在阶段间进行严格检查,体现了人们对软件过程的希望:严格控制、确保质量,这也就是瀑布开发模型的起源。

软件的特性是无形、多变、难以描述清楚,基本是零成本无限拷贝,人们切实感受到软件的独特价值后,开始对软件赋予越来越多的能力,软件变得非常庞大,从原来的辅助作用,已经发展为主导力量,按照传统瀑布开发模型,要求项目之初就需要把需求准确定义出来,并且在项目运作中严格控制和减少需求变更,而针对如此庞大的软件系统、针对一个未知的系统,项目之初就要求把需求严格清晰地定义出来,无疑是一个非常有挑战的事情;美国国防部审查早起采用瀑布开发模型的软件项目,结果发现75%的以失败而告终,只有2%的软件产品无需大量修改就能正常使用,已经迫切需要提升软件开发模式了。

为第一艘美国三叉戟潜艇开发的第一指挥控制系统是最早记载使用迭代和增量开发的主要软件项目之一,项目大约有一百万行代码,进行的非常成功。

2001年,17名编程大师分别代表极限编程、Scrum、特征驱动开发、动态系统开发方式、自适应软件开发、水晶方法、实用编程等开发流派,发表“敏捷软件宣言”,敏捷软件开发是一种软件管理的新模式,用以替代以文件驱动开发的瀑布开发模式。

Scrum是敏捷开发(Agile)的典型代表

Scrum相关的介绍资料已经很多了,在此就不再赘述,同时下图的Scrum框架图估计大家也都非常熟知了:

核心内容3-4-3,3个角色(产品所有者、ScrumMaster、团队成员)、4个会议(迭代计划会议、迭代验收会议、迭代回顾会议、每日站会)、3个产出(产品Backlog、迭代backlog、进度曲线图)。

CMMI和Scrum之英雄惺惺相惜

CMMI和Scrum都是当今优秀软件开发模型,最终的目的都是要交付一个让客户满意的软件系统,只是两者强调的重点不同:CMMI比较强调策划、计划、规范、监控、量化,尤其强调流程规范在软件开发中的价值;Scrum强调协作、变化、快速调整、尤其强调工具自动化在软件开发中的价值;其实这些内容对软件开发的成败都非常重要,只是不同产品、不同阶段、不同场景为了达到当前的目的,需要对有些方面给予更多重视而已。

不同产品,基于实际实践经验总结,CMMI更适合规模庞大、性命攸关、一旦出问题会带来重大损失的软件项目管理,例如军工控制系统、航天控制系统、卫星导航系统、银行大型交易系统;而Scrum比较适合需要快速响应市场、非核心控制系统的软件项目管理,例如互联网个人应用、企业非核心交易系统、军工中非核心系统软件等。

不同阶段,针对一个软件系统往往会同时采用CMMI和敏捷两种管理模式,通常情况构建全新软件系统1.0时,这个时候涉及比较多底层框架的构建,而底层框架的质量直接影响软件后续的生命力,同时底层框架的变动会导致比较多的推倒重来,严重影响项目进度;底层平台涉及比较多的核心算法,而这些内容难度大,需要强调文档化记录,便于产品持续继承和维护,所以这个阶段多采用CMMI模式,强调前期策划要充分,设计要到位,最大程度减少反复;而一旦产品1.0构建完成,后续就进入快速迭代、快速响应客户需求阶段,这个阶段尤其是小特性的开发项目,一般都采用Scrum敏捷开发模式。

Scrum和IPD是绝配

IPD强调市场驱动的产品开发、把产品开发作为投资来运作,确保产品开发的方向正确,有效支撑公司研发战略的落地,管理层次比较高;Scrum强调通过团队高效互动,从而适应市场变化、快速交付、持续改进,最终达到交付让客户满意产品的目的;IPD和Scrum的有效结合,可以一方面确保产品开发大方向的正确性,同时又能有效提升交付速度,从而更适应快速上市时代(第三代研发管理)的竞争要求。

案例分享:华为技术IPD+Scrum(项目级敏捷过程体系)


如上图所示,整体产品的端到端开发是按照IPD整体框架来运作,大的阶段划分为概念、计划、开发、验证、发布5个阶段;其中概念、计划、验证、发布是把产品当成一个整体来运作(概念阶段详细定义产品包需求、计划阶段进行产品整体设计、子系统设计,同时初步策划产品级(版本级)迭代计划,规划需要通过多少次大的迭代来实现产品所有的设计需求),而开发阶段把软件系统(模块)作为相对独立的管理单元,按照Scrum迭代模式来运作,按照标准的Scrum模式来运作;等所有功能全部迭代完成后,对产品进行全面回归验证,验证没有问题,就准入进行后续的系统集成验证(SIT),整点完成性能、外部系统融合等相关测试。

Scrum自动化工具是关键

Scrum强调拥抱变化、及时调整、增量迭代、质量优先、持续完成直接可以交付使用的产品,软件代码间是相互交错在一起的,有过软件开发经验的人就知道,软件最容易因为增加新功能而导致原来测试好的功能又出问题,同时往往因为修改一个Bug引出多个Bug,要保证软件每次迭代的交付质量,测试是Scrum模式非常重要的一环,而测试需要反复重复多次,如果采用Scrum模式,测试还停留在原始手工测试水平上,这样的Scrum可以基本判定是假的敏捷,不是真正意义的Scrum,势必会导致伴随功能越来越多,测试压力越来越大,结果无法保证每次迭代的交付质量,测试Scrum敏捷模式非常强调自动化工具的使用,如何是某公司Scrum持续集成工具体系:

如何理解IPD+CMMI+Scrum一体化研发管理解决方案之Scrum篇的更多相关文章

  1. 如何理解IPD+CMMI+Scrum一体化研发管理解决方案之CMMI篇

    如何快速响应市场的变化,如何推出更有竞争力的产品,如何在竞争中脱颖而出,是国内研发企业普遍面临的核心问题,为了解决这些问题,越来越多的企业开始重视创新与研发管理,加强研发过程的规范化,集成产品开发(I ...

  2. 如何理解IPD+CMMI+Scrum一体化研发管理解决方案之IPD篇

    如何快速响应市场的变化,如何推出更有竞争力的产品,如何在竞争中脱颖而出,是国内研发企业普遍面临的核心问题,为了解决这些问题,越来越多的企业开始重视创新与研发管理,加强研发过程的规范化,集成产品开发(I ...

  3. 百人研发团队的难题:研发管理、绩效考核、组织文化和OKR

    分享一个公司规模近200,研发占一半的创业公司 Worktile 在研发团队管理方面的玩法,仅供百人左右研发团队参考~ 什么是研发团队?简单的说,你熟悉的那帮穿格子衬衫,以程序员为核心组成的团队,就是 ...

  4. atitit 研发管理 要不要自己做引擎自己实现架构?.docx

    atitit 研发管理 要不要自己做引擎自己实现架构?.docx 1.1. 目前已经有很多引擎了,还要自己做吗??1 1.2. 答案是自己做更好,利大于弊1 2. 为什么要自己做??1 2.1. 从历 ...

  5. Atitit.研发管理--提升效率--软件开发方法DSM总结o99

    Atitit.研发管理--提升效率--软件开发方法DSM总结o99 1. 什么是DSM? 1 2. DSM使用的语言DSL 2 3. 模型的优点 2 4. DSM 跟与MDA区别 2 5. MDA的实 ...

  6. 深圳共创力“研发管理&知识管理”高端研讨交流会在深圳举办!

    2017/4/8,由深圳市共创力企业管理咨询公司举办的“研发管理&知识管理”高端研讨会在深圳市南山区圣淘沙国际酒店(翡翠店)隆重召开.此次研讨会由共创力总经理.首席顾问杨学明先生主持.研讨会先 ...

  7. 青云QingCloud黄允松:最高效的研发管理就是没有管理

    摘要: 对于底层技术创新而言,没有管理是最好的管理,小规模作战,快速试错,迅速转变方向,迭代周期一定要短. 钛媒体注:钛媒体.商业价值联合主办的第五届“MIIC移动互联网创新大会”如期举行.2015 ...

  8. Worktile完成新一轮融资,将发力研发管理赛道

    Worktile 宣布完成B+轮融资.本轮融资由亿联凯泰基金领投,老股东斯道资本.宽带资本跟投.该轮融资将用于公司产品技术研发及市场拓展. 作为企业服务行业的佼佼者,Worktile 始终以打造世界级 ...

  9. 再见了,我的散装研发管理平台;再见了,4台ECS!

    周末的时候,收到好几个云服务器临近过期的通知短信,准备续个费,居然都要大几千!因为这几个都是以前低价抢购的,掐指一算,如果都续费的话,要蚕食好多利润!作为一名自己养活自己的独立开发者,节省成本是必备技 ...

随机推荐

  1. C++练习 | 运算符重载练习

    #include <iostream> #include <cmath> #include <cstring> #include <iomanip> u ...

  2. centos6 命令界面切换到图形界面

    要进入图形界面,首先要安装.所以应该先执行 yum groupinstall "X Window System" -y yum groupinstall "Desktop ...

  3. JQuery简单总结(思维导图)

  4. laravel5.5源码笔记(四、路由)

    今天这篇博文来探索一下laravel的路由.在第一篇讲laravel入口文件的博文里,我们就提到过laravel的路由是在application对象的初始化阶段,通过provider来加载的.这个路由 ...

  5. Home Assistant系列--之树莓派安装Samba 和 Jupyter Notebook

    1.什么是Samba? Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成.SMB(Server Messages Block,信息服务块)是一种在局域网上 ...

  6. CentOS7和OpenStack的笔记(一)

    CentOS7和OpenStack的笔记(一) 最近搞CentOS7系统和OpenStack框架,整了近一个星期,系统装了好几次,框架搭了又从搭.虽然最后的实例没能启动成功,但是在这专研的一个星期里, ...

  7. eclipse安装hadoop插件

    我想还有很多人没有听说过ZModem协议,更不知道有rz/sz这样方便的工具. 好东西不敢独享.以下给出我知道的一点皮毛. 下面一段是从SecureCRT的帮助中copy的: ZModem is a ...

  8. Flex copy and paste

    <?xml version="1.0" encoding="utf-8"?> <mx:WindowedApplication xmlns:mx ...

  9. 20155320信息安全系统设计第二周课堂考试总结及myod的实现

    20155320 信息安全系统设计第二周课堂考试总结及myod的实现 第二周测试一二已在课上提交 第二周测试3-gdb测试 用gcc -g编译vi输入的代码 在main函数中设置一个行断点 在main ...

  10. 用sudo 运行命令的时候,环境变量用的是super用户的环境变量

    比如今天在~/.bashrc设置了JAVA_HOME, 而sudo运行命令的时候却显示没有设置可用的JAVA_HOME