【目录】
4. WIP
WIP (work in process)指的是已经开始但尚未完成的工作。
4.1 批量大小要经济合理
计划驱动的顺序开发过程的另一个核心理念是,倾向于将相同类型的工作分批汇集到一个独立阶段中执行。称为“整体推进”,即在开始后续活动之前,必须先全部完成当前阶段的所有事情。
顺序开发的理念是,大批量的产品开发也能实现规模经济。
在 Scrum 中,建议产品开发采用小批量的方式
4.2 识别并管理库存资源以达到良好的流动
制造业有一个值得软件开发行业借鉴的教训就是库存的高成本。 我们在守着大量库存的时候如果事情有变,就会导致一种或多种形式的浪费。为了最小化风险,能干的制造商采用一种经济合理的方法管理库存——手头保留一部分库存,但通过实行准时供给的库存管理方式,只留合理的库存数量。
WIP 刚好是产品开发过程中需要管理的关键变量。传统开发方式中,批量大小设置得相当大(通常为100%),实际上倾向于制造大量库存。在软件开发中,如果出现大量 WIP,后果很严重,会严重影响变更成本曲线。
Scrum 的目标是合理地平衡适量库存和过多库存之间的关系。
4.3 关注闲置工作,而非闲置人员
闲置工作(idle work):有些工作我们想做却由于其他事情的阻碍而无法做。
闲置人员(idle worker):指的是员工有能力做更多工作但当前并没有100%投入。
很多传统软件开发企业更关注如何消除闲置人员所造成的浪费,给他们找来更多的工作或者分配到多个项目中,这样做的确是降低了人员空闲浪费,但同时却增加了工作停顿所造成的浪费。
举个最佳实例:奥运会 4 * 100 米接力赛,如果采取让人 100% 连轴转的策略,并不能赢得接力赛的金牌,这里我们关注的应该是“看好接力棒,而不是队员”。
在 Scrum 中,我们需要找出工作流的瓶颈并集中精力消除它,相较于努力让每个人都100%连轴转,这样做更加经济合理。
4.4 考虑延期成本
延期成本是工作延期或里程碑延期达成所产生的财务成本。
5. 进度
5.1 根据实时信息来重新制定计划
在计划驱动的顺序开发过程中,计划是工作如何开展、何时进行的权威信息源。因此,计划是需要遵循的。在 Scrum 中,我们认为盲目信计划往往会让我们忽视“计划可能有错”这个事实。
在 Scrum 开发过程中,我们的目标不是为了满足某个计划或者某个事先认为事情如何进展的预言。相反,我们的目标是快速地重新制定计划并根据开发过程中不断出现的、具有重要经济价值的信息进行调整。
5.2 通过验证工作结果来度量进度
在计划驱动的顺序开发方式中,如果每个阶段的开始和结束都符合预期,那么产品开发工作的进展看起来就非常好。然而到最后阶段,完全按计划制造出来的产品可能与客户期望得到的交付价值相去甚远。
在 Scrum 中,通过构建可工作、已验证的成果来度量进度。这些工作成果交付了价值并且可以用来验证重大的假设。
5.3 聚焦于以价值为中心的交付
顺序开发特有的结构决定了只有在工作快结束时才集成并交付特性。传统开发的一个相关理念是,在交付特性过程中产生的计划和文档本身也是有价值的。但大多数时候也只局限于对下游过程有价值,而非对客户有价值。
Scrum 是一种客户价值为中心的开发方式。它是基于优先级排序的增量交付模型,价值最高的特性持续构建并在下一个迭代中交付。这样,客户就可以尽快且持续获得高价值特性。
在 Scrum 中,价值的产生是通过向客户交付可工作的资产、验证重大假设或获取有价值的认知来实现的。
6. 执行
6.1 快速前进,但不匆忙
在 Scrum 中,核心目标是灵活、适应、快速。快速的认知和反应能够及早产生收入或降低成本。但是,不要匆忙,不然可能违反 Scrum 可持续节奏的原则——人们应该以长期稳定的节奏工作。而且,匆忙还可能付出牺牲质量的代价。
6.2 内建质量
在 Scrum 中,质量并不是测试团队在最后阶段“测”出来的,而是由跨职能的 Scrum 团队负责并持续内建于每个冲刺中。
6.3 采用最小够用的仪式
计划驱动的开发过程倾向于重仪式、以文档为中心、重过程的方法。
Scrum 是以价值为中心的,它带来的一个副作用是,几乎不强调以过程为中心的仪式。我们的目标是消除可有可无的繁文缛节,因此,我们为仪式设定了一个较低的标准,“基本够用”。
Scrum 并不反对文档。相反,我们是从经济角度仔细审查需要创建哪些文档。
【目录】