一文讲清「敏捷路线图」,从此不再掉入瀑布陷阱

news2024/9/28 19:16:47

尽管许多组织和团队声称自己非常敏捷,但他们仍在使用瀑布的方式规划产品。为什么会这样?我们该如何改变这种「错误敏捷」?

原则上,践行敏捷开发很简单:构建一个增量测试这个增量了解需要改变的信息将信息反馈到第一步中,并重复步骤

整个过程可以从两个方面,将敏捷开发与瀑布开发彻底区分开:第一,尽早且频繁地交付小批量的可工作的产品第二,根据(一)得到的新变化和信息,对产品进行恰当的调整。

如下图所示的敏捷路线图很常见。时长一年的甘特图上堆满了功能,并提前完成了任务分配。研发团队只能在一个个不间断的迭代中,实现所有的功能;他们还没有机会总结已交付的工作并作出调整,就必须立刻进入下一个功能开发。

图1. 这样的甘特图怎么可能敏捷?

如果前两个产品功能交付后被证明是错误的(这非常有可能发生),难道我们还要按原计划迭代下去吗?继续遵循上面的甘特图,可能会一错到底。因为计划好的路线图无法帮助我们评估交付效果,识别问题并及时调整。

敏捷开发刻意只关注下一次迭代的即时计划,但许多团队构建了一年甚至更长时间的甘特图,并且罗列了无数个待开发功能和完成截止日期。这样怎么会敏捷呢?

01 前瞻性计划:敏捷刻意忽略的部分

除了当前迭代正在构建的产品外,敏捷方法论不太关注前瞻性的计划。因为只有这样才能做到 「实时计划」 ——我们应该看到什么是可行/不可行的,并根据反馈的数据决定下一步该怎么做。

敏捷意味着「能够快速轻松地行动」,而敏捷开发需要被持续引导,逐步提供价值,再根据市场反馈的情况快速调整策略和方向。 这是一个建立在洞察与反应几乎同步的快速反馈周期,而不是基于前期的大计划。

但是,组织(尤其是大型或传统组织)通常不喜欢没有计划地工作。没有计划的组织会陷入「计划缺失焦虑症」;更准确地说,组织的领导者会很焦虑。因此,他们会制定一个功能列表,提前做好分配,以确保每个人都能按预定的方式有序地工作。

敏捷的组织应当正面解决计划缺失的焦虑,但许多团队没有这样做。反而是领导者们认为,过去路线图和甘特图很有用,那就应该继续使用它们。慢慢地,敏捷就变形成「Water-Scrum-Fall」,就像下图这样。

图2. 迭代中的「敏捷式开发」仅是瀑布开发中很小的部分

不幸的是,敏捷的核心——灵活自由地根据新信息进行调整——被完全忽略了。许多团队实践的敏捷并不是真的敏捷,而过去的瀑布式任务列表也演变成了「用户故事」列表。

02 SAFe:敏捷适配器

敏捷框架没有提供任何当前迭代以外的具体规划建议,而扩展框架正填补了这一空白。SAFe 有一个优点:作为从前期瀑布式大计划到团队敏捷执行的适配器,它可以很容易地被理解。

使用 SAFe(或其他扩展框架),产品管理团队提出功能,设计团队绘制 UI 模型,再发送给管理层审批。当工程师开始编写代码时,管理层会很放心。因为他们已经做好了充分的计划,而成百上千名程序员都会尽职尽责地工作。

通过敏捷扩展框架,管理人员可以看到所有计划中的功能,而开发人员可以在迭代中专注地写代码。这也是敏捷扩展框架受欢迎的原因:它们将领导者熟悉的大型计划,转换为研发团队可执行的敏捷迭代。在一些高级管理者看来,这就是最重要的。

事实上,工程团队已沦为「功能工厂」,他们几乎失去了所有学习、快速调整和改变的能力。管理者却真诚地相信,团队已经完成「敏捷转型」。

03 敏捷性需要空间来操作

回到前面提到的两个决定性敏捷特征:尽早且频繁地交付小批量的可工作的产品根据(一)得到的新变化和信息,对产品进行恰当的调整。

第一点比较好理解,几乎所有资料也都集中在这上面;能够正确掌握第二点的人要少很多。如果团队没有从早期部署的迭代中学习,也没有将洞察力融入后续的迭代优化,那么就没有正确地践行敏捷——这其实只是 「增量瀑布」

正确的敏捷要求组织多次发布和重新发布相同的功能,并且每次都要从早期的经验中吸取教训,使该功能更易于使用、更强大、性能更好或在某些方面更好。 这需要时间,而且这些时间无法在前期被充分估计和预先承诺。

因此,要想成功地洞悉变化,完成迭代优化,团队需要在计划中做到以下三点。

  1. 计划实现的路径必须是可塑的。 定义一个愿景或最终目标,但允许具体的功能和内容在执行时可以有所变化。 我们无法准确预测一个功能会如何运转,所以需要测试它。敏捷团队要允许每个功能能被反复加工、打磨或扩展几次,直到真正实现它。

  2. 计划需要为调整和优化留出弹性空间。 如果时间已经全部按计划分配完,就需要删掉一些东西。正确的策略是在一开始就不要填满所有时间,让它保持开放状态;可以为新想法整理一个新队列,直到时间允许,再进入迭代分配。后文的 「Now-Next-Later」也会详细讲解这一方法。

  3. 领导的支持。 这通常是三点中最难实现的。

04 领导力是敏捷性的关键

最具影响力的成功因素是组织展示和激励的领导范式。 —— Agile 2

很多领导层都认为敏捷是团队内部的事情。这种假设肯定是错误的,而领导们也需要以敏捷的方式行事。在项目过程中,如果要为团队提供调整的空间,领导者就要接受临时的计划。「可塑性强的路径」和「允许调整的弹性空间」印证了这点。

管理者要有足够的勇气和决心,才能对团队说:“我们不打算在这个迭代将你们的工作填满;你们需要跟着数据走,看看自己的工作成果。”

如果领导者要真正拥抱敏捷,他们就需要做出根本性的改变。这遵循精益创业的精神:建立一个项目、测试它、从数据中学习、并将这些经验直接反馈到后续的项目中

同时,领导者也要有勇气,接受这些事实:团队不会在外部干扰下提前确定工作,也不会一轮接一轮无缝地进行功能开发。团队需要更多实验性、创造性和跨职能的工作。

这同样意味着,领导者需要快速响应、批准通过更多碎片化的需求变更。他们要探索出更灵活地工作方法,以便为团队提供及时审批。这无疑会打破官僚主义的枷锁,而由领导者们组成的小团队则能更快、更独立地监督和批准自己团队的工作。

05 Now-Next-Later 模型

更常用的敏捷路线图工具是 「Now-Next-Later」模型。甘特图中层层叠叠的功能集可以归纳总结为三个模块。

  • Now:我们正在积极工作的事情。
  • Next:「Now」完成后,即将开始的工作。
  • Later:其他所有未分配和未承诺的功能。

将新的需求、功能和工作按模块规划好,比挤进拥挤的甘特图要容易得多。我们可以很轻松地在每个模块中留出弹性容量空间,以便后续根据最新信息做出调整。

图3. 一个典型的「Now-Next-Later」路线图。

可以看到,「Now」中的项目定义得比「Next」更加详细,「Later」是定义和描述最少的。每个模块的时间跨度可以自由决定,但最好跨度大一些,尽量覆盖多个迭代和优化周期;建议的时间周期是每个模块 6 周或者一个季度

正确地使用「Now-Next-Later」,既能让我们适应短期变化,为后续工作和 Bug 修复留出空间,也能适应长期变化,改变我们对哪些功能要从模块中取出的想法。

但它不会消除干系人要求尽快交付功能的压力。这也是为什么领导者需要自己拥抱敏捷,才能让团队成功。领导者需要通过自己的努力,倡导敏捷的工作方式,并以同样的标准要求自己。

06 结论

许多自称敏捷的组织,他们提前计划了大量功能列表——通常提前一整年——并告诉团队要以小批量的方式交付。这不是敏捷,这是增量瀑布。

敏捷开发的核心特征是小批量地交付可工作的产品,从早期迭代中获得洞察力,并在后续迭代中进一步完善和优化相同的功能。 其中的关键在于我们无法预知和确定什么是可行的,什么是行不通的;这需要洞察和跟踪数据。打造一款优秀的产品,我们要一边走,一边制定计划。这与一年长的甘特图完全不同。

「Now-Next-Later」只有与团队自主权相结合时才有意义。这样才能使团队发现计划的调整空间,及时做出应对。

想要灵活地工作,在做计划时要注意建立高度灵活的路线图留出充足的弹性空间用于响应调整,以及获得领导层的积极支持。利用好这三点,就可以持续地引导项目,而不是在前期就将它固定下来。这就是敏捷真正的意义所在。


原文作者:Raj Nagappan
文章出处:Medium

「LigaAI」的趣味分享与敏捷实践,请关注 LigaAI@CSDN,持续接收更多干货分享~ 进一步了解我们的产品,请访问 LigaAI -新一代智能研发协作平台

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/129174.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

webdriver的尝试:四 【移动端的使用appium-定位与获取代码】

文章目录界面的简单认识和使用参考我们前面使用webdriver可以实现:使用代码,自动化打开浏览器及指定页面,定位元素,获取内容或者模仿操作那么使用移动端,依然需要实现定位与操作 主要就是在appium inspector上进行操作…

开源全球公司贡献 49 名,涛思数据荣登 2022 中国开发者影响力年度榜单

12 月 28 日,CSDN 在北京举行 “2022 中国开发者影响力盛典暨 CSDN 企业生态汇”活动,同时正式发布 2022 中国开发者影响力年度榜单。本次公布的榜单主要包括年度开源贡献企业、年度开源影响力项目、年度开发者社区、年度数字化创新企业、年度优秀雇主企…

蓝桥杯Python练习题13-圆的面积

资源限制   内存限制:256.0MB C/C时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 问题描述   给定圆的半径r,求圆的面积。 输入格式   输入包含一个整数r,表示圆的半径。 输出格式   输出…

自然语言处理复习

目录 第 3 章 深度学习基础 第 4 章 语言模型词向量 第 5 章 NLP中的注意力机制 第 6 章 NLP基础任务 第 7 章 预训练语言模型 第 3 章 深度学习基础 1. 人工神经网络 2. 激活函数 (1)激活函数的作用 为了增强网络的表达能力,需要引入…

在你的岗位中领导:为人力资源职员提供提升招聘管理能力

香港 (Xinwengao.com) — 每年外籍老师表示他们因为沟通问题停止考虑某间学校。这会发生有几个原因但大部分则是因为前线员工并没有感受到得到可以维持与候选人互动。 PD Academia 在此提供这个双语培训课程来帮助中国的学校提升招聘管理能力: 在你的岗位中领导&a…

数字藏品年终盘点:从长坡厚雪到无人问津,潮起潮落的2022

文/尹宁 出品/陀螺研究院 数字藏品,无疑是2022年我国区块链界最为瞩目的应用,在这一年中,数字藏品行业从高歌猛进到急速刹车、从企业扎堆到巨头退场,从需求高涨到被迫出清,经历了跌宕起伏、高潮迭起的发展历程。 上…

ARM64内存虚拟化分析(8)coalesed MMIO处理

从前面MMIO的处理可以看到,每次访问MMIO都会导致虚拟机退了到QEMU中。很多时候多个MMIO操作,这个时候可以先将前面的MMIO操作保存起来,等到最后一个MMIO的时候,再一起退出到QEMU中处理,这就是coalesced MMIO。目前只支…

新概念1 课文和单词(2022/12/28)

前言: 学了多年的英语,在交流或写作中或多或少有用错的地方。估计看这篇博客的你,或许也和我遇到同样的问题。 为此找新概念系列书籍4本,作为系统性查漏补缺的工具。每天更新10课内容,从基础到提升。从简单到深入,循序…

CSS 特殊字符 ‘#‘ 、‘.’ 、‘*’、‘:’、空格“ ”、 ‘>’ , ‘,’

# 号&#xff1a; #号的作用是对应html中的标签的id属性&#xff0c;写法为#name。如#p1{...}会给<p id"p1">ID is p1</p>增加样式。具体事例如下&#xff1a; HTML代码&#xff1a; <div id"p1"> </div><!-- CSS代码&#…

How to use template

1. 模板变量 注意&#xff1a;在manage.py路径下启动shell My name is hjb 我们可以调用Template类中的render方法来对模板进行一个渲染&#xff0c;这时需要用一个Context来传递它&#xff0c;这个Context是一系列变量和他们值得一个集合得字典 首先建立&#xff0c;然后再vie…

IT运维工单高效协同,助力打造一站式运维方案

随着经济全球化的发展趋势&#xff0c;信息系统在企业运营中占据着愈发重要的位置。业务系统越来越多&#xff0c;用户对信息系统的依赖性越来越强&#xff0c;关键业务系统的中断都将导致企业业务、服务的中断&#xff0c;极大的影响了企业业务稳定运行和持续发展。因此企业需…

使用Visual Studio Installer打包Unity的exe应用

前言 Unity在PC端更新软件的方法。 一、下图是Unity发布出来的应用 二、安装Microsoft Visual Studio Installer Projects插件 &#xff08;1&#xff09;打开vs&#xff0c;我这里用的是vs2019 &#xff08;2&#xff09;点击扩展->管理扩展&#xff0c;如果没有安装过&…

注册 openAI 与 ChatGPT 一起对话

文章目录1. 背景2. 注册短信接受平台3. 注册 OpenAI 账号3.1 邮箱注册3.2 手机验证4. 登陆并对话5. 场景预备条件&#xff1a;科学上网 1. 背景 ChatGPT 是有史以来向公众发布的最好的人工智能聊天机器人。它由旧金山人工智能公司 OpenAI 构建&#xff0c;该公司还负责 GPT-3 …

坚鹏:中国邮政储蓄银行银行业同业竞争策略分析培训圆满结束

数字化转型背景下&#xff0c;中国邮政储蓄银行厦门市分行为了更好地落实总行十四五战略&#xff0c;特别举办了2022年管理干部赋能培训班。 银行业的竞争越来越激烈&#xff0c;银行数字化转型成为实现银行高质量发展的重要突破口&#xff0c;中国邮政储蓄银行厦门市分行充分认…

塔望3W消费战略案丨聚焦川崎火锅料,回归赛道一梯队

川崎 火锅料 客户&#xff1a;上海新川崎食品有限公司 品牌&#xff1a;川崎 服务&#xff1a;3W消费战略 品牌全案 项目背景 上世纪90年代&#xff0c;一句“吃火锅&#xff0c;没川崎怎么行”&#xff0c;响彻大江南北&#xff0c;让川崎走进千家万户&#xff0c;成为当时…

体育锻炼与饮食相结合:调节肠道菌群来预防治疗代谢性疾病

谷禾健康 久坐不动的生活方式已逐渐成为现代社会很多人的一种常态&#xff0c;因此导致2型糖尿病 、肥胖、心血管疾病和非酒精性脂肪肝等代谢性疾病的发病率上升。 ★ 代谢性疾病严重危害人体健康 根据世界卫生组织数据库&#xff0c;2019年&#xff0c;代谢风险&#xff08;即…

ubantu 配置及解决问题

1、安装GCC出现等待缓存锁 需要将其冲突的删除&#xff0c;利用下面三个代码后重新输入下载即可。 sudo rm /var/lib/dpkg/lock-frontend sudo rm /var/cache/apt/archives/lock sudo rm /var/lib/dpkg/lock2、开启共享文件夹&#xff1a; 参考以下链接&#xff0c;在进行的…

【KubeEdge】V-1.12.1 使用helm安装,并启用kubectl log/exec高级特性

内容提要&#xff1a; 云端使用helm安装cloudcore边缘端使用keadm join纳管到云端修改边缘端配置使其支持IptableManger把服务部署到边缘端&#xff0c;并体验kubeclt logs/exec ------------------------------------------------------------------------------------------…

基于MicroPython的ESP32开发

很久前入手了一块ESP32 DEVKIT V1&#xff0c;当时基于C_SDK开发。最近想搞下MicroPython&#xff0c;就又把这块板子找出来了。 一、先下载支持MicroPython的ESP32固件 去MicroPython官网下载对应的固件 我选择了最新版本固件。下载下来。 二、通过flash_download_tool_3.…

NodeJs

视频学习 Nodejs 基础 前提条件 学习Node.js 之前你必须掌握的知识 HTMLCSSJavaScript DOM APIBOM APIAjax API 如果你已经掌握或者学习了以上的知识&#xff0c;那么我们先来回顾一下以上的一些知识点 浏览器为什么能执行Java代码 不同的浏览器具有不同的JavaScript解析…