BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

解析精益产品开发(一)—— 看板开发方法

| 作者 何勉 关注 4 他的粉丝 发布于 2013年4月27日. 估计阅读时间: 20 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

看板(Kanban)开发方法是近年来最热门的敏捷和精益开发方法。越来越多的案例表明,它能够改善协作、优化管理,显著提高交付速度、质量和灵活性。看板开发方法的规则简单,但其有效实施依赖于对原理的理解、对原则的坚持和实践的应变。本文将整体介绍看板的原理、原则和基本实践。

1. 看板的原始含义

看板源自精益制造。尽管具体实践不同,看板开发方法和精益制造中的看板原理是一致的。从精益制造出发,可以帮助我们更好地理解看板的本质。

1.1 看板源自精益制造

精益制造是上世纪50年代起,从丰田公司实践中演化出来的,又被称为“丰田生产方式”。1990年麻省理工的James P. Womack等几位教授提炼总结了丰田的实践,出版《精益生产方式——改变世界的机器》一书,精益制造的概念开始为世人所认识和效仿,直至今日,它仍然是最先进的制造方式,是制造业共同追求的目标。

丰田生产方式之父,大野耐一说:“丰田生产方式的两大支柱是‘准时化’和‘自働化’,看板是运营这一系统的工具看板是丰田生产方式的核心工具(如图 ㈠)。

图 ㈠ 丰田屋——丰田生产方式

看板(Kanban)一词来自日文,本义是可视化卡片。如 图 ㈡,看板工具的实质是:后道工序在需要时,通过看板向前道工序发出信号——请给我需要数量的输入,前道工序只有得到看板后,才按需生产。看板信号由下游向上游传递,拉动上游的生产活动,使产品向下游流动。拉动的源头是最下游的客户价值,也就是客户订单或需求。

图 ㈡ 看板拉动制造过程

图 ㈢ 是一个典型的看板——装在塑料套里的一枚卡片,包含的信息是“什么地方,需要什么产品,多少数量”

图 ㈢ 生产中的看板

1.2 基于看板的拉动系统实现准时化

准时化又叫即时生产(Just in time - JIT)是丰田生产方式的一个支柱。看板形成拉动系统,各环节根据看板信息,仅在在需要的时间,生产需要数量的必要产品。这将带来生产库存的降低,甚至实现生产过程零库存。库存又被称为“在制品(WIP ——work in progress)”,是已经开始但没有完成的工作,它们堆积在工序间或临时仓库中。库存降低带来的直接收益是:

1) 降低成本:库存减少增加了运营现金的使用率,同时降低管理和仓储开销。

2) 缩短交付周期:消除或缩短产品在工序间的库存等待时间,缩短了从开始制造到交付的周期时间。

3) 提高制造过程的灵活性:在低库存水平下,调整生产的计划更加容易。

降低库存更重要的作用是暴露制造系统中的问题。图 ㈣中的湖水岩石是一个经典隐喻,水位代表库存多少,岩石代表问题。水位高,岩石就会被隐藏。生产系统中库存多时,设备不良、停工等待、质量不佳、瓶颈过载等问题都会被掩盖。库存降低后,这些问题都会显现出来。没有了临时库存的缓冲,设备运转不良或停工等待立即会凸显出来;没有了库存等待时间,上一环节输出的质量问题也能即时得到反馈。这就是所谓“水落石出”,暴露问题是解决问题先决条件,不断暴露和解决问题,带来生产率、质量以及灵活性的提高。

图 ㈣ 湖水岩石效应

1.3 自働化

自働化是丰田生产方式的另一支柱,它的准确含义是自动停机(Auto-No-Mation),指出现问题时(如某个环节有次品),机器能够自动感知异常,并立刻停机或停下整个生产线。丰田认为,这相当于把人的智慧赋予了机器,称其为“人字旁的自动化”,所以用“働”而非 “动”字。图(三)比较了自动化与自働化在概念和实践上的不同。

图 ㈤ 自动化和自働化

自働化把质量内建于每一个制造环节,出现异常时,杜绝继续产出不合格产品,并且不把不合格产品输入到下一环节。这就是 “内建质量”(build quality in),而不是让质量依赖于最后的检测环节。

其次,自働化带来“停止并修正”(Stop and Fix)的文化,发生异常时,立刻停止生产,分析根本原因,并加以解决,防止问题的再次发生。“停止并修正”是持续改善的基础。

2. 精益产品开发的发展

以上我们简要介绍了精益制造(丰田生产方式)的框架和其中的看板实践,它既带来直接经济结果,又带来深层次的文化和思想变革。精益是制造业的革命,是既大规模生产之后的全新范式。精益思想的影响早已超越制造领域,精益服务、精益医疗,甚至精益行政都被广泛实践,产品开发也不例外。然而,开发和制造特点不同,决定无法照搬精益制造的实践。产品开发需要从自身特点出发,发展完备的实践体系。

 

产品制造

产品开发

影响

工作对象

具体、可见的物理产品

抽象、不可见的信息

产品开发的价值、价值流动不可见,管理价值流更加困难。有必要采取适当的措施,可视化价值和价值流动。

完成单个任务的时长

固定——完成前后两个加工任务的时间相同,且可以精确预测。

不固定——每一个开发任务都是全新的,完成的时长不同,且不能完全预测。

在生产中可以追求或逼近零库存。产品开发中,由于任务时长的不确定性,零库存可能会导致开发步骤间的等待。

不同任务的延期成本

相同

差别很大

在生产中一般采取先入先出(FIFO)的队列管理方式;开发中用需要应用比先入先出更灵活的队列管理方式,以优化经济结果。

对可变性和错误的态度

制造是重复的过程,消除可变性能够提高质量。

不确定性(可变性)是产品开发价值的一部分,完全消除差异是不可能的

产品开发必须接受不确定性,并通过必要的试错来验证它们,以增加价值。可变性不能完全消除,需要在考虑开发过程的可变性。

精益产品开发概念出现于上世纪90年代,2000年后逐步成熟。这中间起到推动作用的代表人物有Mary Poppendieck,Don Reinertsen 和 David J. Anderson等。他们促进了精益思想和产品开发特征的结合。

Mary Poppendieck是精益软件开发的早期推动者,她的思想在敏捷软件开发社区被广泛引用,2003年到2010年,Mary和他的丈夫 Tom Poppendieck先后在三本书中总结了这些思想,并提出了操作建议。Don Reinertsen致力揭示产品开发流的本质,并提出相匹配的原则方法。在2010年出版的“The Principles of Product Development Flow”一书中,Don提炼了精益产品开发的175条原则,这可能是迄今为止对产品开发最本质和深入全面的阐述。但面对175条原则,从哪里开始是一个问题。

2006年在Don Reinertsen的启发和鼓励下,David J. Anderson 最早在软件开发中应用看板实践,其后不断完善,形成了看板开发方法,这是精益产品开发走向适用和普及的重要里程碑。看板的推广速度超过任何其它敏捷开发方法,Version one的调查报告显示看板是增长最快的敏捷实践,2011年使用了看板的敏捷团队占24%,2010年这个数据是18%。

2010年David在他的著作”kanban – Successful Evolutionary Change for Your Technology Business”一书中,详细介绍了看板的价值、原则和实践。书中总结了看板开发方法的五个核心实践,它们是:可视化工作流、过程规则显式化、限制在制品数量、度量和管理流动、以及协同改进。接下来,我们将以这五个实践为线索,介绍看板开发方法的概貌。

3. 看板的五个核心实践

3.1 核心实践1:可视化工作(价值)流

产品开发的加工对象——信息——是抽象和不可见的,这提高了价值流的管理难度。看板开发方法把可视化工作流作为基础实践,先让价值和价值流动具体可见,然后才是管理和优化。图 ㈥是看板开发方法中的一个典型可视化案例,被称为看板墙(Kanban wall)。

图 ㈥ 可视化工作流

图中的每个卡片代表一个价值项,如:功能需求、缺陷、技术概念验证等。它们所在的列,表示其所处的阶段。这些价值项,每经过一个阶段(图中的列)都会产生新信息,价值得以增加。例如,需求经过分析阶段,注入了新信息,价值更高。价值流是价值项从左至右的流动过程,是信息的产出过程,也是价值增加的过程。

价值流动可能会被阻碍。比如,编码因对第三方接口错误而无法进展;测试因没有设备而停滞。图中,红色卡片是对问题和阻碍因素的可视化。标识阻碍因素并推动其解决,促进价值流动。

最终限制系统端到端流量的是系统瓶颈处的流量,改善端到端的价值流,必须从解决瓶颈问题开始。发现看板墙上的瓶颈并不困难,找到最长的队列就可以了,这就和交通系统的瓶颈处,总是出现长长的等待车队是一个道理。上图中的队列出现在测试处,不难看出,测试是价值流动的瓶颈。

价值、价值流,以及问题和瓶颈的可视化,是改善价值的起始,也是其它看板实践的基础。

3.2 核心实践2:显式化流程规则

显式化流程规则,是指明确定义和沟通团队所遵循的流程规则。价值项的“流转规则”是看板开发方法中最典型流程规则,它定义了一个价值项从一个阶段进入下一阶段所必须达到的标准。图 ㈦中,给出了某团队其中一项流转规则的实例,定义了从分析阶段进入开发阶段所必须达到的条件。

“流转规则”的显式化,让质量内建于各个阶段——这与精益制造中内建质量的思想是一致的。除各个“流转规则”外,其它重要的流程规则也可以或者需要被显式化,如,团队的协作规则、优先级的定义规则等。

图 ㈦ 显程化流程规则

流程规则显式化更重要的意义在于,它是“持续改进”的出发点和结果的载体。没有显式化的规则作为依据,讨论改进就没有基础,而变得主观和随意。改进的结果通常也需要落实到显式的流程规则当中,让改进稳步进行,避免低效的反复。显式化规则不是为了限定团队的工作方式,而是为了帮助团队更好的改进。这就像,丰田的生产现场必须有明确操作规程,但如果这个操作过程长时间没有变化也同样是一个问题,因为,持续改进是精益思想的核心之一。

3.3 核心实践3:限制在制品数量

限制在制品数量是看板开发方法的核心机制。如 图 ㈧所示,列标题右面的数字标识了该阶段允许的在制品的最大数目(进行中和完成的价值项的和)。在制品数目小于这个数字时,才可以从前一阶段拉入新的工作。图中,分析阶段的在制品限制数目是3,而实际在制品数目是2,可以拉入新的工作。测试阶段的在制品数是3,达到了上限,就不允许拉入新工作。

图 ㈧ 限制在制品数目

限制在制品数量形成一个与精益制造类似的拉动机制。一个环节有空余的能力(在制品数目未达上限)时,从上游拉入新的工作,拉动的源头是最下游的交付或客户需求。与产品制造类似,通过拉动系统可以:

1) 加速价值流动:限制在制品数量,减少了价值项在阶段间的排队等待,缩短了价值从进入系统到交付的时间,加速了端到端的价值流动。

2) 暴露问题:限制在制品数量,让湖水岩石效应产生作用。它让过去被隐藏的问题,如团队协作不良、需求定义错误、开发环境低效、资源分配不均衡等得以显现。

许多号称使用“看板”的团队,并没有限制在制品数量,他们当然也不会得到上述收益。精益制造通过看板向上游传信号,拉动生产。而看板开发方法通过限制在制品数量形成拉动系统,缺乏这一核心机制就不成其为看板,对此,Corey Ladas 这样描述 “复印的美元不再具备货币的内涵,因此不再是钱;同样,缺少在制品数量限制的看板墙,也不能叫看板”。在制品数量的限制值及其演化,将在以后的文章中讨论。

3.4 核心实践4:度量和管理流动

快速、顺畅的价值流动是看板开发方法的目标。快速流动带来快速的价值产出和快速反馈,它对业务成功至关重要;顺畅流动,意味着稳定和可预测的价值交付能力,这与流动的绝对速度同等重要。

度量为改善价值流动提供方向参考,同时为改善的结果提供反馈。看板开发方法没有定义特定的度量方法,累积流量图是实际应用较为普遍的一种。图 ㈨是一个典型的累积流量图,左面的斜线是累积已经开始的价值项(如用户需求)数目,右面斜线是累积完成价值项的数目。两条斜线的垂直距离表示某个时刻已经开始但还没有完成的价值项数目,也就是在制品的总计数量。两条斜线的水平间距表示价值项从开始到完成的周期时间,也就是从概念到交付的响应时间,它是价值流动效率的一个重要衡量。斜线的斜率反应的是价值交付的速率,也就是每周可以交付的价值项数量。

图 ㈨ 流量累积图

累积流量是一个综合的价值流度量方法,可以通过它得到不同维度的信息。例如,我们设想限制在制品的数目,可以缩短周期时间、而对交付速率影响有限。但实际效果如何还要通过事实来检验,通过实验和度量,图中的数据基本验证了这一假设,让改进更有方向,结果更可衡量。同样的数据有不同的呈现方式,图 ㈩基于相同的数据,它突出了在制品数目和周期时间的变化趋势,以及两者的关系。从图中可以看出,周期时间的降低略滞后于在制品数量的降低,这符合精益理论,因为只有在积累的队列被处理完后,对交付周期的改进才能够显现出来。而图 11反应的是系统流量(每周交付价值的数量)的变化趋势,为改进提供了信心。

图 ㈩ 在制品数目和周期时间

图 11 周流量图

以上只是一个度量实例。度量不是目的,而是管理和优化价值流的手段。对于特定的组织,度量什么应该由目标和现状决定。

3.5 核心实践5:协同改进(Improve Collaboratively)

应用可视化、限制在制品数量、以及价值流度量,能够暴露产品开发中的问题和瓶颈。但发现问题还不够,重要的是如何去解决它们,对此看板开发方法给出了两个建议——团队协作和应用科学方法和模型。限制在制品数目本身就能够激发协作,例如在前面图 ㈧的看板墙,可能会出现以下的顺序场景

1) 测试遇到问题(如输入质量太差)而被阻塞 ,在制品数量达到上限

2) 因在制品数量达到上限,根据规则,测试不能从上游(实现)拉入更多的工作

3) 实现阶段已完成的工作无法进入下游测试环节,实现阶段的在制品数量很快也达到上限

4) 实现要想开始更多的工作,就必须关注下游的问题,并做出反应,如提高本环节的输出质量,或者是给予帮助

5) 实现和测试的协作使价值流动更加顺畅

图 12 协同改进

图 12是”kanban – Successful Evolutionary Change for Your Technology Business”一书的封面插图,它反映了发生在看板墙前面的协同改进。看板开发方法的基本假设是:产品开发的目标不是单个环节效率的最大化,而是端到端价值流的提升。看板通过拉动机制暴露了限制价值流动的瓶颈,并激发团队协作,改善价值流动。

解决瓶颈问题的方案可能在瓶颈处,如临时加班、分配更多资源、或相邻环节的支持等。但很多时候解决瓶颈问题的方案在别处,例如提高瓶颈之前环节的输出质量,调整职责分配,甚至是重新设计工作流。

对于偶然出现的问题,只需要临时性解决方案。如突发性高负荷,可以通过暂时的相互支持解决。而对于系统性问题,如持续的负荷不均衡,则需要长期的方案和更加系统和科学的模型指导,如系统思考、精益思想、排队理论等,这些模型本身不属于看板方法的一部分,但它们让长期的改进有章可循,以后的文章,我将中深入地探讨其中的一些模型。

4. 总结:看板是变革方法

David J. Anderson这样定义看板开发方法

“看板定义了我增量、渐进地改变技术开发和组织运营的方法。它的核心机制是限制在制品数量的拉动系统,通过它暴露系统运作(或流程)的问题,并激发协作以改进系统。”

这当中的核心是,看板并不是一个开发框架或流程,而是引领变革的方法。每个组织有自己特点,所面对的市场,使用的技术不同,经历和所处的阶段不同,他们值得也应该拥有适合自身特点的方法流程。

看板的实施正是从组织流程现状出发,首先可视化实际工作流并显式化流程;在此基础上,限制在制品数量形成拉动系统以暴露系统问题和瓶颈,度量价值流动以发现改进机会;并通过团队的协作,不断改进和演化出合适的流程、方法,实现一个高效、顺畅的产品开发价值流。

适应组织的具体情况,和发现合适的变革路径,这两点是敏捷实施的最大困难,看板给出了被证明可行的方案。这可能是看板能够在国外社区迅速推广并成功运用的原因,而在国内,看板这方面的价值还远未被认识和发掘。这篇文章之后,我们还会从不同的方面,更加深入地介绍精益产品开发。它们是:

- 价值篇:解析产品开发中的价值和价值发现过程

- 价值流篇:解析产品开发中流动的本质,和价值流的管理

- 可视化篇:探讨面向价值和价值流的整体可视化方案

- 看板实施篇:通过案例介绍看板的实施步骤和实践细节

- 变革篇:从组织变革的视角讨论精益的实施、看板应用和持续改进

- ……


感谢张凯峰对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

非常赞。 by xn rhinoceros

非常赞。

理论堆砌 制造业 by Cao Tim

感觉就是各种理论堆砌 还是个人理解能力不足 看不到实践意义 把软件业改造成制造业一直是大部分软件公司老板的梦想

Re: 理论堆砌 制造业 by He Mian

我是作者,首先谢谢你的反馈。这篇文章的确以理论为主,但都是经过业界的实践检验的,文章的写作业是基于本人的实际应用。 后面几篇文章会逐渐开始向实践切入。计划在最后两篇分享完整的企业实施案例。

精益产品开发最近几年在实践应用上突破很大,但在国内的认识和实践都很不够,其价值也被远远低估。文章的目的是从理论到实践提供一个系统的介绍,希望先能把理论铺垫的足够扎实,再更多的分享实践。预计这个系列应该在5-8篇左右,1个月左右一篇。

Re: 理论堆砌 制造业 by Cao Tim

感谢作者及时回复 因个人从事专业及所处环境 眼界局限 对具体IT技术以外的知识确实理解不足 有制造业管理背景的应该会更好理解 期待作者的后续文章

受益匪浅 by hu rock

期待作者后续文章。能否推荐两本相关的书籍?

期待更多的中文书籍 by 廖 师虎

谁把文章提到的几本书翻译了

深入浅出 by qin qubo

非常完整

Re: 受益匪浅 by He Mian

已经翻译成中文的我推荐两本
1.《精益开发实战》,这本书很简洁实用,从头至尾围绕一个成功的案例展开,读起来很爽,也提供了大量的实践操作方法。
2.《看板》,这本书据说已经翻译好了,六月份左右出版,值得期待。这本是看板最权威的书,全面讲述了看板的理论和实践。
另外: Mary Poppendieck 有三本关于精益软件开发的书,第一和第三本都有中文,Mary的书是很好、很全面,问题是多停留在概念层面,没有实践的人理解起来有问题。

太好了 by 廖 师虎

找到《精益软件开发管理之道》了,期待《看板》。

知识,是相通的。 by he ethan

很多知识都是相同的,这里的思想与PM中的挣值管理很类似。

Re: 知识,是相通的。 by He Mian

挣值管理的基本思路是,比较计划和执行,按完成计划的百分比来计算工作进度(挣值)。这在工程项目中是可行的。比如装修房子,假设计划中刷墙和铺地板分别占50%的工作量,如果某个时刻,地板铺完了,墙刷了一半,这时挣值(工程进度)是75%。

把挣值方法搬到产品开发中就会遇到问题,比如计划开发和测试各占50%工作,开发完成了,测试完成50%,按挣值管理计算,进度是75%,而事实上很可能最后的50%的测试会占用掉90%的时间。更有甚者交付的东西如果不是客户要的,即使挣值是100%也没有意义。

在我看来,在软件项目中照搬工程项目中的挣值方法,然后去监测和控制计划于执行的差别,是传统软件产品项目管理的一个比较大的问题。例如,1)它鼓励按计划执行,一定程度上不支持“适应变化”;2)它鼓励最快的挣值,而不支持把风险和问题前移。而上面两点对产品开发的成功时十分关键的。

精益产品开发中更加强调的是,真实的价值交付和价值反馈,而不是与计划相比执行的百分比。这与挣值是不同的。

分析精准到位 by 邓 国齐

结合工程思想,又避免工程统一计划理论带来弊端。循序渐进式的改进最终团队与产品质量。期待后文

不够通俗 by shi yong

写这种文章,必须用示例说明,导致软件开发浪费的结构化问题是什么,原因到底是什么。

比如丰田模式的单件流原则,能将10台电脑的制造时间从30分钟,降低到12分钟。

用图形就能清晰地说明这个问题,让任何会算数的人都能直观的明白原理。

然而你的文章,没有这么做,所以读者就会有”生搬硬套“的质疑。

Re: 理论堆砌 制造业 by monser corp

很好的文章。看板的一个重要的作用就是持续交付。这与软件业的发展方向是非常吻合的。采用看板以后,感觉scrum的流程就类似瀑布开发了。

真棒!!看了以后才知道原来自己干了的看板,意义远不止原理理解的那样简单。而且也可以学着分析堆积图了 by seer seer

真棒!!看了以后才知道原来自己干了的看板,意义远不止原理理解的那样简单。而且也可以学着分析堆积图了

精益的思想得却值得深入挖掘 by 田 伟

受益了...
Thank

很好的文章 by Cui Liang

比《看板方法》那个书看起来更流畅,感谢

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

17 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT