1992年在激烈的全球市场竞争下,IBM遭遇到了严重的财政困难,公司销售收入停止增长,利润急剧下降。经过内部分析,IBM发现他们在研发费用、研发损失费用和产品上市时间等几个方面远远落后于业界最佳。为了重新获得市场竞争优势,IBM提出了将产品上市时间压缩一半,在不影响产品开发结果的情况下,将研发费用减少一半的目标。为了达到这个目标,IBM公司率先应用了集成产品开发(IPD)的方法,在综合了许多业界最佳实践要素的框架指导下,从流程重整和产品重整两个方面来达到缩短产品上市时间、提高产品利润、有效地进行产品开发、为顾客和股东提供更大价值的目标。后来,国内外很多软件公司也引进了IPD管理方法。
同样是软件研发,IPD和现在流行的敏捷、DevOps等都是能够让项目更高效/更高质量,那它们到底有什么区别?
首先需要明确的
IPD是一种产品管理体系,是企业层面的;而敏捷、DevOps是产品开发流程,更多地面向软件研发,二者不完全属于同一层面的东西。公司推行了敏捷流程,也可以推行IPD管理体系,二者并不冲突。
具体看二者的概念:
IPD(Integrated Project Delivery)是一种全新的、基于协作的项目管理方法,它的特点是所有参与方都必须共享相同的目标,通过集成现代技术和方法,以实现减少浪费及提高效率和质量。它是IBM公司在综合了许多业界最佳实践要素的框架指导下,从流程重整和产品重整两个方面来达到缩短产品上市时间、提高产品利润、有效地进行产品开发、为顾客和股东提供更大价值的目标。
敏捷开发方法是一套软件开发框架,通过反复迭代交付以及与客户的快速沟通,来确保项目达到用户期望、可持续并不断演进。敏捷的方法可以减少重复的工作,以及缓解在项目进展过程中对变化的焦虑。
可见,二者的概念不同也导致了关注的范围、思想高度都不同。IPD从更高维度、更全面的视角来看待产品开发,同时,将整个企业战略、品牌理念都嵌入到产品中;敏捷开发更倡导通过迭代来提高效率、保证质量。
由此,也带来了二者管理范围的不同。IPD需要对所有的产品开发活动进行管理,横向上,涉及市场、设计、测试、试制、制造、采购、服务、销售、财务各功能部门在产品开发中的活动;纵向上,涉及决策、管理、执行三个层面。敏捷则是更面向于研发部门的活动,往往包含产品、开发、测试几个主要角色,当然,也提倡与业务侧的沟通和对接。
既然IPD是跳出开发流程,从更高层面关注整个企业,IPD和敏捷开发的关注重点也不一样。IPD不仅落在把事情做对(do the things right),更关注上一个层面的做正确的事(do the right things),所以IPD既强调执行的效率和质量,也强调决策的重要性。敏捷开发则更关注开发流程的执行层面,即把事情做正确(do the things right),各类敏捷开发方法构成了完整的研发落地体系。
最后,说说DevOps,DevOps是强调开发运维一体化的软件研发方法和过程。在一定意义上,它是将敏捷开发扩展到了运维侧的开发方法。它意味着在项目管理中,开发人员和运维人员必须协同工作,以达到快速交付且高效运维的目标。在DevOps中,“构建-测试-部署”这一过程非常重要。这个过程要求开发人员必须与运维人员同步,以确保项目在所有环节的质量达到最高标准。而相比较之下,IPD注重的则是在整个项目的生命周期中,如何使得整个过程更加高效、低浪费、高质量。
IPD模式的整合式交付,实现了多方资源,从规划一直到维护运营,全流程协同、协作。IPD模式产生的相互依存关系和沟通将大大缩短工程建设周期,减少工程变更,提高全部参与者的满意度。
最终,在IPD的模式下,成功地将所有参与方聚集在一起,以合力创造高品质的项目。相较于传统的项目管理方式,IPD往往更加节省时间和金钱,令工程师和建筑师获得提高的生产率。同时,IPD也可以促进所有参与方之间的沟通领域,以提高整个项目的效率。