辨析 | 几种常见的研发管理体系,到底哪个好?
点击上方蓝字“慕蓉”关注公众号
限时领取一次免费线上咨询机会
这是“慕蓉”公众号第153篇原创文章
# 导读
CMMI、IPD与敏捷开发是现在常见的三种软件研发模式,其中CMMI被许多大公司争相认证,IPD模式被华为等企业广泛采用,敏捷在近年更为被推崇。
到底他们都是什么模式?又具有哪些优势呢?对于每个公司和项目来说,应该如何选择?
近年来互联网行业发展迅速,敏捷研发管理体系备受推崇,被大量小型团队采用。但是在IBM成功经验的影响下,传统的基于CMMI构建的研发管理体系,与华为等公司采用的集成产品开发(IPD)模式就落后了吗?到底他们都是什么模式?又具有哪些优势呢?今天我们就来一一分析下。
01
基于CMMI的研发体系
CMMI(Capability Maturity Model Integration for Software,软件能力成熟度模型集成)是在CMM(Capability Maturity Model for Software,软件能力成熟度模型)的基础上发展而来的。主要用于软件过程的改进,促进软件企业软件能力成熟度的提高,但它对于系统工程、集成化产品和过程开发、供应商管理等领域的过程改进都存在缺陷,因而人们不得不分别开发软件以外其他学科的类似模型。
一般能达到CMMI3级别的,基本上就可以理解为各类流程、过程规则等已经达到一个较好的水平。在早期软件开发以瀑布式开发为主导的项目中,CMMI是可以提升软件公司的项目管理水平和标准化的。
很多公司都会做CMMI体系的认证,但是项目执行中并不会完全按照CMMI体系进行推进,而且在实际中进行大量裁剪。所以现在CMMI更多是招投标中对公司项目管理体系的一种增值,在实际项目中应用较少,但是对大型的软件企业是有用的,现在比较流行的C端互联网项目基本不会采用。
02
基于IPD的研发体系
集成产品开发(Integrated Product Development,简称IPD)是一套产品开发的模式、理念与方法。IPD的核心就是以市场为导向的产品开发,关注需求,将产品开发看成一项商业投资。强调要对产品开发进行有效的投资组合分析,并在开发过程设置检查点,通过阶段性评审来决定项目是继续、暂停、终止还是改变方向。如果要用一句简单的话来概括IPD理念就是,做正确的事情,并把事做对。
在项目早期,通过设置决策点来评估市场机会,不要想去满足所有用户,更不要期望去满足用户的所有需求,而是要把有限的资源集中在有潜力的新产品上。
IPD是一种面向客户需求,将贯穿产品生命周期的活动进行即时协同的产品开发系统方法。目的就是实现跨部门的协同,用结构化的并行开发流程以及相关的考评工具来提升研发效率。如图所示:
现有的很多软件公司都是采用IPD模式构建研发体系,但是要注意的是IPD是个全公司工程,必须具有从上到下的意识。这需要各个部门之间能紧密链接,对于中小企业IPD也不一定适用,因为项目评审环节分工的细密程度会造成一定程度的内耗,效率反倒下降。
03
基于敏捷模式的研发体系
敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。
敏捷开发也是互联网时代,中小型企业最流行的研发管理体系,主要理念就是敏捷迭代、小步快跑,快速改进、拥抱变化,用户参与等等。敏捷开发的实施流程如图所示:
这是一种持续的开发模式,迭代的节奏是非常重要的,基于统一的节奏,产品、开发、测试、发布等不同岗位的人员就像建立了生物钟一样有规律地执行,团队间的协同能力得到极高的体现。这种模式的问题是由于其项目周期很长,所以很难保证开发的人员不更换,而没有文档就会造成在交接的过程中出现很大的困难。
以上就是现在常见的三种软件研发模式,其中IPD模式被华为等企业广泛采用,优势是比较明显的,开发人员也可以快速了解公司研发思路,但是这种公司级体系的推行需要极其强大的执行力和学习能力。CMMI和敏捷开发是把事情做好的思路,各有优劣,只是近年互联网的高速发展,敏捷开发更为被推崇。
对于每个公司和项目来说,采用研发体系应该因地适宜,并没有标准答案,这和团队的发展趋势、项目规模大小、业务形态等方面都有影响。并且研发体系也是一直在发展的,只有适合的才是最好的。