价值流图是精益制造中用于分析物流和信息流的方法,为客户提供产品或服务时这是必须的。丰田成功地在制造业中实现了这个过程,同时价值流图也已经映射到软件开发中。软件开发与制造业使用的是相同方法吗?
Alan Cyment 提到,他对价值流图在软件开发中的应用感到失望。他觉得价值流图是一种矛盾的比喻。Alan 认为:
是的,过程优化是必须的。没错,试图找出浪费并消除它是很好的做法。是的,你可以写下你所做的事情,尤其是当这能帮助你找到无用步骤时。但是,让 Scrum 团队描述他们每次开发软件时遵守的过程,简直是无稽之谈。这里想要阐述观点是,我们会在软件开发的过程中调整我们的过程。
Alan 提到,尽管这个过程对于制造业非常有用,但它没法以相同的方式应用在软件业中。
改善协会(Kaizen Institute)认为,在具有重复性活动的地方,你就可以识别出真正的价值流。他们提到了一些场景,比如:信件在邮局中传送、钢块被制作成冰箱外壳、患者入住医院、保单进入审批程序,或者采购订单进入申请程序。他们认为价值流图无法也不应该应用在像产品开发这样的过程中。
用于制定规格 / 设计的步骤很少会是顺序的。比如步骤 1、步骤 2、步骤 1,回到步骤 3、步骤 1……它们之间没有很强的依赖——完成一个步骤后就开始下一个步骤。例如,在开始你的设计工作前,你可能并不了解客户的所有需求——这是一个非常迭代的过程。产出的通常是知识。在产品开发的过程中,试图使用传统的价值流图映射所有的细微差异会让你发疯的,而且你永远不会得到正确的结果。
Jurgen Appelo 更是认为,价值流可能完全就是一个有缺陷的隐喻。Jurgen 觉得,价值流认为从 A 到 B 的价值流是单向的。但是,现实生活中很少会有这种情况。他认为,当一个人为其他人创造价值时,价值流不只一条,这是不同的利益相关者在一起协作为他们自己创造价值,因此它是一个价值网。
把业务描述成围绕价值流的工厂是不太恰当的。没有一种业务的“价值流”是朝一个方向流动的。价值流这个隐喻具有误导性。业务,是所有利益相关者彼此创造价值的过程。所有的利益相关者(股东、雇员、客户、供应商以及公众)都试图通过互相协作为他们自己创造价值。你的业务不是一个价值流,它是一个价值网。
Mary 和 Tom Poppendieck 极力推荐价值流图,他们建议大家使用价值流图来找出过程中的浪费。虽然有些团队利用价值流的概念取得过成功,但是,仍然有人质疑是否能将它应用到软件开发中,因为根据敏捷的定义,敏捷拥抱变化,根据我们接收到的反馈以及敏捷创造的价值网,过程本身会有所变化。
如同 Tobias Mayer 建议的那样:
如果我们不断地以制造业中的隐喻来思考,那么我们就会把思路绑定到制造业的实践上。我们要以不同的方式去思考。
查看英文原文: Does Value Stream Mapping Work for Software Development?
评论