DevOps之数据看板

简介: 成员工作内容清楚明白

什么是看板

看板(kan-ban) 是一个日本词语,来源于日本丰田。看板本意为“信号卡”,在生产制造环境中,这种卡片用作一种信号,通知生产过程中的上游工序继续生产。在这种生产过程中,除非从下游工序获得该信号,否则每个工序的工人不准进行任何额外生产。这和我们生活中,地铁通过限流来防止客流量超过系统承载量,是类似的——都是通过信号控制生产系统过载。


在软件开发中,卡片的数量代表团队工作能力能够处理的上限。这里的卡片代表工作任务,除了包含之前提到的用户故事,也包含问题修复、培训等其他任务,因为这些都是需要占用团队时间和精力完成的。在这些任务没有完成之前,新到达的任务只能在队列中等待,直到有任务完成才能开始。除非是用高优先级的任务替换当前进行中的低优先任务。为了解决团队过载问题,需要将团队成员的工作可视化,了解每个人的工作内容及工作量、任务延期的卡点,从而改进团队在研发过程中存在的问题。


因此,看板方法是一个包含可视化工作流程,定义流程运作规则,限制在制品数量的拉动系统,是一种在团队成员工作不过载的前提下,实现按时交付的管理方法。


如何使用看板

1、价值流映射

价值流是指从响应客户请求创造价值开始,到完成请求交付用户价值为止,所需要实施的一系列的相关行动。而将价值流可视化的工作,称为“价值流映射”。为什么要做价值流映射?软件开发的最终目标是交付用户价值,在交付用户价值的整个流程中,会涉及产品、开发、测试、运维等多个环节。因此,如果想要更快交付用户价值,需要了解整个流程的运行情况。价值流映射能够帮助我们了解整个流程。下图是某企业某产品线的价值流映射图,展示了从需求提出到用户上线的整个周期的价值流动过程。

image.png每一个环节下面都标明了完成该环节的相关数据含义:


LT:Lead Time,前置时间或交付时间,是指一个工作项从开始到结束所消耗的时间,包含了等待时间。

PT:Process Time,处理时间,是指处理该工作项的时间。

%C/A:The Percent Complete and Accurate完整度与准确度百分比,该值表示返工的比率,一般为估计值。


由此可以看出,一个需求从提出到上线验证完成总共需要 69 天。而其中只有 36 天的时间是用来从事价值产出的活动,其他 33 天或被用来等待下一步工作,或修复发现的缺陷。这 33 天并没有产生价值。从价值流映射中,我们可以发现影响价值交付的因素和瓶颈,并对这些因素和瓶颈进行优化。


2、定义工作项类型

上面我们完成了价值流映射,下一步就要识别价值流中的工作项类型,一般包含以下几种:


以需求为中心的工作项,包括需求,功能,用户故事等;


以开发为中心的工作项,包括重构,缺陷,优化等;


以运维为中心的工作项,包括扩容,备份,故障等;


其他事务型的工作项,包括培训,会议等。


这里提到的工作项类型要体现在下面看板中。在整个软件开发流程中,我们不仅要关注能够增值的工作项(如需求),也要关注非增值工作项(如缺陷,重构,备份等)。因为这些非增值工作项可能会成为阻碍项,务必关注。


3、可视化设计

将价值流映射作为输入,将其中的步骤抽象为分析、设计、开发、测试、发布几个关键环节,就可以设计出工作项需要流经的看板的列。如下图所示。需要注意的是,每一列分为“进行中”和“完成”两个子列。“完成”列是下游输入的“等待”列,这里,“完成”列是给下游的一个信号,说明上游工作已经完成,可以拉取并开始下游的工作。


image.png


4、定义状态规则

如果想要让设计出来的看板能够运作起来,就需要定义一些规则。比如,任务卡片的书写规则是什么?需求具备分析的条件有什么?需求进入开发之前,需要满足的条件是什么?需求在进入测试之前,需要满足的条件是什么?每个任务完成的条件是什么?显示化定义这些规则,目的是让团队成员对流程规则有一致的理解和承诺,为团队提供明确的决策依据。

image.png

5、跟踪工作项

看板方法是为了顺畅的交付高质量的用户价值。只有每个工作项都能够顺利的,按部就班地完成,才能最终交付用户价值。因此,对工作项的跟踪,了解团队运作和工作项流动情况。

image.png一般需要重点关注的方面有:

  • 积压的需求,表明该环节已经过载,影响到整体价值流的顺畅流动,如图中的开发环节;
  • 中断的需求,表明某个环节供给不足,价值流出现中断,如图中的测试环节;
  • 阻碍的需求,表明该需求由于某种原因无法正常进展,该类需求应推动问题的解决,尽快恢复流动,如图中的设计和开发环节中有红色标记的需求;
  • 即将或已经到期的需求,指在规定完成的时间内未完成的需求;
  • 长期停滞的需求,指长时间未更新状态的需求。


6、持续改进

持续改进是敏捷软件开发方法中非常重要的一个原则。通过小批量,短周期迭代,团队能尽快收集用户关于软件产品的反馈,从而在下一个迭代中进行改进。与敏捷软件开发方法“增量式的迭代开发方式”不同,看板方法在开发上并未切分成小循环的过程,它强调的是“渐进式的变革”,是一个不断做调整的流程控制方法。这一点,可以采用戴明提出的PDCA持续改善模式。


PDCA 是 Plan-Do-Check-Action 的缩写,是一个四步循环,用来提高产品质量和改善产品生产过程。这里做个简单的介绍:


Plan(规划), 是指在一个周期里制定一个明确的工作计划,包括工作计划的内容,产生的预期结果,以及计划完成后的验收标准;


Do(执行), 执行上一步制定的工作计划,并收集执行过程中的信息和数据;


Check(检查), 核对上一步收集的信息和数据,和预期结果进行对比,并对哪些做对了,哪些做错了进行总结。


Action(处理), 对上一步总结的结果进行处理,好的经验继续保持,对于需要改进的方面提出改进方案,并交给下一个 PDCA 循环去解决。


以上面看板为例,最初制定规划,以当前现状为基础实施看板方法。在执行中,通过的跟踪工作项步骤,发现了其中积压的需求、中断的需求和阻碍的需求等问题,并记录了积压需求的数量,需求任务的工时,团队成员的数量和能力等数据。结合这些数据分析造成这些问题的原因,比如需求量多,人手不足,需求难度大等。那么在下一个规划中就要采取改进措施,有针对性的解决这些问题。


不管是做企业还是做产品,不可能一蹴而就,都需要在不断试错、改进中渐渐完善。看板方法具有很强的问题暴露和提示改进机会的能力,能有效提高组织在完整价值流上的关注程度和绩效表现。

目录
相关文章
|
8月前
|
存储 Devops Docker
【DevOps系列】Docker数据卷(volume)详解
【DevOps系列】Docker数据卷(volume)详解
120 0
|
存储 Kubernetes 负载均衡
kustomize (三) devops和开发配合管理配置数据behavior: merge、namePrefix、nameSuffix
kustomize (三) devops和开发配合管理配置数据behavior: merge、namePrefix、nameSuffix
|
SQL 数据可视化 Devops
研发效能数据平台 DevLake 正式开源,连接 DevOps 中的数据孤岛
研发效能数据平台 DevLake 正式开源,连接 DevOps 中的数据孤岛
1228 0
研发效能数据平台 DevLake 正式开源,连接 DevOps 中的数据孤岛
|
NoSQL 数据挖掘 Devops
devops| redis 数据量暴涨进行数据清理实战
redis 作为程序员的 「瑞士军刀」, 在现有业务中扮演着重要的角色. 为了避免触雷, 「保卫世界和平」, 对 redis 数据进行分析并清理.
165 0
|
运维 Devops 测试技术
建立数据指标体系,推动 DevOps 全链路度量闭环
上一篇文章《苏宁消费金融在DevOps阶段度量设计的落地》中,我们提到金融行业的信息化和数字化的进程不断加快,促使IT部门的敏捷交付和精益运行的能力急需提高,因此 DevOps 的全链路度量体系也应运而生,建立健全的度量体系的需求在 DevOps 领域具有普遍性,有助于在更大范围内快速实现可度量的价值交付,拓展了业界的 DevOps 适用范围,有助于更好提升组织级的质量和效率。
550 0
|
数据采集 运维 监控
交付全链路数据,苏宁消费金融在 DevOps 度量设计的思考
随着 DevOps 的持续火热,企业的信息化能力的持续加强,以及企业对于IT精益运行的迫切需要,从根本上提升 IT 的生产效率,加速部门、企业的业务创新能力。让团队从IT支撑部门,转向为IT创新部门。
295 0
交付全链路数据,苏宁消费金融在 DevOps 度量设计的思考
|
数据可视化 Devops
|
大数据 Devops 测试技术
|
安全 Devops Docker
Docker DevOps答疑:关于数据容器和网络
本文讲的是Docker DevOps答疑:关于数据容器和网络【编者的话】本文是Matt整理的DevOps vc见面会中一些互动问答,阅读本文Docker爱好者可以快速了解新特性和新趋势。
1523 0
|
4天前
|
运维 Kubernetes Devops
构建高效稳定的云基础设施:DevOps与容器化技术融合实践
【5月更文挑战第15天】 在当今的云计算时代,企业为了保持竞争力,不断寻求提高软件交付速度和服务质量的方法。本文将探讨如何通过结合DevOps原则和容器化技术来构建一个既高效又稳定的云基础设施。文章首先介绍了DevOps的核心概念及其如何促进开发与运维的协作,然后详细阐述了容器化技术如何优化应用部署和运行环境。最后,通过一个实际案例分析,展示了这种融合策略在提升自动化水平、加快部署速度以及增强系统稳定性方面的具体成效。

热门文章

最新文章