优化价值流动的过程,就是在提升研发效能|ONES Talk

2024-01-20 13:10

本文主要是介绍优化价值流动的过程,就是在提升研发效能|ONES Talk,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

5864fd49c7dccb0ece516855914b57a6.gif

8月26日,2022 China DevOpsDays · 北京站在线上举行,DevOpsDays 是风靡全球的 DevOps 顶级峰会,聚焦自动化、测试、安全、持续交付、持续集成等多领域的最新动态与最佳实践。

作为企业级研发管理工具的领军者,ONES 受邀出席本次大会。ONES 研发总监陈亮宇发表了题为《渐进式变革:应对价值流中的瓶颈效应》的演讲,分享 ONES 在 DevOps 实践中的洞见及思考。

自创立之初,ONES 就积极拥抱 DevOps 文化,据不完全统计,前30号员工有一半都是 DevOps Master。在规模化发展和服务客户的过程中,ONES 仍然在持续积累 DevOps 实践经验。

以下是陈亮宇演讲的精华内容。

a2fc4fd3db4db4b4cdba00979c4804e0.png

重新认识价值流

在落地 DevOps 实践的过程中,我们经常会听到大家聊「价值」,但我们真的理解「价值」的含义吗?「价值流」表达的到底是什么?

首先,「价值」和「价值流」并不是 DevOps 首创,如果追根溯源,我们会发现 DevOps、敏捷、看板等在 IT 领域广泛传播的思想,都来自于传统制造业中的精益思想。精益思想的五大原则也被反复修改和验证,最终重新表达,使其更适合应用在 IT 领域。

8e39ceee73f24537ae18b4006a1e7d4a.png

08b487faef9ddd077dc92dda915c9cef.png

精益思想的第一步就是明确什么是企业的核心价值。精益思想里提到,价值体现在具有特定价格、能在特定时间内满足客户需求的产品上。这简单的一句话里有三个很关键的要素。

  • 价值是由客户决定的,了解客户需求是生产者的基本要求,能满足客户需求的产品才具有价值。因此,我们需要明确客户是谁,他们的需求是什么?

  • 价值是有时间要求的,客户的需求不会一成不变,时间点、时长都会影响客户的需求,比如,为双十一准备的系统,一旦未能在双十一如期交付,该系统就失去了它本身的价值。

  • 价值是有特定价格的,任何产品都需要明确的价格,只有当客户愿意以产品价格进行购买时,产品的价值才能被体现。另外,不存在完全免费的产品,它的价值只是被更复杂的商业体系给隐藏了。当我们是生产者的时候,要非常清楚地知道每一件产品的价格。


定义价值是需要企业不断审视的活动,它能帮我们快速识别:哪些活动是不产生价值的浪费行为,哪些才是我们真正需要关注的价值活动。

0870b96d99041fff59a68433209e926a.png

当我们达成了价值共识后,就需要了解价值从需求录入到交付上线的全流程,也就是我们前面提到的价值流。怎么理解流动的概念呢?

  • 价值流的流向是从左到右的、端到端的完整流程。如价值定义中所说,只有产品真正交付到客户手中,并且被客户认可其价值才被体现,脱离最终交付去聊价值流中的任何单一环节都是片面的。

  • 价值是需要连续不断地流动起来的。传统的生产中,流程永远是批量完成一个环节的工作之后,再流入下一个环节。这里面有两个问题。第一个是,会产生大量的等待环节,资源没有得到最大化的利用。第二个问题是,客户会为流程中的等待时间去买单。只有让生产节奏与客户需求的节拍对应起来,并且让价值不断流动,才能让企业生产力最大化输出。

  • 价值是需要被客户拉动的。我们常说,做对的事情比做对事情更重要,我们试想一下,如果生产一个对于客户来说毫无用处的产品,所耗费的成本更大。

937224aa7d7530fefae6916547b2f93e.png

在 IT 领域,价值流动的过程就是产品研发的流程,优化价值流,就是在提升企业的研发效能。那我们应该怎么做呢?

通过价值流图和价值流分析,我们能轻易地发现价值流动过程中存在的浪费,消除浪费是优化价值流的重要手段。在研发管理领域中,常见的浪费分为三种。

(1)事务性浪费

什么是事务性浪费?我举个简单的例子。比如说,我们需要刷墙,刷墙前,我们需要购买刷子、油漆、工装等物品,并了解刷墙的具体步骤和方法,这些计划和准备动作就是前置事务性成本;当刷完墙后,我们需要收拾,打扫,甚至发个朋友圈,展示自己又学会了一门新技能,这些在完成之后的总结性和收尾性工作,称为后置事务性成本。

这些工作并不会真正产生价值,但是必不可少的,我们需要审核这些投入是否过多,防止浪费。

(2)协调性浪费

那什么是协调性浪费呢?还是以刷墙为例,这次不是一个人刷墙,而是一家人一起刷。当涉及团队协作时,必然会在沟通协调上花时间。比如,刷墙前要分工,保证大家都理解了各自的工作;刷墙过程中,要沟通各自负责事项的进度,这些沟通成本都属于协调性成本。同样的,协调性成本也不会真正产生价值,我们需要谨防它变成浪费。

有个简单的办法能帮大家分析,什么活动能真正产生价值。我们可以反问自己:「如果这项活动是产生价值的,那我们原则上应该希望它多做。所以,我们真的希望这个活动多做吗?」比如迭代早会,早会是很重要的,但如果一个早上要开两次早会,相信大部分人都不会愿意,因此,我们可以断定早会是一个协调性成本。

(3)返工型浪费

返工意味着浪费。任何角色,任何环节都需要关注自己的返工情况。返工不仅仅是缺陷,像产品设计的缺陷、性能问题、安全问题,都会导致返工,最终产生返工成本,而大部分的返工都是浪费。

如果按照这三种类型的浪费去分析我们的价值流中的活动,我们可能会发现,浪费无处不在,那么,我们应该如何通过改革来优化价值流,消除浪费,从而提升研发效能呢?

572a5c71ae18afe12d0782a7b2d10c0c.png

如何优化价值流?

5cba1c5c0219bd1b1916deab0231187a.png

我们先看一个很有意思的理论:萨提亚模式,它原本是用来分析人在遇到变故时候的心理反应,我们可以将萨提亚模式应用到企业变革中去。

按照萨提亚模式的描述,企业变革分为5个阶段:

  • 第一个阶段:旧常态,指的是未遇到变故时的状态。

  • 第二个阶段:引入变革,指的是当人们发现有新的外来因素试图改变现状时,有人会观望,有人会反对,有人会拥抱新的变化,而持反对意见的人会形成一股阻力。

  • 第三个阶段:混乱阶段,在这个阶段,有些人可能会担心变革对他们造成影响,有人可能还在消化变革带来的新信息,有些人可能在尝试融入到变革后的情况中去。总之,团队处于一个相对混乱的状态,其产能会大幅下滑。

  • 第四个阶段:接受变革,大家享受到了变革带来的好处,此时大家会放大变革的正面影响,团队效能持续提升。

  • 第五个阶段:新常态,当变革的动作接近尾声,大家已经完全接受了变革,组织会重新进入新的稳定期。

通过下面的图,我们可以看到,混乱阶段是变革引入后效能下降的阶段,遇到的变革越大,混乱阶段越长,效能的下降幅度也就越大。

dac060a3018dd4bab213b8c428fee48b.png

为什么一个心理学模式可以用于企业的组织变革?其根本原因是,组织是由人构成的,变革最大的阻力也是由人的主观心理反应造成的。我们需要以渐进式的变革方法,来减少人带来的阻力,防止企业效能长时间处在混乱的时期。

bd46928cd58662226ca40dd9eb77c937.png

回到问题的根本,我们需要优化价值流。价值流中存在很多浪费,我们需要找到最先需要解决的浪费。

实际业务中,瓶颈节点的节拍决定了整个流动过程的速率。我们需要以渐进式的变革,不断地识别并解决瓶颈处的问题。

(1)变革开始前:工作可视化

看不到的流程是无法分析和查找的,最终找到的也只是主观的判断,无法在团队之间达成共识。因此,变革之前,我们需要将万物可视化。我们可以将传统制造业的生产流水线和看板改造应用到研发管理领域。 

  • 明确订单的开始点和完成点。订单开始代表客户提出了需求,订单完成代表了将需求交付给了客户。这两个环节均依赖客户,不受我们控制。看板是一个受限的系统。我们需要将这两个环节可视化出来,并且明确说明,在这两个环节之间,就是我们价值流转的看板。 

  • 分析客户需求。按照前面的价值定义的方法,我们需要知道,客户的原始需求是什么样的?有哪些类型?到达时间是什么?时间节拍怎么样?客户对于这些需求的交付周期如何?当我们了解完客户的需求后,需要明确我们提供的服务有哪些?紧急服务?固定交付时间的服务?还是常规服务?客户对于不同工作项类型会需要什么样的服务? 

  • 了解团队的生产能力,并且根据生产能力和需求节拍制定在制品限制。如同价值流分析一样,在可视化过程中,我们需要反复核对是否已经将万物可视化,如果还有隐含的工作,需要继续将其补齐。在这个过程中,可视化的颗粒度可以进行取舍。

3855e4462a4ad2561b5f00b71c8d7a8b.png

用 ONES 快速构建可视化看板

(2)进行渐进式的变革

构造完可视化看板后,我们就可以开始渐进式的变革了。如前面提到的,渐进式变革的根本方式是持续不断地识别并解决瓶颈,我们可以将渐进式变革分为五个步骤:

2109ef6ac7b15c12a3bc5d55b7e41f78.png

第一步:识别瓶颈

当完成了可视化后,这件事就变得非常简单。瓶颈的特征是,上游堆积,下游饥饿。如下图所示,工作堆积在研发完成的区域,但测试完成的区域却是空的,所以,我们可以很清楚地知道,这张图里,测试是瓶颈资源。

4ec712ebd9d64de8198749471fbeca2a.png

用 ONES 看板快速识别流水线瓶颈

第二步:用尽瓶颈

回顾一下前面提到的浪费类型,我们现在可以更加专注地分析,瓶颈处资源的事务性成本有哪些?协调性成本有哪些?返工成本有哪些?有哪些成本我们没有控制好,导致其转变成了浪费?在返工上,我们有什么优化手段? 

通过审视这些浪费,我们可以保证瓶颈处的资源最大限度地投入到了价值生产的活动中去。

第三步:配合瓶颈

当我们用尽瓶颈资源后,还需要调整价值流中其他环节的策略,来真正保证瓶颈环节的最大化利用。

减少上游的工作,瓶颈处的工作流速决定了最终的产出速度。价值需要流到客户手中,才能真正被体现出来。所以,上游的工作内容在瓶颈处堆积,本身就是一个浪费。

我们应该保证上游的生产节拍与瓶颈处最大化的生产节拍保持一致。我们关注的是价值的流速和生产的可预测性,而非资源最大化利用。在上游输入减少后,上游可以开展一些真正对后续生产有提升的优化工作。

当然,总会存在一些变异性导致瓶颈资源出现短暂的限制。例如,上游的关键人员家中临时有事请假了,上游给的在制品变少了,下游的部署部门遇到机房故障,导致无法正常消耗瓶颈完成的在制品。如果上下游经常产生变异性,就可以设置一些缓冲区来保障瓶颈资源最大化利用,这可能会导致流速变慢,但它却更稳定。

第四步:突破瓶颈


当瓶颈疏通后,瓶颈处的流速依然决定了流水线的生产力,这时,我们可以进一步突破瓶颈。突破的手段比较简单粗暴:

  • 有节奏地招人:首先我们要知道的是,招人是会导致流速变缓的,我们需要评估招人的节奏和影响,来保证招人的影响降低最低。

  • 自动化:这也是 DevOps 里最最重要的话题,把人能完成的机械工作交给自动化来处理,是 IT 领域突破瓶颈资源的终极手段。

第五步:循环改进

当我们突破了瓶颈资源,我们会很自然而然地发现下一个瓶颈。但经过上面的变革,效果如何,又该如何度量呢?我们完全可以使用价值流最经典的指标来衡量变革的情况,如前置时间、周期时间、流动时间、%C/A 率等等。

但我们怎么分析呢?如下面两张图,左边是我们某次优化前的前置时间分布图,右边是优化后的,变好了还是变坏了?没有固定的答案,大家需要找到适合自己企业的分析方法。

08f3d2d28430ddc8dbc8fa64f9352e8f.png

几个关于度量的 Tips:

  • 可预测性有时比单纯的前置时间变短要好。打破部门墙的不是高层的压力,而是部门间彼此的支持和信任。可预测性是信任的基本条件。

  • 全局胜利比局部胜利更重要。很多时候,我们特别喜欢在某一个环节上进行度量。举个例子,ONES 曾经有一次测试部门效率优化,给出了一个非常漂亮的答卷,测试时间大量缩减。但放到全局分析后,才发现测试部门的效率虽然缩减了,但是研发和产品的效率却下降了。最终我们发现,整体的前置时间更长了,这无疑是一次令人沮丧的、失败的优化。度量的目标是优化,而非考核。如果度量的结果直接和考核结果挂钩,它或许对全体流程有优化,但优化的力度不会太大。

  • 度量是为了帮助我们了解现在,确定未来的优化目标,并指引我们找到下一个优化点的。如果真需要数据考核,可以更多地关注数据的提升,而非单纯的数据量。

a65f6f3d63f7f9ef23aaca3800fe6055.png

思考和总结

我们今天反复聊价值流和精益,是因为 DevOps 源自精益,并在精益上做了进一步优化。我们前面提到,优化价值流就是在提升研发效能,因此,优化价值流是企业实践 DevOps 中必不可少的步骤。

渐进式的优化方式,能够以最小的阻力来启动异常变革,因此它也是最容易落地和推进的优化手段。

以上就是 ONES 研发总监陈亮宇的演讲精华,想获取完整演讲 PPT 及演讲视频,扫码联系 ONES 产品顾问,回复「DOD 大会」领取。

cc01904e44c27876e7e4d754dba652a0.png

f3db705c73d7701bf861ecd50f0956ba.png

93377f7a78074986794fdf916fcf7923.png

1c06953a5bb4992a6d969f9a30ff54bd.png

dbf2a02e889d7ac8514c0831112cced9.png

d236941d5a3526f8d7b2746628b941da.png

aa6c03873ef6fa0eb3db8cf9cfbac289.gif

这篇关于优化价值流动的过程,就是在提升研发效能|ONES Talk的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/626111

相关文章

Vue3 的 shallowRef 和 shallowReactive:优化性能

大家对 Vue3 的 ref 和 reactive 都很熟悉,那么对 shallowRef 和 shallowReactive 是否了解呢? 在编程和数据结构中,“shallow”(浅层)通常指对数据结构的最外层进行操作,而不递归地处理其内部或嵌套的数据。这种处理方式关注的是数据结构的第一层属性或元素,而忽略更深层次的嵌套内容。 1. 浅层与深层的对比 1.1 浅层(Shallow) 定义

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

HDFS—存储优化(纠删码)

纠删码原理 HDFS 默认情况下,一个文件有3个副本,这样提高了数据的可靠性,但也带来了2倍的冗余开销。 Hadoop3.x 引入了纠删码,采用计算的方式,可以节省约50%左右的存储空间。 此种方式节约了空间,但是会增加 cpu 的计算。 纠删码策略是给具体一个路径设置。所有往此路径下存储的文件,都会执行此策略。 默认只开启对 RS-6-3-1024k

作业提交过程之HDFSMapReduce

作业提交全过程详解 (1)作业提交 第1步:Client调用job.waitForCompletion方法,向整个集群提交MapReduce作业。 第2步:Client向RM申请一个作业id。 第3步:RM给Client返回该job资源的提交路径和作业id。 第4步:Client提交jar包、切片信息和配置文件到指定的资源提交路径。 第5步:Client提交完资源后,向RM申请运行MrAp

跨国公司撤出在华研发中心的启示:中国IT产业的挑战与机遇

近日,IBM中国宣布撤出在华的两大研发中心,这一决定在IT行业引发了广泛的讨论和关注。跨国公司在华研发中心的撤出,不仅对众多IT从业者的职业发展带来了直接的冲击,也引发了人们对全球化背景下中国IT产业竞争力和未来发展方向的深思。面对这一突如其来的变化,我们应如何看待跨国公司的决策?中国IT人才又该如何应对?中国IT产业将何去何从?本文将围绕这些问题展开探讨。 跨国公司撤出的背景与

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传

2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题

题库来源:安全生产模拟考试一点通公众号小程序 2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题是由安全生产模拟考试一点通提供,流动式起重机司机证模拟考试题库是根据流动式起重机司机最新版教材,流动式起重机司机大纲整理而成(含2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题参考答案和部分工种参考解析),掌握本资料和学校方法,考试容易。流动式起重机司机考试技

MySQL高性能优化规范

前言:      笔者最近上班途中突然想丰富下自己的数据库优化技能。于是在查阅了多篇文章后,总结出了这篇! 数据库命令规范 所有数据库对象名称必须使用小写字母并用下划线分割 所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来) 数据库对象的命名要能做到见名识意,并且最后不要超过32个字符 临时库表必须以tmp_为前缀并以日期为后缀,备份

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss