随着越来越多的企业自行或者在咨询公司的帮助下导入IPD,IPD已经在国内很多企业发挥了巨大的作用,对于涉及软件开发的企业来说,IPD与CMM的结合,效果还是非常不错的,但是随着敏捷开发理论及实践的不断发展,敏捷开发也带来了另一种不错的选择,特别是对于一些外部环境复杂、客户需求变化快的企业而言,敏捷与IPD的结合也成了企业当前推行或者预备导入IPD面临的一个难题。华为从1998年在IBM的帮助下引入IPD,采取的是IPD+CMM的开发模式,但是从2009年开始,华为大规模推行IPD+敏捷的开发模式,IPD+敏捷的开发模式不仅没有降低华为产品的质量,拖累企业的发展,反而让华为产品更加完美的满足了客户的需求。
IPD模式下如何进行敏捷开发,笔者通过分析成熟应用敏捷开发的企业的成功实践,特别是重点对比分析华为的IPD+敏捷开发模式,发现华为等企业在这种开发模式上的成功,其实有着必然的因素,也可以这么说,在IPD+敏捷的开发模式上有着多种成功且成熟的实践,这些好的实践主要体现在如下方面:
首先是坚持系统工程分析过程,这是IPD与敏捷开发衔接的关键点。
推行IPD不是意味着固定的开发流程和开发节奏,推行敏捷开发也不是意味着一定要灵活,不写文档,很多企业软件人员甚至高层管理者对敏捷开发的理解存在误区,笔者曾在某企业调研,企业在之前已经自行导入IPD,建立了IPD流程,对于软件开发,引入了敏捷开发。笔者对敏捷开发推行现状做了交流,发现企业对敏捷开发的整体感受就是每天召开了站立会议,以及不要写文档。同时在对企业的全面调研中还发现,软件和硬件之间缺乏有效协同,硬件对软件的需求变更频繁,而且软件和硬件开发节奏也不同步。
敏捷开发针对各软件开发组,但是一个产品不仅是一个软件开发组,一般都会包含多个软件开发组,还会包含硬件、结构、电气等开发小组,各开发组只是整个新产品开发的一部分,之前的产品整体需求分析、产品总体设计对软件开发影响重大。需求分析的充分完整,可以有效减少软件开发的不确定性,减少需求变更,降低设计,提高设计效率。敏捷开发的适应外部需求的变更并不意味着无限的需求变更。IPD与敏捷的结合的关键是需求,即Product Backlog。系统工程的作用,就是把市场/客户需求,以及内部需求,通过需求分析、总体设计,明确各软件开发组需求,系统工程是IPD与敏捷衔接的关键过程。
其次是产品开发管理思想的转变。
一方面是管理者与团队成员的思想的转变。对于管理者,传统的CMM管理强调计划的控制,控制是主旋律,管理者组织制定详细的工作计划,从上往下分配工作。而敏捷开发强调管理者的支撑及引导职能,强调管理者要去激发、激励团队,想办法建设自组织自管理团队,通过设立目标去牵引团队成员,帮助团队成员去完成工作任务。对于团队成员,传统的CMM对团队成员的定位是听从命令做工作,重视文档交付,任务相对单一,聚焦专项能力。在敏捷开发模式下,强调团队成员的重要性,关注团队成员的工作积极性,强化任务的主动参与及认领,任务可以多样化,面对面交流是主要交流方式。
另一方面是敏捷开发强调简单管理规则,如站立会议的"三固定"原则、燃尽图、CI运作规则等,与传统CMM模式对比,敏捷开发的简单管理规则,可以让管理运作高效。
最后,是敏捷实践过程中工具的应用。
敏捷开发,不仅是流程、实践、新管理思想的应用,高效工具的引入对敏捷的效果发挥至关重要。可以设想下,如果没有持续集成工具,如何保证每日集成的正确性?没有自动化测试,如何保证代码重构的正确性并及时验证?等等。因此,推行敏捷开发,必须重视工具的导入,华为在敏捷开发的推行过程中就自行研发并且同步引入了大量的工具以提高开发及测试效率。
IPD+敏捷开发模式的推行,不是一蹴而就的事情,可以实施分步走的策略。如下是某企业推行IPD+敏捷开发的"三步走"策略,可供正在或者未来希望采取IPD+敏捷开发模式的企业作为借鉴:
三步走核心思想:敏捷转型成功的关键是团队意识的转变和能力的提升,通过三步走的策略,实现人员技能、工程能力、流程、工具等方面的积累,在风险可控的情况下逐步达到全面敏捷的目标。
项目级敏捷:实施的范围限定在TR2-TR4A,聚焦单个项目组或多个项目组协同的开发过程和能力改进;对IPD流程的对外交付点及非研发领域(用服、Marketing等)没有影响。
版本级敏捷:版本级敏捷实施的范围将扩展到TR1'-TR6,对架构、设计、非研发领域协同(用服,Marketing等)等多个方面能力提出了更高的要求;版本具备按特性向最终客户分批交付的能力,加快对用户响应速度(TR1'表示在版本级敏捷下的TR1定义和当前IPD流程中定义的TR1将会有区别)。
产品级敏捷:实施范围扩展到产品的全生命周期(含所有版本),以更小的需求包接纳客户需求,给用户提供更快的市场响应速度,将在规划、组织结构、主流程、市场、财务、供应链、商务等方面带来巨大挑战。
PAGE
1