团队如何限制合适的在制品(WIP)数量
看板之父David Anderson曾说过“ 看板的本质是一个很朴素的思想:在制品必须被限制。”但对于团队来说,确定一个合适的在制品限制可能是件棘手的事。
在 《看板快速启动指南》一文中,我们已经初步了解如何打造一个看板,今天我们来一起聊聊,在 启动看板的过程中核心的一步:限制在制品。本文将和大家一起通过了解一些在制品的内容,来帮助团队找到适合的在制品限额。
注意,制定在制品限额后并非一成不变,团队可以根据实际情况,按照团队的节奏来更改在制品限额。

一、为什么要限制在制品数量
简单来说就是为了避免团队或个人同时做太多工作,避免让下游流程负载过重。比如如果测试人员手头已经有很多工作了,我们就不希望开发人员再继续开发新功能,给测试人员增加负担,而是希望他们腾出手来帮助测试人员尽快完成测试。 在制品限制就如同一个警告的信号,在问题失控前引起团队的重视。
二、哪些工作项属于在制品限制范围
在制品限制只适用于功能卡,也就是任务卡片内容为可直接交付价值的功能。像技术故事(非功能性条目,需要完成但又不属于可交付物的东西)和Bug修复不包括在内。不包括Bug修复是因为,Bug通常都是紧急的,且非常小。另一个原因是,目前在看板上还没有一个统一处理bug的好方法,因为bug有时会在进度看板上标出,而有时没有。所以如果团队的看板体系还不稳定和成熟,不建议就bug的管理制定太多规则。
不包括技术故事是因为,它虽然需要完成但并不能为产品负责人和客户带来直接的价值,如果将其置入在制品范围内,不仅会占用在制品数额,而且当测试遇到瓶颈时,测试的进度就会变慢,而研发已经完成任务就会被阻塞,无法进入测试,研发的在制品限额也会达到设定的上线,影响团队流速。
只适用于功能的另一个原因是,能与团队衡量工作的标准一致。不同的角色有着不同的工作内容,而对于任务的界定也会标准不一。只适用于功能,能让团队在任务项上保持一致,利于看板的流动。随着团队看板的不断优化和改进,这些内容也可以根据情况适当改变。
三、如何限制在制品数量
1、利特尔法则
了解在制品要先了解下利特尔法则:同时做的事情越多,每件事情花费的时间就越长。 其公式为:周期时间=在制品数量/吞吐量
- 周期时间:完成每个工作项所需时间
- 在制品数量:并行的工作量
- 吞吐量:完成每个工作项所需的平均时间
举个例子,A在排队买快餐,已知A在第20个(队伍的最后一位),且收银窗口每分钟能处理一个人的点餐需求,那么这个队伍的在制品数量就是20(个),平均吞吐率是1(人/分钟),A从排队到点完餐的这个等待时间就是“前置时间”。根据利特尔法则我们可以得出A的等待时间是20分钟。因为在一段时间之内,保持工作量饱满的话,每天能做多少工作基本是一定的,所以吞吐率基本上不会发生太大变化。如果这个时候我们想缩短平均前置时间,也就是等待时间,我们可以通过减少在制品数量来达成这个目标。
在例子中,就是减少排队者的数量,我们都清楚10个人的队伍和20个人的队伍,前者等待时间更短。
2、在制品限制的基本原则
- 更低比更高好
虽然在制品限制越低,工作流动越快,问题也能被尽快发现,但 并不意味将在制品设置得过低。因为设得过低,可能会对流速造成干扰。比如直接设为1的话,流动中的任何干扰,都会让工作停顿。
- 调整人员闲置或着工作闲置情况
有时团队的WIP数量会太低,导致成员有时无事可做;太高,又会导致工作闲置,怎么办呢?那就根据情况边适应边调整。如果WIP太高,导致工作闲置,就需要降低在制品限制。如果WIP太低,导致人员闲置,可以在看板中列一个“我今天做什么”的列表,这样可以让大家协作完成工作,比如研发同学不开发新功能,而是帮忙测试。这也符合在制品限制的精髓: 努力完成一件事,而不是努力开始做另一件事。
关于限制在制品,团队可以记住一句话: 暂缓启动,聚焦完成。团队同意在开始任何新工作之前,要尽力完成当前手头工作。这样就能将在制品保持在较低的水平,因为只有完成了手头的工作,才能开始新的工作项。当然,刚开始的时候会有些困难,但这是运用看板方法的一个必经过程。
- 没有限制是不对的
不设置数量限制,这是不少团队在导入看板方法时最常犯的错误。没有在制品限制会让成员丧失积极性和改进的动力。久而久之,看板上的任务项也会越堆越多,很难再推动工作取得进展。当我们手上并行的事情越多,流程中所有工作项的前置时间就越长,此时限制工作数量,就能推动我们尽快完成手头的工作,不断改进流程。

3、限制在制品的四种方式
- 按照人数限制在制品
限制每个人可以同时激活的头像数,比如每人3个,当领取一个工作项后,就把头像贴到工作项卡片上,头像如果用完了,就不能再开展新的工作项了,开始新的工作项就需要尽快解决掉未完成的工作项。
- 按照列限制在制品
按列限制在制品数量,这样能让成员聚焦在工作项的流动上。比如,在下图的 禅道 看板中,测试列的需求的最大个数显示为5,那么限制看板列的在制品限额就能促使团队尽快移交完成的需求进行测试,获取反馈和交付价值。

- 按照泳道限制在制品
用泳道来限制同时进行的需求的个数:每条泳道最多可以有多少WIP。这种方法的好处是可以根据不同泳道的优先级来定义WIP,让优先级更高的泳道占有更多的资源。这样能促使团队尽快完成已经开始的需求。
- 多种限制方法综合使用
可以根据需要结合多种限制方法,可以结合上述的三种方式:泳道限制、看板列限制、人数限制来综合使用。
四、结语
限制在制品是看板的核心原则之一,但限制在制品不是目的,改善流程才是,它只是一个能帮助我们发现阻碍能改善流动性的问题的工具。限制在制品也并不意味成员应该做更少的工作,而是指应该减少成员同时处理的工作。
在制品不是一成不变的,数量多少不重要,最关键是将团队目前的在制品可视化,根据团队需要和节奏进行调整,如此才能帮助团队的每位成员更迅速地完成更多的任务,交付更多的价值。
从现在开始,打造你的看板,找到适合团队的在制品限额吧。
团队如何限制合适的在制品(WIP)数量的更多相关文章
- 团队如何选择合适的Git分支策略?
现代软件开发过程中要实现高效的团队协作,需要使用代码分支管理工具实现代码的共享.追溯.回滚及维护等功能.目前流行的代码管理工具,包括CVS,SVN,Git,Mercurial等. 相比CVS和SVN的 ...
- 看板中的WIP限制
WIP限制并不是真的要限制你的进度,事实上正相反. 什么是WIP限制? 在敏捷开发中,WIP限制决定了每种情况下的工作流中可以存续的最大工作量.限制进行中的工作数量可以更容易辨识团队工作流中的无效工作 ...
- [.net 面向对象程序设计进阶] (22) 团队开发利器(一)简单易用的代码管理工具VSS
[.net 面向对象程序设计进阶] (22) 团队开发利器(一)简单易用的代码管理工具VSS 本篇要点:在进阶篇快要结束的时候说说源代码管理器,我们的开发,不是一个人可以完成的事,团队协作很重要,而且 ...
- 201671030114 马秀丽 实验十四 团队项目评审&课程学习总结
项目 内容 作业所属课程 所属课程 作业要求 作业要求 课程学习目标 (1)掌握软件项目评审会流程:(2)反思总结课程学习内容 任务一:团队项目审核已完成.项目验收过程意见表已上交. 任务二:课程学习 ...
- 转:一位10年Java工作经验的架构师聊Java和工作经验
黄勇( 博客),从事近十年的 JavaEE 应用开发工作,现任阿里巴巴公司系统架构师.对分布式服务架构与大数据技术有深入研究,具有丰富的 B/S 架构开发经验与项目实战经验,擅长敏捷开发模式.国内开源 ...
- 巧用Scrum与Kanban
本文来自网易云社区 文\屈鹏飞 在互联网行业的项目管理实践中,敏捷和精益一直是大家所提倡的思想,其中Scrum和Kanban方法作为即敏捷又精益的典型代表,许多PM都在研究,笔者近期也在学习和实施Sc ...
- 专访黄勇:Java在未来的很长一段时间仍是主流(把老板当情人,把同事当小孩,把客户当病人)
url:http://www.csdn.net/article/2015-09-06/2825621 2015-09-06 13:18 摘要:本文采访了现任阿里巴巴公司系统架构师黄勇,从事近十年的Ja ...
- 使用Visual Studio Team Services敏捷规划和项目组合管理(三)——使用Kanban板
使用Visual Studio Team Services敏捷规划和项目组合管理(三)--使用Kanban板 1.要查看Kanban板,请单击Work>Backlogs页面上的Board 链接. ...
- 十年阿里java架构师的六大设计原则和项目经验
先看一幅图吧: 这幅图清晰地表达了六大设计原则,但仅限于它们叫什么名字而已,它们具体是什么意思呢?下面我将从原文.译文.理解.应用,这四个方面分别进行阐述. 1.单一职责原则(Single Res ...
- ORACLE ERP 的前世今生
一个伟大的公司必有一个伟大的产品.如果说数据库是ORACLE在上世纪最后二十年赖以起家并奠定江湖地位的旗舰产品,那么,企业应用产品(或曰ERP)则毫无疑问是ORACLE在本世纪初的这近十年,征战疆场. ...
随机推荐
- (附体验地址)大模型知识引擎:AI 助手能否助力销售技能提升?
体验地址:https://lke.cloud.tencent.com/webim_exp/#/chat/FAIMcM 腾讯云的大模型知识引擎本身定位于为企业客户及合作伙伴提供服务,因此我在探索如何最佳 ...
- next.js 添加 PWA 渐进式WEB应用(service-worker) 支持
本文仅作为 next 系列文章中的一部分,其他 next 文章参考: https://blog.jijian.link/categories/nextjs/ 去 github 搜索了一把,估计是我关键 ...
- Django实战项目-学习任务系统-发送短信通知
接着上期代码内容,继续完善优化系统功能. 本次增加发送短信通知功能,学习任务系统发布的任务,为了更加及时通知到学生用户,再原有发送邮件通知基础上,再加上手机短信通知功能. 第一步:开通短信通知服务 目 ...
- Python 潮流周刊#95:像人类一样使用计算机(摘要)
本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章.教程.开源项目.软件工具.播客和视频.热门话题等内容.愿景:帮助所有读者精进 Python 技术,并增长职 ...
- 【Ubuntu】在Ubuntu上安装IDEA
[Ubuntu]在Ubuntu上安装IDEA 零.前言 最近换了Ubuntu系统,但是还得是要写代码,这样就不可避免地用到IDEA,接下来介绍一下如何在Ubuntu上安装IDEA. 壹.下载 这一步应 ...
- lua三色标记的读写屏障理解
起因是已经被标记为黑色的对象无法进行再次遍历,然而黑色对象发生了引用变化:断开了引用或者引用了别的对象,会导致多标(不再被黑色对象引用的对象未能回收),漏标(黑色对象的新引用未能遍历标记)
- 使用Python+SymPy求解微分方程
引言 在学习微积分或者物理.工程相关的学科时,微分方程常常是我们需要解决的一个重要问题.微分方程是包含未知函数及其导数的方程,广泛应用于描述变化过程中的规律,如物理中的运动方程.化学中的反应速率.经济 ...
- RocketMQ的Producer是如何发送消息的
RocketMQ 的 Producer 发送消息过程涉及多个步骤,包括初始化.消息创建.发送方式选择 1.Producer初始化 首先,我们需要创建并初始化一个Producer示例 这段代码完成了以下 ...
- web自动化:webelement常用api
一.常用基本操作 1. Click 触发当前元素的点击事件 webelement.click(); 2.Sendkeys 往当前元素输入内容 webelement.sendkeys("con ...
- 可轻便docker部署的密码保存系统:Vaultwarden
一.简介 Vaultwarden是著名的Bitwarden项目的一个分支,是一个社区驱动的项目,使用Rust语言编写.它是Bitwarden的轻量级自托管替代方案,完全兼容Bitwarden客户端协议 ...