如何提高变化响应能力(上):理解并管理迭代容量

随着敏捷在各行各业的普及,一些基本问题又开始浮现:

  • 迭代开始后,业务突然告诉开发团队一些迭代外的需求要优先发布,应该如何处理?
  • 正在进行开发,产品经理突然要撤回一个需求,因为发生了变化,应该如何处理?
  • 团队满负荷工作,突然出现一个紧急需求需要尽快发布,应该如何处理?

优雅地批评

问题反复出现,说明组织只触摸到了敏捷的“形式”,并没有理解敏捷的“实质”:在变化越来越快的环境中,提升团队响应变化的能力。

如何提高变化响应能力(上):理解并管理迭代容量

响应变化的三种水平

开发同样的平台,顶级开发团队只需要普通开发团队百分之一的资源就足够了;同一个行业,有的人下午四点就离开客户现场回酒店睡觉了,有的人凌晨四点还在辛苦劳累。这就是响应水平的差异。

小知识:基于不同的专业积累与做事方式,产出有数十、数百倍的差距。

知识积累是一个缓慢的过程,本文从方法层面讲一讲在业务频繁变化情况下如何应对。

前置思考

在开始之前我们先思考一下,业务对交付团队的期望究竟什么?高满意度究竟是什么?多快好省当然是绝对正确的答案,但和股市赚钱一个道理,赚一笔钱很容易,持续稳定地赚钱很难。与某个范围内的多快好省相比,可预见性强、稳定、可靠才是长期交付合作关系的保障,这也是敏捷倡导“长期关系”的原因。

小知识:每个月产量稳定提升 5% 的团队,一年的产量就能提升 60% !

理解迭代容量

实现对变化的应对与管理,一种敏捷方法是迭代(Iteration)。通过不断的迭代,使产品逐渐符合客户的需求;通过提高稳定性和可预见性,使迭代容量(Capacity)不断增加,从而提升产量,这是迭代管理的另一个目标,其核心概念是时间盒(Timeboxing)。

时间盒控制

每个迭代是一个时间盒,经过多年的普及,很多人已经理解到时间盒是刚性的,不能随意调整周期。但许多团队只专注于如何控制迭代的周期,没有注意到时间盒是对任务完成具体时间(specific deadline)的约束。

Timeboxing is a goal-oriented time management strategy to help you increase productivity and reduce procrastination. When you create a “timebox,” you’re setting a goal to finish a particular task within a certain time frame.[1]
Timeboxing is a simple time management technique that involves allotting a fixed, maximum unit of time for an activity in advance, and then complete the activity within that time frame.[2]
The purpose of timeboxing is to ensure that you use your time productively.[3]
Timeboxing is a time management technique that involves setting fixed amounts of time for tasks to be completed. [4]

可见,敏捷工作方法对人的基本素质有一定要求。对完成时间的紧迫度、在实现条件具备、环境干扰可控的情况下专注、高效地完成工作,是成为“敏捷型员工”的准入门槛。其次,才是管理者如何提供条件的问题。

案例:失败的控制

曾经负责改进一个面临巨大交付困难的团队。团队反馈需求太多,做不完,所以交付差,在第一个改进的迭代开始前,我们和产品负责人、开发负责人一起评估了需求量、交付资源,确保双方达成了一致。但在迭代开发过程中,把团队的提交记录导出来一看,晚上八点、十点、十二点直到凌晨二点,还有人在提交代码!

团队反馈凌晨工作的人是在处理线上事件。

于是我们终于抓出了“实施敏捷后”交付效能越来越差的原因,如下图所示。

如何提高变化响应能力(上):理解并管理迭代容量

工作方式差距

分析原因,我们发现团队还在延续过去的工作方式,无法跟上敏捷“快”的节奏:

  1. 缺少产品 Backlog 导致需求的能见度、预见性差。产品负责人按照过去版本火车的工作方式和节奏准备每个迭代的需求,与业务沟通频率低,在开发进入中后期才组织下一迭代的业务需求收集会,每个迭代前都需要反复澄清,挤压迭代开发周期,为避免开发空载,在迭代结束时团队不得不勉强接收需求,使进入迭代的需求质量良莠不齐。
  2. 需求质量影响开发质量。为了快,大部分版本火车中的质量活动(开发自测报告、版本提测报告、质量验证报告)都丢掉了,导致版本质量严重下滑。
  3. 强行迭代发布,每个迭代都产生大量的线上事故,不断累积修复工作量。

建立产品 Backlog 、形成每周一轮业务需求收集澄清的节奏、将线上事件数量纳入迭代工作项、通过全员的计划会议来评估工作量,几项改进完成后,可排期需求很快稳定积累三个月左右的量,供开发负责人更好地设计架构与模块,线上事件数量在稳定下降,测试缺陷数量也开始收敛。但与真正的敏捷工作方式相比,还缺少一些新的能力支撑。

从交付过程来看,当前的开发、测试团队仅涉及到了很少的工作,红色环节都由外部团队(BA、配置中心、集成验证)完成。比如一些紧急测试版本的发布,还要半夜给别的团队打电话申请支持。

小知识:敏捷倡导的“团队自治”,不是表面理解的“决策自主”,而是交付过程尽可能降低外部依赖,包括决策的依赖、业务的依赖、技术的依赖,等等……

如何提高变化响应能力(上):理解并管理迭代容量

交付能力差距

如果我们将这个团队的工作扩大覆盖到交付全过程(从需求到验收),又需要克服哪些挑战呢?通过评估,团队当前的技能还不足以完成所有工作。以下评估结果是通过问卷调查的方式让团队自评再综合打分,比如自动化一项,调研的是测试人员对各类自动化工具的知晓、配置和项目中使用程度的自我评价。

如何提高变化响应能力(上):理解并管理迭代容量

从上图可以看到,要满足敏捷交付的要求,团队还需要扩展很多的能力项。

改进成效

通过问题发现、原因分析、工作方式改进和能力校准,以及组织级的自动化平台工具引入,经过四个迭代的指导和数月的回访观察,该团队最终成为敏捷实施标杆,年底获得年度客户满意度评分第一名。

管理迭代容量

结合上面的案例,成功的迭代管理应包含三个必须步骤:

第一步,评估。对迭代内所有的工作项(workitems)进行透明,包括显性的交付工作项、隐性的事件处理及各个环节中的移交隐性工作(如环境配置更改、测试数据准备)。

第二步,规划。提高需求的可预见性。转为敏捷工作方式后,与客户和业务的沟通需要更频繁,形成滚动的需求收集与优先级调整,将变更尽可能控制在需求澄清阶段,对已澄清的需求进行条目化整理,录入 Backlog 。

第三步,计划。基于评估的结果,对规划产生的需求 Backlog ,基于其澄清质量、业务优先级挑选进入迭代的需求条目。

许多企业是从瀑布式、CMMI 转型敏捷。CMMI 起源于 NASA 系统工程方法,航天事件通常是重大事件,因此,CMMI 重视精确,不喜欢变化,通过需求基线来控制变化、事后回溯改进。而软件的重要特征是可修改性,且满足市场需求通常有一个从模糊到相对准确的过程,因此,敏捷倡导拥抱变化,但根据能力的不同,拥抱变化的结果会出现三种等级。

I. 负荷级

负荷级的特点是缺乏对迭代容量的理解和管理手段,对变化全盘接收。可能有些人会说,业务太强势,开发太弱势,没有谈判的余地。

谈判的目的是协调,协调的目的是寻找共赢范围,寻找共赢范围的前提是陈清利害关系,陈清利害关系的前提是有事实和数据支撑,这正是管理的基本动作。

实际上是因为开发团队缺乏管理能力,才没有谈判的资格,负荷级的开发团队、业务双向不满。

II. 应对级

吃尽苦头之后,团队终于意识到不能全盘接收业务的变化,开始采用“锁定期”强制业务、产品在迭代计划之前想清楚优先级和功能细节。这在一定程度上缓解了迭代内的干扰,但计划始终跟不上变化,一些需求最后还是要调整,甚至在很多时候出现问题需求先上线,下个迭代再调整的浪费。

在这个阶段,开发团队的迭代交付开始稳定,但业务满意度会持续下降。业务开始提问:

敏捷方法解决了开发测试团队的问题,但没有解决我们的问题。敏捷有没有解决我们的问题的方法?

III. 管理级

具体的拥抱变化的方法并没有成文,而是来自实践经验的总结。回到文章顶部的问题,我们来讲一讲迭代内需求变更的处理的几点经验,主要是对迭代内需求条目的变更管理。

  • 暂停:对已进入开发又发生优先级变更的需求,采取暂停措施,启动其它迭代内需求开发。
  • 移除:对未进入开发又发生优先级变更的需求,将其退回到 Backlog ,填充文档、学习、分享及自动化类提高长期效率的任务。
  • 替换:对需要进入当前迭代的需求,对等点数替换未进入开发的需求,保持迭代容量不变。

要做到管理级,需在需求质量、工程能力和团队学习能力上有较高的水平:

  1. 需求准入门槛要求:开发团队和产品/业务形成一致的需求质量标准,能够双向评估需求质量;
  2. 代码分支工作纪律:通过特性分支开发需求条目,每日同步主干变更并构建测试;
  3. 自我效率提升:主动性、有随时可用的团队改进任务项。

因此,实现敏捷是一个全面的组织能力治理的过程,敏捷对个人而言是一种成长,对组织而言也是一种市场筛选。

参考

  1. ^Try timeboxing: The goal-oriented time management strategy, Asana https://asana.com/resources/what-is-timeboxing
  2. ^Timeboxing, Clockify https://clockify.me/timeboxing
  3. ^Timeboxing: Maximizing Your Productivity, MindTool https://www.mindtools.com/pages/article/timeboxing.htm
  4. ^The Ultimate Guide to Timeboxing, Calendar https://www.calendar.com/timeboxing/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2022年10月26日 上午9:49
下一篇 2022年10月26日 上午9:51

相关推荐

  • 图书管理项目软件

    图书管理项目软件 随着数字化时代的到来,图书管理项目软件已经成为了图书馆管理中不可或缺的一部分。这些软件可以帮助图书馆管理人员更好地管理图书,提高图书管理的效率和准确性。本文将介绍…

    科研百科 2024年10月1日
    21
  • 会议办公系统

    会议办公系统: 提升工作效率的数字化工具 随着数字化时代的到来,会议办公系统已经成为企业组织中不可或缺的一部分。它们可以帮助企业提高会议效率和质量,从而提升组织的工作效率和生产力。…

    科研百科 2024年8月22日
    54
  • 项目经理必看逻辑思维书单(项目经理必看逻辑思维书单有哪些)

    推荐书籍: 1、《实事》汉斯罗汉林 “这本书讲述的是如何以数据作为根治无知的良方,以理性作为心灵平静的源泉,因为这个世界并没有你所感觉到的那么糟糕。” 作者通过自己多年的教学经验,…

    科研百科 2022年12月29日
    190
  • 课题中的学术简历怎么写

    学术简历怎么写 学术简历是一份用于展示学术成就和贡献的文件,通常用于申请研究项目或进入学术领域。一份好的学术简历应该包括以下内容: 1. 介绍自己的背景和学术背景:在学术简历中,应…

    科研百科 2024年10月30日
    0
  • 财务合同管理大全.doc(财务合同管理大全)

    在当今的合同管理过程中 由于涉及到众多的资金往来 以及税务筹划等问题 财务是非常有必要加入到 合同管理的过程中来的 如何做好财务合同管理? 今天小编的免费福利是 《财务合同管理大全…

    科研百科 2022年8月6日
    258
  • 马鑫 江南大学

    马鑫,江南大学食品学院营养师,一位热爱生活、勇于探索的年轻人。 江南大学是江苏省内一所综合性大学,位于市中心,有着悠久的历史和文化底蕴。作为该校食品学院的一名营养师,马鑫对食品科学…

    科研百科 2024年11月12日
    0
  • 智慧园区协同办公系统解决方案(智慧园区协同办公系统解决方案怎么写)

    智慧园区协同办公系统是指通过融合物联网技术、云计算和人工智能等先进技术手段,为园区内的企业和机构提供高效便捷的办公环境以及协同工作平台。它是园区管理者和企业员工实现信息共享、协同办…

    科研百科 2023年8月22日
    245
  • 金融基层党建优秀案例

    金融基层党建优秀案例 近年来,金融基层党建工作在金融领域得到了广泛的重视和推进。作为金融行业的重要组成部分,基层党建工作不仅关系到金融机构的健康发展,也关系到投资者的利益和金融稳定…

    科研百科 2024年10月12日
    18
  • 地产项目管理做什么的

    地产项目管理做什么 地产项目管理是指对房地产项目进行策划、设计、建设、运营和维护等方面的管理,涉及到的方面非常广泛,包括土地采购、建筑设计、施工管理、营销策划、物业管理等。地产项目…

    科研百科 2024年5月25日
    60
  • 牧原股份 – 神奇的关联方、存贷双高与巨额在建工程(牧原股份存贷双高案例分析)

    作者 | 格隆汇 熊大 数据支持 | 勾股大数据 牧原股份2020年上半年卖了678.1万头猪,归母净利润107.84亿元,同比大增7,026.08%,销售净利率高达55.90%。…

    2022年6月24日
    380