FLEET 框架:研发时间减半质量倍增的秘密

近五年来, Agilean 一直在帮助某大型股份行实施精益看板转型。从全面导入到落地深化,从基层赋能到量化改进,该行目前电子看板使用率已达90%,为国内领先水平。在此过程中,我们将精益思想和看板方法进行了更有机的贯通,形成了一个帮助企业快速提升研发效能的改进体系 FLEET(精益效能提升思维框架,Framework of Lean Efficacy Enhancement Thinking)。我将结合落地经验,对FLEET进行全方位阐释。

以下为FLEET 的的6条核心思路:

  • 看见:高效知识工作的最大敌人,是知识工作过程和成果的不可见性。首先要利用看板可视化,构造管理现场;
  • 整流:由于知识工作「不可见」,处理过程中很容易造成工作拥堵。建立需求优选机制,减少并行工作,可以保持专注,提升流动效率;
  • 细粒:进行整流之后,如果需求颗粒度过大,需求也无法快速流动。这就要进一步减小需求颗粒度,从而加速流动,提升质量反馈速度;
  • 润滑:需求交付质量低会造成返工,加剧需求并行度,使彼此之间产生「摩擦」。强化需求澄清、质量前移等质量活动,可以减小需求间的摩擦,缓解过程中的阻力;
  • 小批:定期的需求选择会、澄清会、版本移交等批量活动,会减慢端到端的流动速度,造成等待。应尽量减小批量,减少等待时间;
  • 降本:交易成本是批量存在的根本原因。通过推进自动化回归测试、自动化部署等活动,降低交易成本,使批量减小成为可能。

看见:为管理者构造管理现场

知识工作管理者通常会有一种焦虑感,管的人越多越容易焦虑。在诸多原因中,缺乏有效的可视化管理手段是重中之重。越看不清,就越踌躇,越催生焦虑。陷入焦虑的管理者,往往采用更严格的管理手段,又引起下属更多遮掩和隐瞒,工作状态的不可见被进一步强化,从而形成一个恶性循环。

在斯坦利?麦克里斯特尔(前美军特种作战司令部指挥官)所著的《赋能》一书中,作者提出一个很好的思路:“双眼紧盯,双手放开”。能够做到双眼紧盯,才敢把双手放开。FLEET 的第1个核心思路——用看板实现知识工作的可视化,便是要赋予管理者“看见”的能力。经过良好设计的看板,可以为研发团队管理者提供重要的管理现场。下图是我在2014年辅导的一个创新项目研发看板,该项目在4个月内完成了一个创新金融 APP 从0到1的过程。「可视化」实践里最大的挑战,在于对团队实际工作情况进行价值流的梳理和建模。

整流:建立需求优选机制

请看下图并回答:直觉上,你觉得这是什么地点?

在其它城市培训时,学员往往认为是火车站;生活在北京的学员却一眼看出,这是龙泽或西二旗地铁站。站外的铁栏杆就是地铁系统的整流措施——虽然让个体多走了些路、多了些等待,却保证了整体(每个个体)花更少时间候车。

在长期不可见的情况下,大多数研发团队处于高并行的过载状态,其特点就是持续打断、大量并行。有研究表明,软件研发的流动效率通常只有1%-5%。在流动效率很低的研发过程中,必须引入需求优先机制,即优先级选择。以下图看板为例,“开发”列之前为“选择”队列(红框),将积压需求停留在研发系统之外,避免进一步加剧流程中的阻塞,确保研发流程得以快速优化。

小团队比较容易建立需求优选机制。对大型组织而言,建立需求优选机制的主要挑战,在于如何有效平衡各业务方的诉求。我们在实践中发现,部落制是解决这个问题的有效方式。将研发组织和业务组织拉通(可采用虚拟方式),将研发资源合理分入不同部落、面向不同业务方,然后在部落内建立合适的需求优选机制。

P.S. 流动效率、部落制等话题均较复杂,未来我们将专文详述。

细粒:需求拆分加速流动

需求优选机制运行起来后,下一个改进点是减小需求颗粒度,将需求拆分成更小的可验收可测试单元。规模过大的单元,不利于透明其执行过程中的等待、阻塞和风险。对于大型组织,我们建议采用需求、系统任务、个人任务的三级体系,系统任务控制在10人天,个人任务拆至2-3人天。

下图为之前提到的创新项目快速启动现场(研发正式开始前的启动环节,通常为2-3天)。业务和IT共同拆出350多个粗粒度用户故事,据此制定了迭代计划和关联系统计划,完成看板建模,形成风险应对方案。团队在其后的三个月里完成6个迭代,项目准时上线,产品内容、功能和质量都获得了高度认可,在当年赢取了国内若干重要银行奖项。

润滑:降低需求摩擦

需求颗粒度减小后,通过降低需求彼此之间的摩擦,可以让研发过程流动更加顺畅。什么是需求摩擦?看图——

这段对话熟悉吗?对不少研发同学来说,本来正在做A需求,中间被叫去评审B需求,过会儿又要修改C需求的缺陷,需求之间就产生了摩擦。有很多方法可以降低需求之间的摩擦:

  • 实例化需求,提升需求初始质量;
  • 产品经理制度,专人负责与业务澄清需求;
  • 需求研发双迭代,需求澄清迭代和研发迭代并行,澄清迭代的输出是研发迭代的输入;
  • 建立开发自冒烟制度、代码评审制度,提升初始移交质量,减少测试摩擦。

小批:尽一切可能减小批量

加速流动的一个有效方法是减小批量。「批量」指在某些环节中多件事情一起处理,比如多个需求一起澄清,多个设计一起评审,多个功能一起上线,这些都是批量。批量必然导致一些需求等待另一些需求,减慢端到端的需求流动速度。

批量减小后,需求可以更快速地从开发流动到测试和UAT环节,尽早对质量产生反馈。如上图,通过减小批量,原来3个月完成600个需求,现在变成每两周完成100个需求,前置时间缩短到原来的1/6,交付速度大大加快。因此,我们应寻找一切可能的机会减小批量。例如,IT和业务团队不在一个职场的时候,要每周约定开会澄清需求;如果能在一个职场集中办公,澄清需求变得容易很多,就消除了周澄清会所造成的批量。

降本:与合理批量达成最优解

消灭所有批量,实现单件流,最大限度减少等待造成的浪费,这是一种理想状态。在现实中,由于交易成本的存在,形成合理的批量大小,才是我们要寻求的最优解

交易成本指在做一件事的过程中,需要付出的额外附加成本。例如,需求澄清要预定会议室,要协调参会者时间;版本发布要回归测试,要进行评审,要熬夜发版,这都是交易成本。

交易成本越高,人们就倾向于形成越大的批量。为了减小批量,很多时候需要先降低交易成本。自动化回归测试、自动化部署、减少不合理的流程制度,这些都是降低交易成本的手段。

FLEET 是一套帮助企业快速定位问题、推动初始优化和改进的思维框架,其目标是为企业快速带来改善。我们将 FLEET 与过往实践经验互相印证,形成的精益效能提升实践体系,已帮助多家大型组织实现了「优化冲刺、提速增质」的目标。

原文地址:https://blog.51cto.com/14638745/2457951

时间: 2024-10-18 16:38:42

FLEET 框架:研发时间减半质量倍增的秘密的相关文章

Quartz作业调度框架及时间表达式的含义和语法

Quartz 是一个开源的作业调度框架,它完全由 Java 写成,并设计用于 J2SE 和 J2EE 应用中.它提供了巨大的灵活性而不牺牲简单性.你能够用它来为执行一个作业而创建简单的或复杂的调度.本系统结合通过 Spring 来集成 Quartz . Quartz  下载地址 : http://grepcode.com/snapshot/repo1.maven.org/maven2/org.quartz-scheduler/quartz/1.7.3 首先下载包 :quartz-1.7.3.ja

gleez框架获得时间控件

1,首先你要在你的页面上引用一个js <script src="<?php echo URL::base() ?>media/vendor/datepicker/WdatePicker.js"></script> 2.时间输入框代码: <div class="form-group fromgroup marginnone"> <input type="text" class="for

[记录]python的简单协程框架(回调+时间循环+select)

# -*- coding: utf-8 -*- # @Time : 2018/12/15 18:55 # @File : coroutine.py #一个简单的 Coroutine 框架 import socket # on top of TCP import time from selectors import DefaultSelector, EVENT_WRITE, EVENT_READ # select: System Call -----> watch the readiness of

Java中SSM框架全面知识点,业务时间的精神食粮

------------------异常问题 :出现重复定义了访问路径java.lang.IllegalStateException: Ambiguous mapping found. Cannot map 'userController' bean method 406 请求头和响应头不匹配做ajax注册的时候 出现的问题 ClassNotFindException说明缺少jar包 或者名字写错 NoSuchBeanDefinitionException 如果BeanFactory在Sprin

【repost】JavaScript运动框架之速度时间版本

一.JavaScript运动框架之速度版 1.1 运动框架的实现思路 运动,其实就是在一段时间内改变 left . right . width . height . opactiy 的值,到达目的地之后停止 位移 top,left 折叠 width,height 淡入淡出 opacity 时间有关系 setInterval setTimeout 用javascript直接获取行间样式很容易,但如果要获取非行间样式那我们只能借助函数了.我这里编写了一个名为getStyle的函数,专门处理取非行间的

可以穿梭时空的实时计算框架——Flink对时间的处理

Flink对于流处理架构的意义十分重要,Kafka让消息具有了持久化的能力,而处理数据,甚至穿越时间的能力都要靠Flink来完成. 在Streaming-大数据的未来一文中我们知道,对于流式处理最重要的两件事,正确性,时间推理工具.而Flink对两者都有非常好的支持. Flink对于正确性的保证 对于连续的事件流数据,由于我们处理时可能有事件暂未到达,可能导致数据的正确性受到影响,现在采取的普遍做法的通过高延迟的离线计算保证正确性,但是也牺牲了低延迟. Flink的正确性体现在计算窗口的定义符合

演讲实录!谷得技术总监陈镇洪教你打造游戏研发流水线

本文来自网易云社区. 7月31日,2018云创大会游戏论坛在杭州国际博览中心103B圆满举行.本场游戏论坛聚焦探讨了可能对游戏行业发展有重大推动的新技术.新实践,如AR.区块链.安全.大数据等. 谷得游戏技术总监陈镇洪表示,通用化组件能快速提升游戏开发效率 谷得游戏技术总监陈镇洪做了<谷得游戏如何打造自主研发流水线>的主题演讲,表示游戏厂商们应当建立平台部,实现游戏研发的通用化,助力流水线型的游戏开发工作. 过去的开发模式项目组之间是互相独立的,因此常常会面临重复制造轮子.重复踩坑.没有质量保

【转载】如何写一个框架:步骤(下)

说明:写本文的时候作者完全是把脑子里的东西写了出来,没有参考任何的资料,所以对于每一项内容可能都是不完整的,不能作为一个完整的参考.有一些方法学的东西每个人都有自己的喜好,没有觉得的对和错. 单元测试 在这之前我们写的框架只能说是一个在最基本的情况下可以使用的框架,作为一个框架我们无法预测开发人员将来会怎么使用它,所以我们需要做大量的工作来确保框架不但各种功能都是正确的,而且还是健壮的.写应用系统的代码,大多数项目是不会去写单元测试的,原因很多: 项目赶时间,连做一些输入验证都没时间搞,哪里有时

[转载]Java集合框架的常见面试题

http://www.jfox.info/40-ge-java-ji-he-lei-mian-shi-ti-he-da-an 整理自上面链接: Java集合框架为Java编程语言的基础,也是Java面试中很重要的一个知识点.这里,我列出了一些关于Java集合的重要问题和答案. 1.Java集合框架是什么?说出一些集合框架的优点? 每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector.Stack.HashTable和Array.随着集合的广泛使用, Java1.2提出了囊括所有集