真实案例来理解累积流图的真正含义

原始连接:http://baijiahao.baidu.com/s?id=1594434241891156737&wfr=spider&for=pc

转载自科技夜谭

本人专注于敏捷开发实践,在IT软件开发和项目管理方面有丰富工作经验。目前,是美国敏捷联盟认证的敏捷教练(CSM),致力于推动国内的敏捷实践与宣传。
累积流图( CFD: Cumulative Flow Diagram) 是看板方法里的核心度量,可以很好地反映工作项在每个流程环节的流动问题。但遗憾的是,由于这个度量图表比较抽象,导致很多团队想用又不会用。笔者今天做个雷锋。
原理
想知道怎么用,首先要理解怎么画出来的:
团队在每天站会的时候,记录看板系统的各个流程阶段在制品数量,每个流程阶段用不同颜色绘制,每天连续记录,就绘出了小河弯弯的累积流图。
举例,某团队今天站会上的看板如下:

首先绘制横轴和纵轴:
横轴:时间
纵轴:工作项数量
然后数看板上的工作项数量即可:
今天在 完成 列上有 2 个工作项,因此在横轴为今天、纵轴为 2 的位置打个绿色的点,表示累计共完成了 2 个工作项。为简单起见,绿线我们称为 完成线
测试列有 2 个工作项,完成列与测试列共计 4 个工作项。于是,在横轴为今天、纵轴为 4 的位置打个蓝色的点,表示累计共进入测试环节 4 个工作项,包括正在测试和测试完成的所有工作项。蓝线我们称为 进入测试线
开发列(包括开发进行中和开发完成列)共 3 个在制品,开发列、测试列与完成列合计共 7 个工作项。于是,在横轴为今天、纵轴为 7 的位置打个红色的点,表示累计共进入开发环节 7 个工作项,包括正在开发、开发完成、测试中、 测试完成的所有工作项。红线我们称为 进入开发线
Backlog 列有 7 个在制品, Backlog 列、开发列、测试列与完成列合计共 14 个工作项。于是,在横轴为今天、纵轴为 14 的位置打个橙黄色的点,表示累计共进入 Backlog 14 个工作项,包括当前在 Backlog 中、正在开发、开发完成、测试中、 测试完成的所有工作项。橙黄色线我们称为 进入 Backlog 线
每天持续打点,就形成如下图一样的累积流图:
如何分析
知道了怎么画,你就知道了含义。两条线之间的垂直高度代表该流程阶段有多少在制品。比如: 进入开发线 进入测试线 之间的高度是 3 ,代表开发环节当前有 3 个在制品。
累积流图还能分析到什么呢?
分析在制品( Work In Progress ,以下简称 WIP
看纵轴:从 进入开发线 完成线 之间的高度,代表了整个看板的在制品数量,因此,这个高度的变化,反映了看板上在制品变化。
如果某个流程阶段的垂直高度较高,可能暗示了研发流程在该处有瓶颈或超负载工作等问题,需注意分析解决。

2. 平均周期时间( Lead Time
看横轴:从 进入开发线 完成线 之间的长度,代表了从开发启动到完成的周期时间。这个长度的变化,反映了团队交付能力的变化。
如果某个流程阶段的水平长度较长,说明该流程环节的周期时间长,而往往是由于该环节的在制品堆积造成。

3. 吞吐率 (Throughput)
按照排队理论( Little’s Law ):
Throughput (吞吐率) = WIP (在制品) / Average Lead Time (平均周期时间)
在累积图中, 完成 线的斜率就是吞吐率。通过观察 完成 线的斜率变化,就可以直观地看出团队的交付效率的变化。

4. 需求范围的变化
进入 Backlog 线 的高度反应了所有 Backlog 的工作项的数量。这条线变高说明有新的需求进入了 Backlog ;平的时候表示这段时间 Backlog 里没有进新需求;这条线变低,说明需求从 Backlog 里删除。
5. 预测交付日期
完成线 按照当前的斜率画出其延长线,与 进入 Backlog” 线的交点,就是按照当前的吞吐率交付现有 Backlog 范围的预计日期。这个预测随着 Backlog 范围的变化、以及吞吐率的变化而变化。

美丽的,向小溪流动一样的累积流图是罕见的。真实世界里的累积流图都是丑陋的。这就是人生。
下面举几个案例
案例 1 :在制品持续堆积

解析:
图中 进入开发线 进入测试线 之间的高度,以及 进入测试线 完成线 之间的高度都在持续增长,说明开发环节、和测试环节的在制品在持续堆积。为什么出现这样的现象呢?需要结合看团队的看板,并且与团队一起分析才能知道原因。但是肯定一点:团队没有设置在制品限制,任由在制品持续堆积。
案例 2 :批次性交付

解析:
图中, 完成线 呈阶梯式上升,像爬楼梯一样。可以判断出这个团队采取了固定的发布节奏,每到发布的时候,累积流图就上了一层楼梯,发布之前, 完成线 是平的。
然后,观察 进入 Backlog 线 ,也是呈现台阶状,而且与 完成线 上台阶的节奏一致。可见该团队的 Backlog 填充节奏与交付节奏保持高度一致。
再次,观察 进入测试线 完成线 之间的高度越来越高,但是我们无法判断出是由于 测试进行 列的在制品堆积,还是由于测试完成后发布工作碰到了问题,导致测试完了不能发布所造成。因此,需要在看板上将测试环节、发布环节细化,才能判断出问题所在。
案例 3 :集体停滞

解析:
上图中,在很长一段时间内, 进入开发线 进入测试线 、和 完成线 都是平的,可见这段时间内没有任何工作项流入开发,也没有任何工作项完成。怎么会这样呢?
常见的原因有以下几种可能性:
1. 这段时间是法定假日
2. 团队整体调走去其他项目
3. 运维有故障,团队所有人去帮助运维解决故障
到底什么原因,需要引导团队分析。
案例 5 :某个环节无法启动

解析:
图中 完成线 进入测试线 在一段时间内是平的,由于 进入测试线 进入完成 线先平了一段时间,所以貌似是由于测试无法开始,导致无法完成。可以判断出,测试环节遇到了阻碍导致测试工作无法开始。
同时, 进入开发线 持续攀升。由此可以判断出,开发人员在测试环节遇到阻碍的时候,没有去帮助解除阻碍,反而继续拉动工作项开发,导致开发环节的在制品持续堆积。
案例 6 :吞吐率不稳定

解析:
上图中, 进入开发线 的斜率稳定,而 完成线 进入测试 线的斜率陡然上升。可见,开发和测试的吞吐率突然大幅度提升。要记住:团队的效率不会忽然上升,一定发生了重大变化。
常见的可能性是:
1. 团队忘记了更新看板。某一天,忽然想起来了,于是大量卡片完成。
2. 团队刚接受了需求拆分的培训,开始尝试将大需求拆小,导致交付的数量上升。
3. 团队迫于管理层的进度压力,拼命赶工,一段时间内集中完成大量需求。这样做一定是有副作用的,过一段时间,团队的吞吐率不仅会下降,反而会花更多的时间修改前段时间赶工埋下的雷。
案例 7 Scrumban 团队

解析:
图中,从原点到结束,所有线 汇集到一点,这说明:在最后一天,团队的看板上是空的。此外, 进入 Backlog” 线是平的,即:在这段时间内,没有新需求进入到 Backlog 里。这是典型的 Scrum 团队的特征。
此外,仔细观察可以发现,在前半段时间,开发环节的在制品持续堆积,而测试环节的在制品较少;而后,测试环节的在制品开始多起来,而开发环节的在制品开始减少。可见这个 Scrum 团队需要改进 Sprint 周期的工作流,避免小批量开发,让工作平衡流动。
案例 8 :中途抛弃需求
解析:
正常的情况下,所有的线都是向上走的。如果有线向下走,一定是有工作项抛弃的情况。图中,除了 进入完成线 ,每条线都向下走,而向下的高度相同,可见是测试列抛弃了工作项,从而 进入开发线 进入完成线 都同时向下走。
这种情况团队要回顾:为什么工作项在启动研发后抛弃?这种浪费如何避免?
最后
团队的累积流图千差万别,上面介绍了几个典型例子,并不能涵盖所有场景。总之记下两个操作要点:
累积流图是团队交付过程的回放,抓住累积流图的几个点,引导团队回顾发生了什么,从而改进价值的流动过程。
累积流图在站会结束后更新,在交付评审(回顾)会议上分析。累积流图的分析周期不能短于 1 周,应该与交付节奏保持一致,否则对一个交付周期的过程看不完整。

原始连接:http://baijiahao.baidu.com/s?id=1594434241891156737&wfr=spider&for=pc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值