VSM(Value Stream Mapping)起源于传统制造业的精益思想,用于分析和管理一个产品交付给用户所经历的业务流、信息流,以及各个阶段的移交过程。在传统制造业中,需求提出后,怎么进一步加工原材料,进行层层的质量检查,最终将产品交付给用户的过程,通过观察完整流程中各个环节的流动效率和交付质量,识别不合理的、低效率的环节,进行优化,从而实现整体效率的提升。
VSM的目的:辨识和减少生产过程中的浪费。
现在的软件开发由于部门职责的划分,只关注自己眼前的事情,无法高屋建瓴,识别整个流程软件交付的方方面面。所以,我们通过VSM对软件交付过程进行建模,使整个过程可视化,从而识别出交付瓶颈和各个环节之间的依赖关系。
DevOps通用‘三步法’:
- 流动。通过工作可视化,注入一系列的工程实践,从而加速从开发到运营的流动过程,实现低风险发布。
- 反馈。通过注入流动各个过程的反馈能力,使缺陷在第一时间被发现,用户和运营数据第一时间展示,从而提升组织的响应能力。
- 持续学习和试验。没有任何文化和流程是天生完美的,通过团队激励学习分享,将持续改进注入日常工作,使组织不断进步。
VSM的关键要素:
- 前置时间。一般建议采用需求前置时间和开发前置时间两个指标进行衡量。
需求前置时间:从需求提出(创建任务),到完成开发、测试、上线,最终验收通过的时间周期,考查的是团队整体的交付能力,也是用户核心感知的周期
开发前置时间:从需求开始开发(进入开发中状态),到完成开发、测试、上线,最终验收通过的时间周期,考查的是团队的开发能力和工程能力
- 增值活动时间和不增值活动时间
- 完成度和准确度
VSM的关键要素的统计以及确认过程中,因为参与者(测试、开发、运营)实施的不确定性,会导致结果存在很大变数,通过流程和平台的结合,来驱动流程的自动化流转,这才是 DevOps 的正确姿势。
VSM的开展方式:
- 企业内部价值流程梳理的工作坊或者会议
- 内部人员走访
在VSM开展过程中,为了有效沟通,可以建立问题列表。而通过沟通,对整个软件交付过程有一个全面的认识,并根据交付中的环节、上下游关系、处理时长、识别出来的等待浪费时长等,按照 VSM 模型图画出当前部门的价值流交付图,以及各个阶段的典型工具。
VSM的价值:
- 关注全貌
- 识别问题
- 促进沟通
- 驱动度量
- 价值展现
小结:
DevOps借助VSM价值流入手,通过VSM了解软件开发各部门对应的业务,使整个交付过程可视化,从而识别出交付的瓶颈和各个环节的依赖关系。