看板方法是用于高效管理软件开发流程的新技术。看板方法源自丰田的“及时生产”(JIT=just-in-time)系统。尽管生产软件是一项创造性活动,与批量生产汽车有所不一样,可是生产线管理背后所蕴含的原理仍然适用。html
一个软件开发的流程能够看做是一段自来水管道,特性需求从一端进入,通过改进的软件从另外一端涌现出来。布局
在管道内部,存在着各类各样的工序,有的是非正式的临时工序,有的是很是正式的阶段性流程。在本文中,咱们假设一个简单的阶段性流程:(1)分析 需求,(2)开发 代码,(3)测试 软件运行正常。测试
瓶颈的影响htm
在管道中的瓶颈会限制工做的流动。管道的总体吞吐量被限制为瓶颈的吞吐量。blog
用咱们的开发管道为例:若是测试人员每周只能测试5个特性,而开发人员和分析人员每周可以生产10个特性,整个管道的吞吐量就只有每周5个特性 ,由于测试人员扮演了瓶颈角色。资源
若是分析人员和开发人员不知道测试人员是瓶颈,那么测试人员的待办工做就会越堆积越多。开发
影响就是前置时间增长。而且,就如同库存同样,位于管道中的工做会套牢投入的资金、产生与市场的距离、以及随着时间逐渐失去价值。部署
最终,影响到质量。为了可以跟上进度,测试人员开始抄近路。最终bug被发布到产品中,致使给用户带来问题,从而影响将来的管道产能。产品
另外一方面,若是咱们知道哪里有瓶颈,咱们就可以从新部署资源来解除它。例如,分析人员能够帮忙测试,开发人员开始进行自动化测试。自动化
可是,咱们怎样才能知道在已知流程中哪里是瓶颈呢?而当瓶颈移动后会发生什么呢?
看板方法能够动态显示瓶颈
看板方法不可思议的简单,但却不可思议的强大。最简单的形式的看板系统包括了一个挂在墙上的大白板,上面有许多卡片或即时贴,这些即时贴按列来放置,每列上方有一个数字。
卡片表明了工做项,列表明了开发工序,卡片会从第一步工序流动到最后一步。每一列顶部的数字用来限制每一列最多容许放置卡片的数量。
看板白板的限制截然不同于其余任何可视化故事板。在流程中的每一步限制在制品(WIP)数量,能够预防生产过剩并动态显现出瓶颈,以便于你能够在达到不可收拾的程度以前找到它们。
样例
下面的白板展现了这样一种状况:开发人员和分析人员正被阻止开展任何新工做,这种状况会持续直到测试人员空出了一个卡片位置并将下一个工做项拉到测试步骤中。这时开发人员和分析人员就会开始寻找可以帮助测试人员减轻负担的方法。
注意,咱们已经将一些列分割成了两列,这是为了用来讲明正在进行中的项与哪些已经完成并准备好被下游工序拉走的项。你也能够用一些不一样的方式来布局白板。这里用的是比较简单的方式。列顶部的限制包含了“doing”(进行中)和“done”(完成)两列。
一旦测试人员完成了一个特性的测试,就会将卡片移走,而且在“Test”列空闲出一个卡片位置。
如今,“Test”列中空出来的位置能够用开发“Done”列中的一个卡片补充进来。这时,“Development”列就会空闲出一个卡片位置,下一张卡片就能够从“Analysis”列中拉进来,其余列也是这样。