将看板应用于软件开发:从敏捷到精益

发表于:2011-12-14来源:未知作者:贺炘点击数: 标签:
丰田生产方式(Toyota Production System,TPS)中用来支持非集中“拉动式”生产控制(non-centralized "pull" production control)而使用的卡片。作为精益生产的工具,它现在已经应用于世界各地的制造企业之中。如今在敏捷软件开发中,项目的可视化(例如在

丰田生产方式(Toyota Production System,TPS)中用来支持非集中“拉动式”生产控制(non-centralized "pull" production control)而使用的卡片。作为精益生产的工具,它现在已经应用于世界各地的制造企业之中。如今在敏捷软件开发中,项目的可视化(例如在墙壁上放置任务卡片就是常见的实践)往往被叫做“软件看板”,或者“任务看板”。我们甚至可以看到一些产品维护团队在类似瀑布过程模型中使用看板系统。那么,看板到底是什么呢?为什么它会被用于软件开发环境之中呢?

在本文中,我首先解释一下在精益生产中,尤其是TPS中的看板是什么样子的,来理解下这个成熟行业中的实践和法则,并圈定可以应用于软件开发的概念。其次,我将环顾我们的软件开发项目并指出看板应用的例子。然后,我会分析生产环境中的看板系统与软件开发中的看板系统有何异同,并尝试提出观点来有效地在软件开发中应用看板系统,其中还介绍了新近在kanbandev2讨论列表中萌芽的“KSSE——持续工程的看板系统(Kanban System for Sustaining Engineering)”运动。最后,我给出TPS的一个全景视图,也就是看板这种工具的原始背景,软件开发仍可从中有所借鉴。

tdir1"> TPS中的看板

在“拉动式”生产系统中,看板是指示移动或者制造零部件的信号装置(通常是放在透明塑料封套中的卡片),它是在丰田生产系统(TPS)中发明和发展起来的。在介绍软件开发中的看板之前,我来详细的介绍下看板最初的用法,也就是TPS中的看板。

看板的目的是通过确保只有当下游工序需要时上游工序才生产零部件,进而最大限度地减少工序(process)之间的在制品(Work-In-Process,WIP)或者库存。“拉动式”是指下游工人从他们的上游工序中领取或者“拉”出所需要的零部件。

图1 看板和拉动式生产

图1是看板系统的抽象模型。图中以两个工序,上游工序和下游工序为例,其中上游工序为下游工序供应零部件。为了给最终用户提供产品,这一工序需要生产零部件并将其流向下游,但是不能生产太多,因为生产过剩被认为是最糟糕的浪费。为了避免生产过剩,上游工序不是将成品零部件“推”给下游工序,反而是下游工序主动地从上游工序中拉出(拿)零部件。零部件存放的地方叫做“仓库”(或者“超市”——Taiichi Ohno首次提出看板的思想,是在他参观了某个美国超市之后,在那里不是由商店售货员而是由顾客自己去获取他们想要的东西)。仓库位于上游工序,作为在制品的“缓冲区”或者“队列”。当一名来自下游工序的工人——叫做“物料管理员”——来到仓库并拿到新近完成的零部件,同时他也反馈一个生产信号——也就是,下游从上游中获取东西并在同时通过看板卡将信息推给上游。这是必须的,因为没有来自下游工序的信号上游工序决不会生产零部件。

那么在图1中有两种类型的看板一同工作:

领取看板(Withdraw Kanban)——是由物料管理员递交给仓库的购物清单。

生产看板(Production Kanban)——指示上游工序为其下游工序生产零部件。

如图1所示,领取看板循环于两道工序之间,而生产看板循环于工序内部,并且两者在仓库内发生交换。让我们稍微仔细的了解下这个交换细节。图2显示了在仓库中是如何进行“看板交换”。

图2 仓库中的看板交换

1.位于下游的物料管理员收到领取零部件的信号。此信号由下游工序定义,为下面两种情况之一:

(a) 由收集到的领取看板的数量触发信号

(b) 由定时时间间隔触发信号

物料管理员带着空托盘(pallet)和收集到的领取看板访问上游仓库,并将他收集的领取看板当作购物清单——其中标明了下游工序需要什么,需要多少。

2.由上游工序完成的零部件用托盘装着,并附上生产看板放入仓库。(这些发生在一个单独的线程中,和(1)是独立的。)

3.物料管理员拿取领取看板(购物清单)中指定的零部件,检查是否与附在零部件上的生产看板相匹配,然后交换两个看板。

4.他将生产看板放入“生产板(Production Board)”中——稍后当看板累计到一定的阀值时,它将直观地触发上游生产。

5.物料管理员将所需的零部件附带着领取看板一同从仓库搬运至下游车间。

你可以看到仓库是由一个单独的线程控制的、位于两个工序之间的队列(queue),它通过看板来交换物品和信息。看板卡上面写明了像零部件号码、名称、数量、托盘类型、仓库位置这样的信息,这样物料管理员拿到卡片就知道去做什么了。

对于看板的运转有着严格的规定——被称作“看板六准则”:

  1. 客户(下游)工序精确按照看板上指示的数量领取产品。
  2. 供应者(上游)精确按照看板上指定的数量和顺序生产产品。
  3. 没有任何产品在看板之外制造或者流动。
  4. 每件产品每时每刻都要与看板相伴。
  5. 质量残次和数量有误的产品决不能发往下游工序。
  6. 谨慎地减少看板的数量来降低库存并揭露问题。

正如我们所了解到的,仓库用作零部件的队列,托盘用作零部件的载体,而看板卡用作客户之所需的信息载体。通过维持“连续流通(continuous flow)”(消除等待带来的浪费)和“最小化在制品(minizing WIP)”(消除生产过剩带来的浪费)之间的平衡,它们共同形成了“拉动式”系统。在超市中也是用同样的机制来把从采购到销售之间的流程中的在制品维持在“适当”数量,做好这一步是提高商店盈利率的关键。

原文转自:http://www.ltesting.net