DevOps赋能:优化业务价值流的实战策略与路径(上)
上篇:价值流引领与可视化体系构建
一、前言
在快速迭代的软件项目和产品开发生态中,我们始终围绕两个核心目标:一是确保每一项工作都能为客户创造实际价值,这是产品团队的核心使命;二是确保这些有价值的工作能够高效、顺畅地执行,而价值流理念正是实现这一目标的金钥匙。价值流,作为DevOps及精益生产的核心理念,它引导我们从客户需求和价值创造的角度出发,全面审视并优化企业的业务流程。价值流映射,作为一种强大的可视化工具,能够深入剖析工作流程的每个环节,揭示潜在问题,并为优化提供明确的方向。
在产品开发领域,真正的挑战不在于资源的分配,而在于价值的流动。单纯的过程迭代和任务执行,并不能确保价值的快速交付和灵活应变。因此,我们需要将关注的焦点从资源效率转向流动效率,这是精益产品开发的根本所在。

1.1 价值流的作用与优势
-
可视化软件过程,软件项目相较于传统项目,其过程往往更加复杂且难以直观理解,尤其是当团队规模较大、职位层次较高且领导对业务理解不够深入时,更容易出现管理上的盲区。价值流通过可视化手段,将软件过程中的价值流转和项目管控等环节清晰地展示出来,帮助管理者和团队成员更好地理解项目进展和存在的问题。
-
促进跨部门协作,价值流的可视化特性使得问题瓶颈一目了然,这有助于打破部门间的壁垒,促进各部门之间的沟通与协作。通过共同分析价值流图,各部门可以明确各自的责任和角色,共同寻找解决问题的方案,从而提升整体业务运作的效率和协调性。
-
系统性优化,价值流的可视化特性使得问题瓶颈一目了然,这有助于打破部门间的壁垒,促进各部门之间的沟通与协作。通过共同分析价值流图,各部门可以明确各自的责任和角色,共同寻找解决问题的方案,从而提升整体业务运作的效率和协调性。

-
提升决策效率:价值流分析为企业的决策提供了有力的支持。通过对比现状图和未来状态图,可以清晰地看到改进前后的差异和效果,从而更加准确地判断哪些措施是有效的、哪些是需要调整的。这有助于提升决策效率和准确性。
1.2目标与原则
目标:顺畅、高质量地交付有用的价值。
原则:
-
探索和发现有用的价值:
-
深入理解客户需求,确保所开发的产品或服务能够真正满足客户的期望和需求。
-
通过与客户的紧密沟通,不断迭代和优化产品,确保价值的持续交付。
-
-
聚焦和提升价值流动效率:
-
可视化整个价值流,识别并消除阻碍价值流动的障碍。
-
减少无效等待和浪费,提升流程的整体效率。
-
促进团队间的紧密协作,确保价值在价值流中的顺畅传递。
-
接下来我会以看板为载体展开描述价值流的落地过程
二、构建可视化价值流动体系:看板系统设计与实施

在产品开发领域,价值流动往往不可见,因此其管理和优化相较于生产制造更为复杂。看板方法的首要实践便是将工作及其流动过程可视化,以更好地进行管理和优化。以下是对可视化价值流动及看板系统建模的详细阐述与优化。
1、可视化价值流动的核心要点
-
用户价值可视化:产品开发的终极目标是交付用户价值。在看板系统中,每个蓝色卡片代表一个用户价值,通常是可验证、可交付的用户需求。这些卡片从用户视角出发,体现了团队交付的核心价值。
-
端到端流动过程可视化:价值从提出到交付的整个过程被称为端到端流动。这个过程包含多个工作环节和等待环节,图中灰色阴影的列即表示等待环节。用户价值在这些列中流动,直至最终交付给用户。
-
问题与瓶颈可视化:阻碍价值流动的因素(如需求不明确、技术障碍等)以及价值流动不畅的环节(即瓶颈)均需被可视化。这有助于团队快速识别并处理这些问题,从而优化价值流动。
2、可视化价值流动的设计原则
-
体现价值:展示团队对外交付的所有价值,包括用户需求、业务及产品团队需求、技术及业务探索价值等。
-
反映协作:清晰描绘团队协作过程,包括步骤间、环节内以及价值流动中的分解与合并过程。
-
暴露问题:即时反映价值流动中的问题,以便团队识别并处理。
3、可视化价值流动的设计步骤
3.1分析价值流动过程
看板系统的设计应该从分析团队交付的价值类型和价值流动过程开始
2.1.1 识别团队交付的价值类型
从团队外部视角审视团队提供的服务,识别并分类价值类型,如业务需求、关联需求、技术改进等。
| 价值类型 | 来源 | 内容 | 到达频率 | 处理原则 | 占比 |
| 业务需求 | 用户或产品规划 | 产品特性需求 | 每两周一次正式输入 平时会有少量插入 | 每周进行一次计划 一般按优先级排列 少量紧急需求需立刻响应 | ~65% |
| 关联需求 | 其它开发团队 | 其它团队开发过程中对本团队的依赖 | 随时提出 每周一次汇总安排 | 双方协商交付时间 存在很少量紧急需求 | ~10% |
| 技术改进 | 团队自身 | 内部提出的改善性需求,如代码重构、测试优化等 | 随时提出 比较均匀受控 | 重要但不紧急 空闲时安排相对较多 希望能持续有规律地投入 | ~10% |
| 其他任务 | 多种来源 | 运营类支持、线上的问题修复、文档的整理、能力建设等 | 部分随机出现:如线上问题,运营支持 部分周期出现:如月度汇总等 | 各不相同,因事而异 | ~15% |
2.2.2 确定看板系统的基本流动单元
根据价值类型确定看板系统的基本流动单元。

2.2.3 分析流动单元的流动步骤
确定价值流动所经历的主要工作步骤,并识别出交接或等待环节。
主要工作步骤,需求分析,界面设计,架构设计,需求传递,研发,测试,发布等;在这些工作步骤之间可能会发生明显的交接或等待,如需求传递后等待开始实现,开发完成后向测试移交等。等待环节虽然没有具体的工作,却也占用了价值流动的时间,并可能产生积压,也需要识别出来。

2.2.4 识别流动过程中的价值分解和合并
在流动过程中,价值可能会被分解并由多个人完成后合并。识别这些分解和合并点,以便在看板系统中准确表达。
在流动过程中,价值可能会被分解并由多个人完成后,再进行合并。它往往发生在工作量占比较大的阶段。
在实现阶段,工作被分解为各个模块的开发和联调任务,完成后再进行合并,并将整合的需求移交测试;测试阶段发现的Bug,也会单独跟踪和处理,直到解决后需求才会移交至下一阶段。这时,价值流就会出现层级关系。

2.2选取可视化设计元素
2.2.1 队列
-
作用:队列在看板系统中至关重要,反映工作流状态并指导团队协作。
-
分类:根据工作流状态,可划分为工作列和等待列。同时,设置“就绪”队列表示团队即将处理的需求。
-
细化与划分:
-
细化级别:根据工作停留情况和使用者关注焦点灵活调整。
-
起止阶段:从用户问题开始到问题完全解决,形成业务闭环。实际操作中,可从局部流程入手并逐步延伸。
-
“就绪”队列的设置
“就绪”队列是看板系统中一个特殊的等待队列,它位于需求池之后,团队正式承诺计划之前。这个队列的重要性在于它代表了团队的输入,即那些已经准备好进入开发阶段的需求。一个需求被视为“就绪”时,应满足以下条件:
-
用户的需求已经明确且清晰;
-
团队已经充分理解了用户的需求;
-
相关的关联系统或依赖项已经得到确认或准备就绪。

2.2.2 泳道
-
划分依据:
-
处理规则:根据工作项类型和处理流程设置泳道。
-
关注程度:根据工作项重要性或受益方进行区分。
-
-
层级表达:泳道能清晰表达工作项层级关系,如需求与子需求、需求与任务的关系。
-
限制并行需求:泳道还起到限制并行需求数量的作用,有助于暴露问题并促进团队协作解决。
2.2.3 区域
在看板上划分出特定区域来表达特定的信息
-
需求池区域:将需求池划分为多个区域,分别放置不同业务方和来源的需求,为就绪队列的填充和计划提供更明确的信息。
-
就绪队列区域:将就绪队列划分为两个区域,分别放置本发布周期和下一发布周期内要完成的内容,以明确优先顺序。
-
待发布队列区域:将待发布队列分成多个区域,分别放置要部署到不同目标系统的需求,以更好地安排发布计划。
2.2.3 卡片及标识
-
卡片设计:卡片空间有限,设计应简洁,包含需求基本信息(如标题、负责人、ID索引)和时间信息。
-
标识使用:
-
名字贴:表示谁正工作在这个需求或任务上。
-
阻碍项:表明遇到的问题和阻碍及其开始时间。
-
缺陷:与特定需求关联的bug。
-
2.3建模价值流动过程
-
综合分析团队需求、工作流程、可视化效果等因素,选取合适的可视化设计元素,并建模产出反映价值流动的看板墙设计。确保看板系统能够真实、清晰地反映团队协作交付价值的过程,同时体现价值、反映协作和暴露问题。
三、明确流程规则:标准化与规范化管理
显式化流程规则,即明确并达成对价值流转和团队协作规则的共识,是团队协作的基石,也是团队持续改进的出发点。
1、组织并明确流程规则
-
价值流转规则:详细规定价值项(如用户需求)在不同阶段间转移的标准。例如,何时接收并分析需求、需求达到就绪状态的标准、代码提交和任务完成的准则、功能转入测试的标准、功能验收的标准,以及需求发布的条件等。
-
周期性事件规则:涉及团队定期活动的规则,如站会频率、就绪队列填充的规则等。这包括活动的频率、组织形式、适用规则以及处理例外情况(如紧急需求)的机制。
-
其他协作规则:涵盖团队日常运作和协作的各个方面,如看板墙的更新和维护规则、在制品数量限制、度量与反馈的收集与分析机制,以及改进行动的制定与跟踪等。
2、让团队共同拥有流程规则
团队掌握规则不仅是对团队的赋权,也是确保开发过程质量的关键。明确规则后,团队需达成对这些规则的一致理解,以便更自主地做出决策和协作,减少对上级或中央控制的依赖。
3、持续改进流程规则
显式化的流程规则为团队提供了讨论和改进的基础。基于这些明确的基线,团队可以更加客观和理性地识别改进机会。通过将改进落实为新的流程规则,可以确保改进的可靠性和有序性,避免反复和脆弱性。这样,团队就能在不断学习和迭代中不断进步。
四、控制在制品数量:优化资源利用
1、为什么要控制
-
加速交付,提升响应速度。
-
暴露问题,推动持续改进。
-
确保工作围绕用户价值展开。
2、控制什么
-
优先完成已启动工作,避免盲目启动新项目。
-
以用户价值为控制单位,而非单个任务。
-
通过组织任务、处理障碍等方式实现有效控制,不过度限制。
3、如何控制
渐进式改进,从可行但有挑战的限制值开始,逐步优化。
3.1限制原则
-
现实性:与团队能力匹配。
-
有用性:偶尔触及,提醒团队关注问题。
3.2限制在制品的常见形式
-
泳道限制:限制泳道中正在实现的需求数量。
-
阶段需求数限制:明确阶段最大并行需求数。
-
个人并行任务数限制:降低任务切换损耗。
3.3确定初始限制值
-
基于现状调整,确保符合团队实际。
-
根据团队人数和并行系数计算。
-
目标交付周期反推:当团队有明确交付周期目标时,利用利特尔法则(交付周期 = 在制品数量 / 交付速率)反推出最大在制品数。
相关文章:
DevOps赋能:优化业务价值流的实战策略与路径(上)
上篇:价值流引领与可视化体系构建 一、前言 在快速迭代的软件项目和产品开发生态中,我们始终围绕两个核心目标:一是确保每一项工作都能为客户创造实际价值,这是产品团队的核心使命;二是确保这些有价值的工作能够高效…...
int的取值范围
原码(True form):原码是一种计算机中对数字的二进制表示方法,数码序列中最高位为符号位,符号位为0表示正数,符号位为1表示负数;其余有效值部分用二进制的绝对值表示。 反码…...
图文检索(16):IDC: Boost Text-to-Image Retrieval via Indirect and Direct Connections
IDC: Boost Text-to-Image Retrieval via Indirect and Direct Connections 摘要3 方法3.1 直接连接3.2 间接连接3.3 DLB 正则化 结论 发布时间(2024 LREC-COLING) 标题:IDC:通过间接和直接连接增强文本到图像的检索 摘要 本文&…...
企业数字化转型:重识、深思、重启新征程-亿发
在当下这个日新月异的时代,企业数字化转型已然成为众多企业竞相追逐的发展方向,可真正能将其领悟透彻并有效落地实施的企业,却并非比比皆是。此刻,亿发软件针对企业数字化转型展开一次更为深入的重识、全面的深思,进而…...
仓颉刷题录-字符串数字转换(一)
文章目录 背景题目:交换后字典序最小的字符串个人感受 这是双子专栏: Cangjie仓颉程序设计-个人总结 本专栏还在持续更新: 仓颉编程cangjie刷题录 背景 报名了一个仓颉的比赛,感觉条件要求挺低的,就想上。哈哈哈。但…...
SpringBoot【实用篇】- 配置高级
文章目录 目标:1.ConfigurationProperties2.宽松绑定/松散绑定3. 常用计量单位绑定4.数据校验 目标: ConfigurationProperties宽松绑定/松散绑定常用计量单位绑定数据校验 1.ConfigurationProperties ConfigurationProperties 在学习yml的时候我们了解…...
liunx CentOs7安装MQTT服务器(mosquitto)
查找 mosquitto 软件包 yum list all | grep mosquitto出现以上两个即可进行安装,如果没有出现则需要安装EPEL软件库。 yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm查看 mosquitto 信息 yum info mosquitto安装 mosquitt…...
【银河麒麟高级服务器操作系统】虚拟机lvm分区丢失现象分析及解决建议
了解更多银河麒麟操作系统全新产品,请点击访问 麒麟软件产品专区:https://product.kylinos.cn 开发者专区:https://developer.kylinos.cn 文档中心:https://documentkylinos.cn 环境描述 系统环境 物理机/虚拟机/云/容器 虚拟…...
Android 原子性类型都有哪些
1. 基本类型原子类 AtomicInteger:用于对整数进行原子操作,如incrementAndGet()方法可以原子地将当前值加1并返回新值,getAndSet()方法可以原子地设置新值并返回旧值。AtomicLong:和AtomicInteger类似,用于长整型的原…...
MySQL(上)
一、SQL优化 1、如何定位及优化SQL语句的性能问题?创建的索引有没有被使用到?或者说怎么才可以知道这条语句运行很慢的原因? 对于性能比较低的sql语句定位,最重要的也是最有效的方法其实还是看sql的执行计划,而对于mysql来说&a…...
ffplay 实现视频流中音频的延迟
ffplay -rtsp_transport tcp -i rtsp://admin:1234qwer192.168.1.64:554/Streaming/Channels/101 -vn -af "adelay5000|5000"在这个命令中: -vn 参数表示只播放音频。 -af "adelay5000|5000" 参数表示将音频延迟5000毫秒(即5秒&…...
CSDN资源变现
根据搜索结果,CSDN资源变现主要有以下几种方式: 1、上传付费资源: 用户可以在CSDN上上传资源并设置付费,其他用户支付费用下载这些资源,上传者则获得一部分收益。这种方式适合上传大量资源,通过量变达到质变…...
Rembg模型构建教程
一、介绍 Rembg,全称为“Remove Background”,是一款基于深度学习的图像背景去除工具。它的主要功能是通过智能识别图像中的前景物体,并将其从背景中分离出来,从而创建具有透明背景的图像。 二、基础环境 系统:Ubun…...
向量的基础知识和矩阵向量的坐标旋转
向量的基础: 定义: 既有大小,又有方向的量叫做向量(Vector)。 在几何上,向量用有向线段来表示,有向线段长度表示向量的大小,有向线段的方向表示向量的方向。其实有向线段本身也是向…...
GeoSever发布图层(保姆姬)
发布服务的具体步骤。 1. 安装 GeoServer 下载 GeoServer 安装包:GeoServer 官网按照安装说明进行安装,可以选择 Windows、Linux 或其他平台。 2. 启动 GeoServer 启动 GeoServer 通常通过访问 http://localhost:8080/geoserver 进行。默认用户名和密…...
AI 大模型的发展趋势是怎样的?
AI 大模型的发展趋势呈现出多方面的特点,包括技术、应用、商业模式等多个维度,具体如下: 技术层面: 多模态融合:未来,AI 大模型将不断加强对多模态数据的处理能力,融合文本、图像、音频、视频等…...
win10怎么关掉自动更新-小白必看
1.搜索栏搜索服务单机点开 2.在服务里面找到windows Update服务双击进去 3.如下图把他禁用然后点应用即可...
大学城水电资源管理:Spring Boot解决方案
1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及,互联网成为人们查找信息的重要场所,二十一世纪是信息的时代,所以信息的管理显得特别重要。因此,使用计算机来管理大学城水电管理系统的相关信息成为必然。开…...
躺平成长-运营日记-第三天
开源竞争: (自己没有办法完全掌握技术的时候就开源掉,培养出更多的技术依赖,让更多的人完善你的技术,那么这不就是在砸罐子吗?一个行业里面你不去砸罐子,其他人就会砸罐子,你不如先砸…...
智慧税务管理:金融企业报税效率与合规性提升
前言 在数字化浪潮席卷全球的今天,金融行业正面临前所未有的挑战与机遇。如何在复杂的税务环境中保持合规并提高效率,已成为每个金融企业的重中之重。今天小编就为大家介绍一下如何通过借助智能税务平台,实现税务管理的智能化革新࿰…...
golang循环变量捕获问题
在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - 循环变量捕获问题。让我详细解释一下: 问题背景 看这个代码片段: fo…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...
【Java学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...
【论文笔记】若干矿井粉尘检测算法概述
总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...
[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...
【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...
Spring数据访问模块设计
前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...
Fabric V2.5 通用溯源系统——增加图片上传与下载功能
fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...
Java数值运算常见陷阱与规避方法
整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...
