4.1.1 设计方法:瀑布和迭代
典型生命周期模型包括瀑布模型和迭代模型。瀑布模型由于酷似瀑布闻名,该模型通过强制提供文档来确保每个阶段都能完成任务,实际上往往难以做好。想象一下,我们去买衣服的时候,售货员给我们出示一本厚厚的服装规格说明,我们会是什么样的感触。所以瀑布模型在过程能力上有天生的缺陷,问题一般到最后才会暴露出来。迭代模型类似小型的瀑布式项目,所有的阶段都可以细分为迭代。每次迭代产生一个可以发布的产品。在某种程度上,迭代是一次完整地经过所有工作流程的过程,包括需求收集、分析设计、实施和测试等环节,如图4-1所示。
图4-1 迭代模型
迭代模型和瀑布模型的最大的差别在于风险的暴露时间上,不管开发团队经验有多丰富,都很难预知所有的风险。瀑布模型一般有许多风险直到已准备集成系统时才被发现。而迭代模型能在生命周期中尽早发现和避免风险,计划会更趋精确,如图4-2所示。
图4-2 风险的暴露时间
IPD产品开发流程可视为典型的瀑布式模型。但是随着互联网时代的兴起,产品开发特别是软件产品开发追求以用户为中心、快速迭代、流程简化、研发工程师之间的充分沟通和自学习等能力,同时因为软件修改比较容易,所以软件产品大多采用敏捷迭代模型。产品开发未来的趋势是敏捷迭代模型。
IPD产品开发流程敏捷迭代可考虑从两个角度实现,一是在TR2~TR4A流程中实现敏捷,引入敏捷思想和实践。二是从一个产品中多个需求的串行开发转变到基于小需求包的并行开发。要求需求管理、版本规划、跨部门协同的实践更加充分。全流程角度减少需求等待时间,最高限度的缩短上市时间,更聚焦客户价值。
由于绝大多数快速成长型企业仍以瀑布式开发为主,故本书主题还是以IPD产品开发流程为示范,仅在软件管理章节加入迭代(敏捷开发)部分的内容介绍。
案例分析:互联网公司开发产品的“快”。
某游戏公司Q率先推出了一款“吃鸡”游戏,三天后同行W公司开发出类似游戏,一周后T公司也开发出类似的游戏。这些公司把996(早9点到晚9点,6天班)变成了724(7天24小时)。在互联网时代,最快推出的产品的公司往往“赢者通吃”,产品推出稍晚就需要花费几何倍数的推广成本,还不一定能达到效果。
4.1.2 流程设计原则
流程不能期望完美,要足够简单,在结构化和非结构化之间需要保持平衡,效率和质量之间也需要保持平衡。
■互联网时代一切崇尚极致的简单,尤其是快速成长型企业的研发人员变动也非常快,所以建议流程用简单的工具设计,研发人员能一眼看明白,最好零基础的人能一眼看明白。两个简单的原则是Don'tmake me think, Keep it sample and stupid(KISS);
■能够一张图显示整体;
■流程并不是越全越细越好,能够快速展示重点活动,非重点活动另行展示;
■不要花里胡哨,也不要密密麻麻。