看板之父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)数量的更多相关文章

  1. 团队如何选择合适的Git分支策略?

    现代软件开发过程中要实现高效的团队协作,需要使用代码分支管理工具实现代码的共享.追溯.回滚及维护等功能.目前流行的代码管理工具,包括CVS,SVN,Git,Mercurial等. 相比CVS和SVN的 ...

  2. 看板中的WIP限制

    WIP限制并不是真的要限制你的进度,事实上正相反. 什么是WIP限制? 在敏捷开发中,WIP限制决定了每种情况下的工作流中可以存续的最大工作量.限制进行中的工作数量可以更容易辨识团队工作流中的无效工作 ...

  3. [.net 面向对象程序设计进阶] (22) 团队开发利器(一)简单易用的代码管理工具VSS

    [.net 面向对象程序设计进阶] (22) 团队开发利器(一)简单易用的代码管理工具VSS 本篇要点:在进阶篇快要结束的时候说说源代码管理器,我们的开发,不是一个人可以完成的事,团队协作很重要,而且 ...

  4. 201671030114 马秀丽 实验十四 团队项目评审&课程学习总结

    项目 内容 作业所属课程 所属课程 作业要求 作业要求 课程学习目标 (1)掌握软件项目评审会流程:(2)反思总结课程学习内容 任务一:团队项目审核已完成.项目验收过程意见表已上交. 任务二:课程学习 ...

  5. 转:一位10年Java工作经验的架构师聊Java和工作经验

    黄勇( 博客),从事近十年的 JavaEE 应用开发工作,现任阿里巴巴公司系统架构师.对分布式服务架构与大数据技术有深入研究,具有丰富的 B/S 架构开发经验与项目实战经验,擅长敏捷开发模式.国内开源 ...

  6. 巧用Scrum与Kanban

    本文来自网易云社区 文\屈鹏飞 在互联网行业的项目管理实践中,敏捷和精益一直是大家所提倡的思想,其中Scrum和Kanban方法作为即敏捷又精益的典型代表,许多PM都在研究,笔者近期也在学习和实施Sc ...

  7. 专访黄勇:Java在未来的很长一段时间仍是主流(把老板当情人,把同事当小孩,把客户当病人)

    url:http://www.csdn.net/article/2015-09-06/2825621 2015-09-06 13:18 摘要:本文采访了现任阿里巴巴公司系统架构师黄勇,从事近十年的Ja ...

  8. 使用Visual Studio Team Services敏捷规划和项目组合管理(三)——使用Kanban板

    使用Visual Studio Team Services敏捷规划和项目组合管理(三)--使用Kanban板 1.要查看Kanban板,请单击Work>Backlogs页面上的Board 链接. ...

  9. 十年阿里java架构师的六大设计原则和项目经验

      先看一幅图吧: 这幅图清晰地表达了六大设计原则,但仅限于它们叫什么名字而已,它们具体是什么意思呢?下面我将从原文.译文.理解.应用,这四个方面分别进行阐述. 1.单一职责原则(Single Res ...

  10. ORACLE ERP 的前世今生

    一个伟大的公司必有一个伟大的产品.如果说数据库是ORACLE在上世纪最后二十年赖以起家并奠定江湖地位的旗舰产品,那么,企业应用产品(或曰ERP)则毫无疑问是ORACLE在本世纪初的这近十年,征战疆场. ...

随机推荐

  1. Ctfhub-SSRF部分做题记录

    Ctfhub-SSRF部分做题记录 上传文件 提示:这次需要上传一个文件到flag.php了.祝你好运 进入flag.php 发现没有提交按钮 修改源代码,加个提交按钮 抓包 修改host为127.0 ...

  2. dig命令命令常见用法

    域名结构 主机名.次级域名.域名.根域名 host. sld .tld .root 几种常见的解析类型 A记录 CNAME txt记录 dig命令命令常见用法 dig,"domain inf ...

  3. Web前端入门第 12 问:HTML 常用属性一览

    HELLO,这里是大熊学习前端开发的入门笔记. 本系列笔记基于 windows 系统. HTML 常用属性大约 70 个,是否又头大了?脸上笑嘻嘻,心里嘛...嘿嘿... 温馨提示:属性不用死记硬背, ...

  4. linux xxx is not in the sudoers file. This incident will be reported.

    前言 linux 报错:xxx is not in the sudoers file. This incident will be reported. 这意味着用户 xxx 没有在 sudoers 文 ...

  5. ModuleNotFoundError: No module named '_sqlite3' when Python3

    前言 运行 python 报错:ModuleNotFoundError: No module named '_sqlite3' 解决 重新编译安装 python ./configure --enabl ...

  6. golang实现三重DES加密解密

    DES DES(Data Encryption)是1977年美国联邦信息处理标准(FIPS)中所采用的一种对称密码(FIPS46-3),一直以来被美国及其他国家的政府和银行等广泛使用.随着计算机的进步 ...

  7. phpstorm、goland常用快捷键

    1) 文件操作相关的快捷键 快捷键 作用 Ctrl + E 打开最近浏览过的文件 Ctrl + N 快速打开某个 struct 结构体所在的文件 Ctrl + Shift + N 快速打开文件 Shi ...

  8. MySQL配置主从复制教程(MySQL8)

    原理: 数据库在进行DDL和DML语句操作时,会被记录到binlog的日志文件里,而读取这里面的日志就可以知道数据库进行过哪些DDL和DML操作,这是主数据库的日志,从数据库经过相关配置可以实时获取到 ...

  9. 一文速通Python并行计算:02 Python多线程编程-threading模块、线程的创建和查询与守护线程

    一文速通 Python 并行计算:02 Python 多线程编程-threading 模块.线程的创建和查询与守护线程 摘要: 本文介绍了 Python threading 模块的核心功能,包括线程创 ...

  10. BUUCTF---RSA1

    RSA基础概念 rsa原理: RSA公开密钥密码体制的原理是:根据数论,寻求两个大素数比较简单,而将它们的乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥 RSA算法的具体描述如下: (1) ...