写点什么

你们的 Backlog 是什么颜色?

  • 2010-05-23
  • 本文字数:2455 字

    阅读完需:约 8 分钟

最近在悉尼和惠灵顿举行的软件开发大会(SDC,Software Development Conference)上, Philippe Kruchten 教授作了一篇题为“你们的Backlog 是什么颜色”的演讲,主要内容是把软件架构的重要方面同交付系统的功能组件一起纳入敏捷项目中。

Kruchten 认为:敏捷注重 YAGNI(你不会需要它)、重构以及把决定放到“最后责任时刻(Last responsible moment)”做,这些会带来重要决定做得太晚的风险。对于任何一个项目,总有一些需要尽早作出的关键决策,为正在进行的工作铺平道路——对于这些决策,“最后”责任时刻事实上非常接近项目的开始阶段。

这些关键决策是驱动开发产品架构结构的决策。做出不好的选择(或者做出不慎重的选择),会导致系统无法适应不断变化的业务需求。选择有关系统的架构结构,要在开发过程早期进行考虑。

他说:许多敏捷项目注重功能性需求(以用户故事表达),而忽略架构的方面,抱着不负责任的态度“我们可以以后再重构”,总是过于频繁地把“以后” 放在一边,直到为时已晚。

他举了一个例子:一个采用敏捷方法的金融交易系统。

用户故事已经识别好,发布计划以及开发工作已经启动。最初的几轮迭代取得了巨大成功——功能交付了,客户参与度非常好,而且所做的功能完全符合业务需求。一旦有足够多的功能构成一个“最小的可行产品”,一个发布就会投入到生产环境中,而项目却陷入了绝境——那些已经开发好的功能可以运行,但产品却无法应付实际环境中的交易量。客户不得不重新使用老的系统(还没有被关闭),而开发团队则回去重构产品,以应付真实环境的需要——不幸的是,重构意味着不得不对大部分已经完成的工作进行彻底的重建,唯一可以利用的组件是界面设计。项目最终取消了,而客户的组织非常不情愿再去尝试敏捷。

他并不是建议回去做大的前期设计,只是鼓励大家慎重考虑系统的重要质量方面,并确保架构特性同功能性故事一起考虑。架构特性是由产品的“非功能性”或者质量需求驱动的——诸如性能、可靠性、容量、可维护性、安全性、可用性以及可测性等方面。这些方面会影响产品的架构——一开始就必须设计好它们,而不是事后再去重构。

他承认取得进度的迫切需要——我们不希望开发团队花费 1 或 3 轮迭代,忙于“探索”对用户没有显著价值的东西。他认为,把架构需求编进产品的整体发布计划中是可以做到的,确保在开发产品的时候,架构基础以及实用性功能都构筑起来,并且我们能够同时在日益增长的功能上,以及满足质量目标的能力方面取得进展。因此,例如第一轮迭代可能只能看到一个单一的输入界面,但负载测试会显示系统的那部分组件,将能够应付生产环境的要求。

他提供一种方法,让工作变得可视化,并确保架构需求得到重视,而且与基于可视化的工作一起排列优先级——把颜色代码的概念应用到产品 Backlog 中的各个条目中。

他说,backlog 可能会有四种颜色的工作:

  • 绿色——将要交付的功能特性,功能性用户故事
  • 黄色——支持质量需求的架构基础
  • 红色——确认好的缺陷,需要重视
  • 黑色——开发产品过程中产生的技术债务,推迟的关键决策或者已经完成的劣质工作

图片:Backlog 中的颜色

注意那两个维度——积极对消极价值,可视化对非可视化功能

绿色的部分是可见的功能,在产品 backlog 列表上最为常见——定义了产品中将要交付的功能的用户故事。在最终的产品中,这些对用户是可见的。

黄色部分的工作对用户是不可见的,但它们对整个产品有重大的价值。这些包括要完成以下工作:

  • 架构
  • 基础结构
  • 公共元素
  • 类库
  • 框架
  • 让组件可以重用

黄色(有价值但不可见的工作)部分需要在产品 backlog 和发布计划中明确说明,这样项目的利益相关者可以把它们与可见功能一起排列优先级。

红色部分(可见的缺陷)在产品开发过程中插入——在理想世界中,红色部分会非常少,但假定没有红色部分是很幼稚的。

黑色部分(技术债务)会在黄色部分被忽略时产生;技术债务也可能积累自之前的工作,如果项目基于先前的遗留代码。

建立初始发布计划时,同时计划绿色和黄色部分是很重要的,一心一意专注于可见的功能会导致产品看似完美,但却不能适用于生产环境,或者无法应付真实世界的安全威胁。同样地,单纯关注于黄色部分会把我们带回到大量的前期设计中(big up-front design),而且会导致延迟交付所有可见的价值,那时已为时已晚,缺少客户参与。

他认为,建立发布计划时应同时重视那两部分,就“像一个拉链”——把功能性部分和架构部分编织到一起,就像这幅图:

图:计划发布时,把可见和不可见的价值部分像拉链一样合并到一起

红色和黑色部分(可见的缺陷以及技术债务)不会在最初的发布计划中出现,但它们对项目进行的速率(完成的工作与交付的价值之间的比例)有很大影响。

认定缺陷确实存在时,必须马上予以解决。把它们留到以后解决的话,它们会恶化,并导致重大影响。经过几轮迭代后,团队会大致了解他们的缺陷率,并可以调整计划速率,以确保尽可能在发现新的缺陷前把它们修正掉。

如果项目启动的时候有已知的技术债务,那么计划要做的工作时必须考虑到这一点——遗留代码很可能已经有隐藏的缺陷在那里,而且重构那些代码可能并不容易,因而,再一次的、由于相关产品的质量问题导致交付价值率减少。

开发一个新产品时,没有最初的技术债务,但有引发债务的风险。推迟修复缺陷、忽略黄色部分、延迟关键决策却错过“最后责任时刻”都会导致技术债务的累积,并导致交付价值率的降低。

在项目进行的过程中,识别缺陷和技术债务时,重要的是要让项目团队可以看得到它们——这就是用颜色对 backlog 进行编码的概念。为了展示缺陷以及偿还技术债务,需要在产品 backlog 上加入新的故事。

他强烈建议对主要的故事列表标识颜色编码,以便清楚地表明工作类型——该故事是一个新的用户功能,一个架构组件,一个必须修复的缺陷还是一些需要偿还的技术债务?

通过在你的 backlog 上突出显示一些颜色,并让产品开发的所有 4 个方面都清晰可见,更加实际的项目计划和追踪是可以实现的。


你们的 backlog 中有什么样的颜色——你们使用什么方法,让所有工作变得可视化?

查看英文原文 What Color is your Backlog?

2010-05-23 20:571767
用户头像

发布了 38 篇内容, 共 85066 次阅读, 收获喜欢 1 次。

关注

评论

发布
暂无评论
发现更多内容

ETHFI空投指南,轻松获取收益!以bitget钱包为例

股市老人

蓝易云 - python教程:转义字符

百度搜索:蓝易云

云计算 Linux 服务器 云服务器 高防服务器

蓝易云 - sql order by排序null值放最后,怎么写

百度搜索:蓝易云

Python sql 服务器 云服务器 免备案服务器

量子计算:区块链安全的下一个重大威胁?

区块链开发团队DappNetWork

【深度好文】到底什么是质量意识?如何衡量,如何提升?

快乐非自愿限量之名

质量 意识

使用 Postman 变量的入门指南

Liam

程序员 后端 变量 Postman API

开发体育直播平台:探索数据分析模块展示的关键内容

软件开发-梦幻运营部

昆仑万维:棋先一步,我们不卖API,只卖大模型产品化

新消费日报

蓝易云 - Java注解与python函数修饰器区别是啥

百度搜索:蓝易云

Java Python 云计算 编程 云访问

李尔将收购西班牙自动化和智能公司WIP Industrial Automation

财见

海外云手机对比真实手机有什么特点?

Ogcloud

云手机 海外云手机 云手机海外版 海外云手机推荐

第54期|GPTSecurity周报

云起无垠

新三顾茅庐:大型政企为何选择「混合云」!

白洞计划

云计算

开发管理指南:构建高效团队的七大板块

凌晞

团队管理 开发管理

在CentOS 7.5上安装kubectl

vinci321

centos kubectl

Redis是如何做内存回收的

小曾同学.com

redis redis 底层原理 Redis内存回收 Redis内存淘汰策略

蓝易云 - python教程:可变参数*args 和 **kwargs详解

百度搜索:蓝易云

Python 云计算 Linux 运维 云服务器

文旅营销的艺术与技术,在鲸鸿动能合而为一

脑极体

AI

香港 Web3 的分岔路口:to 创新 or to 监管,这并不是一个问题

TechubNews

一文讲清楚精益数据方法论在数据治理中的应用

神州数码

精益数据 精益数据方法论

Databend 开源周报第 147 期

Databend

蓝易云 - 租用香港主机也有讲究?

百度搜索:蓝易云

云计算 服务器 云主机 云服务器 高防服务器

Flink⼤状态作业调优实践指南:Datastream 作业篇

Apache Flink

大数据 flink Datastream

企业数字化转型:低代码开发平台模式探索与实践

不在线第一只蜗牛

低代码 数字化 数字转型

比特币Runes协议和brc20的区别分析,以bitget钱包为例

股市老人

深入探讨:Kubernetes 与低代码的原理及应用实战

EquatorCoco

Kubernetes 容器 低代码

转型的突破性工具:低代码开发工具

快乐非自愿限量之名

低代码 数字化 企业转型

总交易量突破 3000 亿美元,APX Finance 成本轮牛市最大的黑马?

股市老人

云手机海外版可以用来运营TikTok吗?

Ogcloud

云手机 海外云手机 tiktok云手机 tiktok运营 云手机推荐

你们的Backlog是什么颜色?_研发效能_Shane Hastie_InfoQ精选文章