价值流图是一种用于分析流程、识别浪费区域和优化工作流的精益技术。
在精益制造中,价值流图着眼于将材料转化为产品的所有步骤,包括物流、仓储和装配线,并寻求效率提升。
此过程涉及绘制端到端流程图,识别不同类型的浪费,如生产过剩、等待时间、运动和缺陷,随后制定和实施计划以尽可能减少浪费。
精益软件运动展示了精益思想和技术(包括价值流图)如何应用于软件开发生命周期,使其更加高效并改进交付给用户的内容。
精益理念是对敏捷和 DevOps 原则的补充,该原则突出强调具有持续反馈循环的迭代周期和构建质量以加快价值交付。
无论您是已经实施还是即将实施 CI/CD 管道,创建软件开发过程的价值流图都是一项有意义的实践。
从想法到设计、开发和发布,绘制涉及的所有步骤、人员和工具,可视化整个产品生命周期。
然后,您可以使用此图促进开发和运营团队之间的讨论,建立对各步骤所增加价值以及各参与者关注和动机的共同理解。
勾勒出流程后,即可开始识别浪费实例:也就是不会为用户增加价值的活动(直接以所需功能的形式,或间接形式,例如通过保持产品稳定)。
精益制造中确定的浪费类型已适用于软件开发,包括:
就像制造业的生产过剩一样,创建不使用的功能是一种浪费。 以频繁交付的小增量工作、采取最小可行产品方法、持续收集和处理反馈,这些都有助于理解您正在构建的内容,并避免将时间和精力浪费在不被使用的功能上。
不断在不同任务之间切换是一种浪费,这会阻止您保持专注。 每次在任务中被打断,您都必须先花时间回到正确的状态才能重拾效率。 无需手动输入触发各测试阶段的全自动管道有助于避免任务切换。 同样,谨慎使用警报,仅在必要时(例如生产失败而不是单元测试失败)才被中断,也有助于避免不必要的任务切换。
最明显的浪费形式之一,工作流中任何阶段的延迟最终都会减缓上市进度。 减少个人之间的交接,尽可能提高构建、测试、部署和提供反馈的自动化程度,将减少等待时间。
当更简单的形式可以达到同样的效果时,创建过于复杂的流程和程序将需要更多的时间和资源来实施和维护。 这方面的示例包括从过于复杂的部署到暂存环境再到每次发布前的苛刻风险评估。 了解步骤背后的动机将帮助您确定是否一个更简单的过程就已足够。
缺陷会导致额外工作量,一旦发现就需要时间修正,如果投入生产则会对客户体验产生负面影响。 自动测试的小增量工作是打造高质量产品的可行方法,有助于及早发现问题并更快确定问题的原因。 在生产中发现缺陷时,有能力快速发布修正可以最大限度地减少对用户的影响。
在制造业背景下被称为库存或库存过多,部分完成的工作不会为用户带来价值,同时会减慢其他功能和改进的交付速度。 通常是由于开发过早,准备不充分,最终导致延迟。 同时,用户的需求得到更好的理解,随后进行返工以适应新的需求。
当工作必须移交给另一个团队完成下一阶段时,这会增加延迟(因为下一个团队可能没有准备好立即开始工作)并且需要通过会议或书面文件转移知识。 通常,在此过程中会丢失一些知识,需要重新找回。 这些都会浪费时间和精力,拖慢进程。 尽量与拥有整个生命周期所有权的跨职能团队减少交接有助于减少此类浪费。
确定流程中的浪费后,就可以着手解决了。
为了与精益、DevOps 和敏捷原则保持一致,应逐步实施更改、监控更改的影响、持续收集反馈并及时调整路线。
最后,不要让价值流图本身成为一种浪费。 虽然可能需要花费大量时间学习正确的符号并将发现转移到绘图工具中创建数字资产,但您通常可以从一个简单的白板会话开始,初步了解您能从价值流图实践中获得多少收益。