什么是看板
看板(kan-ban) 是一个日本词语,来源于日本丰田。看板本意为“信号卡”,在生产制造环境中,这种卡片用作一种信号,通知生产过程中的上游工序继续生产。在这种生产过程中,除非从下游工序获得该信号,否则每个工序的工人不准进行任何额外生产。这和我们生活中,地铁通过限流来防止客流量超过系统承载量,是类似的——都是通过信号控制生产系统过载。
在软件开发中,卡片的数量代表团队工作能力能够处理的上限。这里的卡片代表工作任务,除了包含之前提到的用户故事,也包含问题修复、培训等其他任务,因为这些都是需要占用团队时间和精力完成的。在这些任务没有完成之前,新到达的任务只能在队列中等待,直到有任务完成才能开始。除非是用高优先级的任务替换当前进行中的低优先任务。为了解决团队过载问题,需要将团队成员的工作可视化,了解每个人的工作内容及工作量、任务延期的卡点,从而改进团队在研发过程中存在的问题。
因此,看板方法是一个包含可视化工作流程,定义流程运作规则,限制在制品数量的拉动系统,是一种在团队成员工作不过载的前提下,实现按时交付的管理方法。
如何使用看板
1、价值流映射
价值流是指从响应客户请求创造价值开始,到完成请求交付用户价值为止,所需要实施的一系列的相关行动。而将价值流可视化的工作,称为“价值流映射”。为什么要做价值流映射?软件开发的最终目标是交付用户价值,在交付用户价值的整个流程中,会涉及产品、开发、测试、运维等多个环节。因此,如果想要更快交付用户价值,需要了解整个流程的运行情况。价值流映射能够帮助我们了解整个流程。下图是某企业某产品线的价值流映射图,展示了从需求提出到用户上线的整个周期的价值流动过程。
每一个环节下面都标明了完成该环节的相关数据含义:
LT:Lead Time,前置时间或交付时间,是指一个工作项从开始到结束所消耗的时间,包含了等待时间。
PT:Process Time,处理时间,是指处理该工作项的时间。
%C/A:The Percent Complete and Accurate,完整度与准确度百分比,该值表示返工的比率,一般为估计值。
由此可以看出,一个需求从提出到上线验证完成总共需要 69 天。而其中只有 36 天的时间是用来从事价值产出的活动,其他 33 天或被用来等待下一步工作,或修复发现的缺陷。这 33 天并没有产生价值。从价值流映射中,我们可以发现影响价值交付的因素和瓶颈,并对这些因素和瓶颈进行优化。
2、定义工作项类型
上面我们完成了价值流映射,下一步就要识别价值流中的工作项类型,一般包含以下几种:
以需求为中心的工作项,包括需求,功能,用户故事等;
以开发为中心的工作项,包括重构,缺陷,优化等;
以运维为中心的工作项,包括扩容,备份,故障等;
其他事务型的工作项,包括培训,会议等。
这里提到的工作项类型要体现在下面看板中。在整个软件开发流程中,我们不仅要关注能够增值的工作项(如需求),也要关注非增值工作项(如缺陷,重构,备份等)。因为这些非增值工作项可能会成为阻碍项,务必关注。
3、可视化设计
将价值流映射作为输入,将其中的步骤抽象为分析、设计、开发、测试、发布几个关键环节,就可以设计出工作项需要流经的看板的列。如下图所示。需要注意的是,每一列分为“进行中”和“完成”两个子列。“完成”列是下游输入的“等待”列,这里,“完成”列是给下游的一个信号,说明上游工作已经完成,可以拉取并开始下游的工作。
4、定义状态规则
如果想要让设计出来的看板能够运作起来,就需要定义一些规则。比如,任务卡片的书写规则是什么?需求具备分析的条件有什么?需求进入开发之前,需要满足的条件是什么?需求在进入测试之前,需要满足的条件是什么?每个任务完成的条件是什么?显示化定义这些规则,目的是让团队成员对流程规则有一致的理解和承诺,为团队提供明确的决策依据。
5、跟踪工作项
看板方法是为了顺畅的交付高质量的用户价值。只有每个工作项都能够顺利的,按部就班地完成,才能最终交付用户价值。因此,对工作项的跟踪,了解团队运作和工作项流动情况。
一般需要重点关注的方面有:
- 积压的需求,表明该环节已经过载,影响到整体价值流的顺畅流动,如图中的开发环节;
- 中断的需求,表明某个环节供给不足,价值流出现中断,如图中的测试环节;
- 阻碍的需求,表明该需求由于某种原因无法正常进展,该类需求应推动问题的解决,尽快恢复流动,如图中的设计和开发环节中有红色标记的需求;
- 即将或已经到期的需求,指在规定完成的时间内未完成的需求;
- 长期停滞的需求,指长时间未更新状态的需求。
6、持续改进
持续改进是敏捷软件开发方法中非常重要的一个原则。通过小批量,短周期迭代,团队能尽快收集用户关于软件产品的反馈,从而在下一个迭代中进行改进。与敏捷软件开发方法“增量式的迭代开发方式”不同,看板方法在开发上并未切分成小循环的过程,它强调的是“渐进式的变革”,是一个不断做调整的流程控制方法。这一点,可以采用戴明提出的PDCA持续改善模式。
PDCA 是 Plan-Do-Check-Action 的缩写,是一个四步循环,用来提高产品质量和改善产品生产过程。这里做个简单的介绍:
Plan(规划), 是指在一个周期里制定一个明确的工作计划,包括工作计划的内容,产生的预期结果,以及计划完成后的验收标准;
Do(执行), 执行上一步制定的工作计划,并收集执行过程中的信息和数据;
Check(检查), 核对上一步收集的信息和数据,和预期结果进行对比,并对哪些做对了,哪些做错了进行总结。
Action(处理), 对上一步总结的结果进行处理,好的经验继续保持,对于需要改进的方面提出改进方案,并交给下一个 PDCA 循环去解决。
以上面看板为例,最初制定规划,以当前现状为基础实施看板方法。在执行中,通过的跟踪工作项步骤,发现了其中积压的需求、中断的需求和阻碍的需求等问题,并记录了积压需求的数量,需求任务的工时,团队成员的数量和能力等数据。结合这些数据分析造成这些问题的原因,比如需求量多,人手不足,需求难度大等。那么在下一个规划中就要采取改进措施,有针对性的解决这些问题。
不管是做企业还是做产品,不可能一蹴而就,都需要在不断试错、改进中渐渐完善。看板方法具有很强的问题暴露和提示改进机会的能力,能有效提高组织在完整价值流上的关注程度和绩效表现。