束水攻沙——持续加快产品交付速度| 学习笔记

简介: 快速学习束水攻沙——持续加快产品交付速度

开发者学堂课程研发效能提升和敏捷实施36计束水攻沙——持续加快产品交付速度】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/615/detail/9378


束水攻沙——持续加快产品交付速度

内容介绍

一、   回顾可视化

二、   管理价值流动过程

三、   课程总结

四、   如何在Teambition上束水攻沙,持续加速产品交付

 

一、回顾可视化

对于研发交付的问题,我们需要先找到问题所在,在研发过程中,需要可视化端的交付流程,因为一般不同的问题分布在各个局部,往往需要去观察整个系统和整体的交付过程,需要关注需求的过程。可视化也是可视化需求的交付过程。

image.png

1.4步可视化价值流

STEP1:用户价值驱动:识别有效的流动单元  

注意:可视化的主体是需求的交付,而不是每个人的任务

STEP2:左右模块对齐:反应环节内任务协作  

如果一个需求的交付是一个不同的团队,要让他们的任务向需求对齐,因为团队的目标是交付需求,而不是完成任务

STEP3:前后拉通职能:定义端到端的价值流  

包含各个职能,可能是业务,整体,开发,运维等等

STEP4:定义流动规则:赋能团队本地决策内建质量

让更多的决策在本地发生,所以需要定义流动规则,让团队可以自己去改正流程

2.检验可视化效果的3个标准:

能反映需求端到端的交付过程吗?

能即时体现影响价值流动的瓶颈和问题吗?

能依据可视化的信息协作和做决定吗?

可视化是一个手段,而目的是高质量交付有效价值,为了保证价值更顺畅的交付出去。可视化奠定了基础,要以此基础管理数据流,让价值顺畅流动。

 

二、管理价值流动过程

目的:如何管理数据流,让价值顺畅流动

1.束水攻沙限制在制品数量

束水攻沙是关于黄河治理的一个法则

黄河入海水道的变迁

image.png

问题:黄河为什么治理起来非常困难?

原因:因为黄河堆积了大量的泥沙,需要经常进行改造。

潘季驯(1521-1595

明朝治理黄河的水利专家,被誉为“千古治黄第一人”

中国古代最伟大的水利专家

潘季驯曾四次治理黄河,提出了最有效的方法,叫做“束水攻沙”

束水攻沙

image.png

重点:束水就是将大地变得更加狭窄,在河道上建立一条更加狭窄的缕堤,而遥堤目的是为了防止溃坝。束水的目的是让水的流量变小,流速变快。当修建好一个更狭窄的堤坝时,水会在同样的流量下,流速加快,会让黄河中的泥沙流动到下游,再在下游利用其他湖水,将泥沙冲入入海口。

引用束水攻沙案例,讲解产品开发

开发任务

图中有很多蓝色的线,每条蓝色的线都表示一条泳道,也就是对应的一个需求,交付的一条道,它所对应的黄色的纸片是对应的需求中的开发任务。在开发中,泳道是有限的,在开发中最多并行8个需求,如果这8个需求满了,也不可以进入第9个需求,它其实是约束了并行的需求的数目。约束并行需求的作用是,当并行的数目变少时,执行速度和交付速度会变快,交付的速度变快就意味着从进去到出来的速度变快,它响应的周期会变得更短。例如,限制在制品数量,并行的工作的数目,在制品就是同时在开发中的需求的个数,要限制在制品的数量就是要限制在开发过程中需求的数量,在制品的数量越少,那么交付的速度就越快。

image.png

需要交付的累计流图

image.png

此图中横坐标为时间,纵坐标为需求数,红色的曲线代表已经开始的需求的数目,绿色的曲线表示已经交付的需求的数目。在不同的时间段,比如具体的某一天,可以知晓它的需求数。在制品,从红色曲线的纵坐标开始,表示这一天有很多的需求开始,绿色曲线的纵坐标就代表,需求的结束,两个纵坐标相减就是在制品的数目,就是并行的需求的数目,也是已经开始还没有完成的数目。前置时间代表的横线的横坐标,表示在某一天有n个需求的开始,达到绿色的曲线的横坐标,表示有n个需求的结束,两个横坐标相减,就是需求从进入到出去的时间被称之为前置时间。如果并行得越多,那么前置时间就会越长,前提是交付速率不变。例如,每个月可以交付5个需求,并行有10个需求,则前置时间为5除以10,时间为两个月,如果将在制品减半,将需求变为5个,则前置时间就会变短。利特尔法则中,降低在制品的数目,也会降低前置时间,提高响应能力。通过控制在制品的数量,就会降低前置时间,就会提高敏捷响应能力。

利特尔法则:
前置时间=在制品/交付速率

控制在制品的不同方法:

image.png

1.聚焦于协作完成需求,而非单独任务  完成需求,从而将需求的数目降低

2.即时发现并处理阻碍事项  快速解决问题,才可以完成需求

3.尽快移交测试验收

4.优先解决bug,而非开始更多的任务

5.需求分批进入,而非集中开始 如果发现已经有很多需求存于系统当中了,也不用急于将需求放进去,可以让需求分批进入

6.限制并行需求的数目,集中完成已开始的需求  例如通过泳道数,来限制并行开发的需求,通过控制在制品的数目,减少需求的数目,让需求可以尽快的移交,直至交付

总结:通过控制在制品数目,起到束水攻沙的作用,让需求更快的进行流动。

2.湖水岩石暴露问题,促进改进

目的:提高吞吐量

急则沙随水流

缓则水慢沙停 --潘季驯

束水攻沙仅仅是让需求进行的速度变快了,而不是绝对的速度变快。

需求流动速度快,则能及时发现问题和解决问题。反之:需求积压,问题也会隐藏和累积

实例:

阿里市场例子

迭代早期

image.png

问题:蓝色的纸片代表需求,黄色的纸片代表任务,而图中的问题主要是需求和任务全部同时开始。

迭代中期:

image.png

所有的需求都即将开发完成,还剩一小部分

迭代结束前两天:

image.png

问题:迭代结束前,没有一个需求在任务中。需求全部都在进行待测试,最后的时间,需要解决很多问题,质量很难保证。此开发过程中需求的流动是不顺畅的。

迭代过程中的看板变化:

image.png

迭代早期时,所有的需求和任务同时进行,最后导致在迭代后期的时候,所有的东西都在等待测试,对质量造成很大影响。

最后的变化:

image.png

在经过迭代后,需求最终有一部分处于已排期,还有部分处于已就绪中,在开发中的需求很少,整个需求是持续的进行流动。

湖水岩石效应:

将湖水的水面的高度比喻为在制品数量和周期时间,湖底有很多岩石,当湖水很深时,看不到岩石的存在

降低需求的时候,水面也会降低,此时问题就暴露出来。

暴露问题的顺序:

1.协作和交付模式

2.需求拆分和管理问题

3.测试和回归问题

4.环境稳定性的问题

5.组织和沟通问题

6.目标管理和同步问题

7.基础技术架构

image.png

以阿里某某基础产品团队实施过程中暴露问题先后解决顺序为例

解决问题的步骤:减小批量-暴露问题-解决问题

image.png

理念:

例子:背景为在十字路口里堵车,交通会出现状况,警察来会阻止侧方位的车继续进入车流中,让拥堵中的车,尽快驶出车流。

暂缓开始(Stop Starting

聚焦完成(Start Finishing

在研发过程中就要做到暂缓开始,聚焦完成两个操作

3.建立节奏管理价值流动

目的:如何有效的管理价值流动

建立节奏管理价值流动,例子:

image.png

输入:定义了需求的规划,有时被称为队列的填充,排期队列填充会议(或活动)

避免大批量的填充:

image.png

在进行需求计划的时候,就会出现一个问题,多长时间计划一次,这就是需求填充,填充间隔时间会很长,填充时间长会导致许多问题:

一次必须填入更多的需求,从需求确认到开始实现的时间长

出现的问题:降低了响应需求的敏捷性,也降低了需求的质量,对信息掌握不充分,无法获取市场的反馈,也无法在市场开发过程中了解到后续需求的反馈和输入。还会产生猜测性和实际无效的需求。

1.降低了决策的是质量

2.猜测但实际无效的需求

3.影响需求确认质量

从需求确认到完成的时间长,造成

1.不能很好的支持有效的学习和创新

2.降低团队响应变化的能力(敏捷性)

倡导更频繁填充:

image.png

越频繁地填充,带来越大的敏捷性(业务员响应能力),并提高决策的质量和团队的关注度

从敏捷的角度来讲,我们可以更加频繁的填充,但是还是需要考虑开发的合理性

最频繁的是每天按照需求填充,但是每天填充而不做周期性的规划的话,就无法达到好的效果,需要一个整体的规划。

合理的填充频率还取决于

1必要性新信息到达的频度

2.召开填充会议的协调成本

形成了填充的机制:

image.png

产品规划:每月一次,由团队业务方和开发团队代表共同完成里程碑的规划。确定本月的主题和主题需求

可以和业务部每个月进行一次产品规划,此时对需求还没进行详细的分析和设计,还可以在月规划的基础上进行周排期。

需求排期:每周一次,开发和业务进一步澄清本周开发的需求。需要时,可以调整里程碑规划中尚未开始的需求,并及时响应紧急的日常需求。

两级填充(规划/排期)带来的好处:  第一级填充为产品规划,第二级需求为需求排期

产品规划是产品与业务之间的内容,排期最主要的是开发团队的内部,需要产品参与

1.维持了业务的承诺模式

2.让团队聚焦整体阶段性主题

3.避免小瀑布带来的危害  小瀑布指需求过多,且同时开始和结束

4.带来更灵活的响应能力  即使已经做好了规划,如果开发发生变化,也可以更加灵活的进行处理

5.更加专注和高效的需求沟通  可以更好的去澄清一个时间段内的需求

拥有一个规划对于整个团队来说,可以更好的合理去规划自己的技能,比如前后端等角度,另外,规划过后的东西可以按照优先级逐步去澄清来进行排期。

过程:每日站立会议

每日站会会与传统站会有所区别,对于站会也有很多新的模式以及问题,例如站会应该是一个人对应一个人,还是应该一个需求对应一个需求。在传统站位中的表现就是,人们围成一圈,相互讨论,进行计划事项。

站会的核心:促进价值的顺畅流动

image.png

观察管理需求是否顺畅

此时的站会会取决于图中需求的状态,获取需求的状态有两种方式,第一个是从左向右的顺序来进行了解,第二个是从右向左了解需求的状态。实际上从右向左检视每一列的顺序更为合理,因为我们的目标是尽快的完成需求,这样才能更快的开始前面部分的需求。

站会的内容是从右向左检视每一列的需求,观察是否有流动不通畅的情况,使其回复顺畅的流动

问题:站会上应该关注什么?(什么会影响和阻碍价值的顺畅流动)

阻碍价值顺畅流动的因素:

image.png

1.瓶颈和队列

2.关键缺陷

3.重点关注的需求

4.阻碍和问题

5.到期或即将到期的需求

6.中断

站会步骤:

image.png

会前:更新了看板上的内容

过程:瓶颈-中断-重点关注的需求-被阻碍的需求-已经或快超期的需求-长时间不动的需求-未反应在看板上的问题

(从右至左走读看板,关注和处理阻碍价值顺畅流动的问题)

会后:小范围讨论需要较长时间才能解决问题

团队

1.确保看板反应最新状态

2.确保流程顺畅流动的问题

3.识别影响顺畅流动的问题

4.现场处理或提出限进方案

个人

1.了解项目的整体状态

2.清楚个人的优先级

3.提出问题和需要

输出:发布评审会议(可选)

总体流程:

image.png

建立一个规划,来管理价值的流动。每个月进行一次产品规划,每周进行一次开发排期,每天进行一次站会,发布部分,可以根据产品的不同情况来进行持续发布,对于价值的管理,融入到各个活动中建立一个节奏。

 

三、课程总结

1.   束水攻沙:限制在制品数量,加速价值流动

通过控制在制品的数量,加速价值的流动,提高响应力

2.   湖水岩石:暴露问题,促进改进

3.   站会6+1:关注和处理阻碍价值流动的问题

4.   建立节奏:月规划,周排期,日站会

思考:
你看到过多的在制品数量给你们团队带来了什么影响?尝试过哪些办法来减少在制品数量?

 

四、如何在Teambition上束水攻沙,持续加速产品交付

实际操作:

image.png

首先可以看到 Teambition 上的一个看板,包括就绪(待开发)、开发中、待测试、测试中四个部分,还可以观察到四个部分的上方包含的数字,例如,开发中的数字4代表,在开发中包含了4个需求卡片,有4个需求卡片同时在开发中,4就代表在制品数量,此数量不可无限制地放大,我们需要根据团队情况去进行一个限定。

站会问题:传统的站会中会让工作人员回答3个问题,而站会中的主要部分为从右向左关注价值流动,也就是进行从右向左检视每一列的操作。看板中进行站会,需要关注6+1个点。第一个点是需要关注瓶颈和队列,例如测试中这5项中已经有成为瓶颈的部分,成为瓶颈的原因也许是因为测试资源不够,还有可能因为开发部门的问题,还有可能是因为缺陷导致需求无法流动。第二个点是需要关注关键缺陷,例如测试中的有两个缺陷需要去关注,然后缺陷移除掉,如果过程中出现需求和缺陷共同需要解决的时候,我们应该先解决缺陷,再继续去进行前面部分的需求,让此部分需求尽快交付,使其产生价值。第三部分是,我们需要去关注重点的需求,例如在开发中,出现了重点的需求需要我们去进行关注,还有优先级较高的需求需要我们去关注。第四个部分是需求会存在阻碍和问题,例如含有依赖方的我们需要去关注,要进行推动并将问题解决。第五个部分是卡片中有不同的颜色进行表示,过期的为红色卡片,到期的为橙色卡片,快到期的为蓝色卡片,没到期的是灰色部分,我们需要去关注到期或者即将到期的需求,来判断是否能够按时完成。第六个部分是,在分析中部分是没有需求卡片,出现了中断的情况,中断的情况是我们需要关注的地方,如果中断的情况过多就会造成价值无法进行流动,需要及时将其补好。最后一点是,在站会即将结束时,管理人员会问工作人员,自己手上是否还有工作部分没有体现到看板上,这时,团队就需要将这些没有体现到看板上的内容增加到看板上。站会前还需要注意,更新状态。

建立节奏:

实例:
image.png

此规划包括了月规划,研发排期,每日站会和发布窗口以及阅读研发效能回顾

此团队在七月下半旬进行八月份的月规划,然后在八月份第一周为七月对八月份的规划需求进行研发排期,然后每天早上进行站会,此团队每周会有两次发布窗口,最后到下个月出进行月度研发效能反馈。团队在刚开始的时候,进行的研发效能反馈可以更加的频繁。

Teambition 上进行建立节奏操作:
Teambition 中会有日程项目,点击进去就可以看到每日的安排事项,时间以及参与人员

image.png

同时还可以观察日历,日历中也会反映出各种排期、规划等

image.png

此日历还可以被订阅到本地的日程

相关文章
|
12月前
|
存储 监控 架构师
十年业务开发总结,如何做好高效高质量的价值交付
软件交付是一个非常复杂的过程和体系,需要保障好每个阶段的质量和效率才能保障最终的质量和效率。本文将尝试从需求交付的前、中、后三个环节来阐述一下如何做高效高质量的价值交付。
142400 3
|
算法 Java 业务中间件
研发人员如何才能在做业务的过程中自我增值?
如何才能在做业务的过程中不再是资源一样被消耗而是像资产一样自我增值?如何成长?如何高效率地成长?如何让自己的成长走在环境要求的前面? 基于以上这些问题,本文将依次阐述以下内容: 先从“人的本质”入手(第二章节),接着探讨“人的成长”的本质(第三章节),最后再探讨业务和技术的一般规律及应对策略(第四、第五章节)。 需要注意的是,以下内容受限于个人能力和经验有限,在描述规律的过程中,可能会存在维度的缺失;或者当前描述的规律所涉及的维度并不是某些读者认知中的重点,因为事物不同的维度在不同角色和级别的人的认知中重要程度不同。
249 1
研发人员如何才能在做业务的过程中自我增值?
|
运维 监控 容灾
《云上容灾交付服务白皮书》——5.交付典型案例——5.5交付成果保鲜化
《云上容灾交付服务白皮书》——5.交付典型案例——5.5交付成果保鲜化
172 0
|
负载均衡 监控 容灾
《云上容灾交付服务白皮书》——3交付标准化参考框架——3.2 现状调研
《云上容灾交付服务白皮书》——3交付标准化参考框架——3.2 现状调研
154 0
|
运维 容灾 云计算
《云上容灾交付服务白皮书》——5.交付典型案例——5.2 项目交付内容
《云上容灾交付服务白皮书》——5.交付典型案例——5.2 项目交付内容
123 0
|
容灾
《云上容灾交付服务白皮书》——5.交付典型案例——5.4 交付过程工具化
《云上容灾交付服务白皮书》——5.交付典型案例——5.4 交付过程工具化
112 0
|
架构师 Devops 测试技术
从交付产品到交付价值
从交付产品到交付价值
160 0
从交付产品到交付价值
|
自然语言处理 监控
创业公司自动化上线的架构设计
创业公司自动化上线的架构设计
205 0
创业公司自动化上线的架构设计
《研发效能提升36计-敏捷协作篇:束水攻沙,持续加快产品交付速度》电子版地址
研发效能提升36计-敏捷协作篇:束水攻沙,持续加快产品交付速度
379 0
《研发效能提升36计-敏捷协作篇:束水攻沙,持续加快产品交付速度》电子版地址
|
算法 数据可视化 测试技术
需求持续、快速地流动和交付| 学习笔记
快速学习需求持续、快速地流动和交付
需求持续、快速地流动和交付| 学习笔记