什么是在制品限制?通过这篇文章,让你搞明白

在敏捷开发中,进行中的工作(WIP)限制设置了工作流的每种状态下可以存在的最大工作量。限制进行中的工作量可以更轻松地识别团队工作流程中的效率低下。在情况恶化之前,团队交付管道中的瓶颈就清晰可见。

什么是在制品限制?通过这篇文章,让你搞明白


为什么在制品限额很重要?

所以现在你在想,“告诉我更多!” (好吧,我希望你是这么想)

通过强制团队专注于较小的任务集,WIP限制提高了吞吐量并减少了“几乎完成”的工作量。从根本上讲,在制品的限制鼓励了“完成”的文化。

更重要的是,WIP限制使阻止程序和瓶颈可见。当有明确的迹象表明哪些现有工作正在引起瓶颈时,团队可以四处解决阻塞问题,以使他们得到理解,实施和解决。清除障碍后,整个团队的工作就会重新开始。这些好处保证了增值收益能够更快地交付给客户,从而使得WIP成为敏捷开发中有价值的工具。

而且,多任务处理看似很耗时,如上图高速免费,造成的堵车原理一样。

在开发过程中,很容易想到“哦,当我开始研究另一个问题时,我会在这个问题上停下来。” 公开两个问题意味着在两个不同事物之间进行上下文切换,或者在队友之间转移工作。逐步解决一个问题而不是解决另一个问题并不是免费的,因为这会花费时间并降低焦点。解决原始问题总比开始而不是完成新工作要好得多。换句话说,在制品限制使我们不愿阻碍自己的发展。

最后,在制品限制指出了长期闲置或超负荷的区域。他们帮助团队发现整个过程中的低效率,而不仅仅是他们工作的特定领域。

老程提示:

对于刚接触WIP限制的团队,他们会感到尴尬。花一些时间在前几个迭代中讨论它们。了解团队何时以及为何达到在制品限制。抵制诱惑,先随意调整它们。如果违规变得一致,则表明WIP限制太严格或团队的流程效率低下。


对敏捷团队使用WIP限制

推出新的工作流程时,请团队决定为每种状态确定WIP限制。我们建议在监视每个冲刺的每个状态下平均工作项目数之后,设置WIP限制。以下是典型软件开发团队使用的具有WIP限制的示例敏捷板。
什么是在制品限制?通过这篇文章,让你搞明白

上面已经在代码审查中设置了WIP限制。由于该列超出其限制,因此背景变为红色。

由于问题一旦解决就无事可做了,因此就没有在制品限制。在上面的面板中,“为开发准备好”表示该故事已由产品所有者和团队完全审查。在开始处理工作项时,开发团队将工作从“准备开发”拉入“进行中”。

作为最佳实践,重要的是要使足够的工作保持在“为开发准备就绪”状态,以便开发团队的每个成员都能够得到充分利用。通过仅将足够多的故事保持在“为开发准备就绪”状态,产品所有者在充实需求时不会在“游戏中”领先太多,并且程序对更改的响应变得更加灵敏。

“进行中”状态列出了正在积极开发中的工作。在这种情况下,WIP限制的目标是确保每个人都有工作要做,但没人能处理多任务。在上面的面板中,“进行中”项目的限制为4,当前处于该状态的项目为3。这告诉团队他们有能力承担更多的工作。作为最佳实践,一些团队将最大WIP限制设置为低于团队成员数。这个想法是为良好的敏捷实践腾出空间。如果开发人员完成了一项工作,但团队已经处于WIP极限,他们知道是时候取消一些事项或加入另一位开发人员进。

“代码审阅”状态表示故事已被完全编写,但在合并到代码库之前需要进行审阅。及时的代码审查是一种最佳实践,它可以建立质量,更快地将新创新推向市场,通过减少开放分支机构使合并变得容易,并在工程团队中传播知识。由于以下几个原因,应紧急采取这种状态的项目:

  • 随着团队成员签入新代码,代码不会陈旧
  • 开发人员不会丢失上一版本的代码,除非被恶意删除或者覆盖
  • 该功能可以合并到主分支中以进行发布

WIP限制可确保不会堆积未经审查的代码。

请注意,在上面的敏捷板上,团队的代码审查过多,因此该列变成红色表示这一点。

要注意的反模式:

  • WIP限制会根据需要提高,因此团队不会再遇到任何限制。(“技术债务”)
  • 每个人的盘子上都有一个很大的“后台任务”,以掩盖他们原本空闲的时间。
  • 团队成员无所事事,等待更多工作投入,而不是蜂拥而至。
  • 与改善工程实践或团队流程相比,优先考虑将更多的人/小时投入瓶颈。

使用WIP限制的敏捷团队的4个目标

像任何新活动一样,WIP限制一开始可能会感到尴尬。这里的目标是在中期优化团队,短期的尴尬实际上是一件好事。这使团队在他们的过程中感到一些痛苦。在团队使用他们的WIP限制数周之后,请根据需要进行调整。抵制提高WIP限制的诱惑,只是因为团队不断达到它。抓住机会提高能力-理想地,通过教育团队并为每个成员提供新的技能或使开发过程的某些方面更有效率。

目标1: 统一确定各个任务的大小。在分解需求和用户故事时,将单个任务的工作时间保持在16小时以下很重要。这样做可以提高团队 自信地进行估算的能力 ,并有助于防止瓶颈。没有什么能减慢团队速度并增加WIP限制,就像一个大型工作项目阻塞了管道。

老程提示:

当进度限制适用于团队时,问题的周期时间将缩短。周期时间是完成问题所花费的时间

**目标2:**将 WIP限制映射到团队的技能。上面的示例假定团队成员具有相似的技能。如果团队有专家,则在涉及专家的情况下,进行中的工作限制可能会有所不同。创建特定于专家工作的状态。如果在这种状态下出现瓶颈,请利用这个机会来教育其他团队成员,以增加专家技能的额外能力,并增加整个团队的人员流动。

目标3: 减少闲置。当团队成员有一些空挡时间时,鼓励他们帮助上游或下游团队成员。他们将为团队的整体生产力做出贡献,并在此过程中学习一些东西!

目标4: 保护 可持续的工程文化。进行中的工作限制并不意味着开发人员需要匆忙完成工作,以避免在特定状态下工作超负荷。它们旨在支持可靠的敏捷工程实践,以保护产品质量和代码库的健康。