写点什么

迭代和增量以“急你所需”

  • 2008-01-24
  • 本文字数:1592 字

    阅读完需:约 5 分钟

《我虽不知想要什么,但却知道怎样得到它》一文中,Jeff Patton 谈及了敏捷团队与商业用户在沟通中造成彼此误会的几个方面,并主张敏捷社区应当正确的使用术语“迭代(iterating)”、“增量(incrementing)”和“可交付(shippable)”。

Jeff 在文中首先罗列了一些句子,来凸显对商业用户和软件开发团队更准确的阐明迭代概念的必要性。

  • “我们知道想要什么。但你能估算出构建它需要多长时间吗?”
  • “在启动开发之前,我们必须将这些需求明确下来。”
  • “客户不知道他们想要什么”
  • “客户时常改变想法”

接下来,Jeff 记述了迭代和增量两个截然不同的概念——虽然两者常常被混为一谈,但都被敏捷团队用于交付价值(deliver value)——以及使用它们的原因。

对增量开发的描述如下: > 就增量开发来说,我的意思是每次递增的添加软件功能。每一次增量都会添加更多的软件功能——这与往墙上添砖加瓦有几分相似。在多次增量之后,你将得到一面大墙。

  • 我们使用增量法逐渐地增进功能,那么如果开发花费的时间多于预期,我们可以将迄今为止已经增量构建的功能发布出去。(之所以使用黑体的“如果”,是因为我实在不记得有哪个我参与过的项目开发花费的时间少于预期。)
  • 增量地释放版本,所以我们可以实际地得到我们已创造的商业价值。因为在人们开始使用我们构建的软件之前,我们是不会真正地得到投资回报的。在那之前,预期的商业价值只是一种估计。如果你认为估算软件开发是困难的,那么就尝试估算投资回报率吧。

对迭代开发的描述如下:

我对迭代开发的理解是我们构建软件,然后评估它是否能够正常的工作,然后对其作出修改。我们构建软件然后期望对其作出修改。我们从不指望构建结果正是所需的。如果是的话,那这是一个幸运的意外。正因如此,我们至少要做到常常构建,然后校验其构建是否是正确的。

  • 我们通过迭代找到正确的解决方案。
  • 然后给出一些好的候选方案,可能而后我们在迭代中改进某个候选方案。

在敏捷开发中,当没有人计划迭代时,那么一切都会瘫痪。

他接着争论道,术语“可交付”的使用进一步混乱了局面:

对于想要出售或者使用软件的客户,可交付就意味着他们可以明确地出售或者使用软件。这意味着软件要保证最小功能集可用。软件必须达到计划中的目标——至少 要做到与旧软件或者被替代的文件流程功能相同。软件必须有良好的外观和功能——保证高质量的精确度和完整度(fit and finish)——特别对于商业软件,而你的竞争对手正在对你造成威胁。可交付意味着已经完成了。彻底地完成并扫尾。不再需要为一些事情进行迭代——真正的可交付了。

对客户们说“可交付”就意味着暗示他们最好确保提出的需求都是正确的,因为这就是敏捷开发工作的方式。

那么,为了帮助客户理解迭代的含义,他建议:

我们应该对客户和产品所有人(product owner)解释说,将那些他们不打算发布的需求写到用户故事(user story)中也是重要的。将他们打算评估、学习、改进或者作为失败的实验品丢弃的需求都写到用户故事里。

在与我的朋友 Alistair 交谈中,他提议为每个需求编写三份故事卡片而不是一份。第一个故事卡片上描述了真实的故事。第二个卡片是为了我们了解故事之后作出不可避免的修改而准备的。第三个卡片用于修改之后的微调。 这是一个规划迭代的例子。它能缓解客户大部分的压力——由于担心其描述的故事是否正确(因为必须保证这些故事“可交付”)而极度苦恼、战战兢兢。

他还创造了一个新的缩写词:“YAGRI:你将不会发布它(You aint gunna release it)”。

Patton 风趣地说:“在一次演讲中同时引用到 Johnny Rotten、Roger Waters、Paul Simon、Pete Townsend、John Lennon 和辣妹,是非常难得的。”这是篇有趣的文章,他鼓励读者去参考他的 blog 文章,或者下载最初的带有或者不带有音乐剪辑的演讲稿并使用它,当然是在注明出处的前提下。查看英文原文 Iterating and Incrementing to ‘Get What You Need’

Images copyleft Jeff Patton .

2008-01-24 06:461608

评论

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

前端开发 如何高效落地 Design Token

秃头小帅oi

SpectraLayers Pro for mac,解锁音频编辑的新潜能

理理

PostgreSQL 如何有效地处理数据的加密和解密

伤感汤姆布利柏

天猫商品详情数据接口(tmall.item_get)丨天猫平台API数据接口

tbapi

天猫商品详情接口 天猫API 天猫商品数据采集 天猫商品详情数据采集

软件测试学习笔记丨JUnit5动态测试的并行运行与分布式运行

测试人

软件测试

搜款网商品详情数据接口(VVIC.item_get)丨搜款网平台API接口教程

tbapi

搜款网 搜款网API 搜款网商品详情数据接口 VVIC数据采集

妙笔生花,创意无限!WonderPen妙笔引领写作新风尚

理理

唯品会商品详情数据接口(VIP.item_get)丨唯品会平台API接口教程

tbapi

唯品会商品详情数据接口 唯品会 唯品会商品数据采集 唯品会API

一键聚合,视频无忧!PullTube让您的视频观看体验再升级

理理

混音师的秘密武器,Steinberg Nuendo,让每一个音符都精准到位

理理

编写代码检查规则的神器,解读CodeNavi语法结构

华为云开发者联盟

软件开发 华为云 华为云开发者联盟 代码检查 企业号2024年7月PK榜

绿意盎然,从规划开始!Garden Planner,您的私人花园设计大师

理理

Downie 4 for Mac(视频下载工具)兼容14系统 v4.7.2中文版

Mac相关知识分享

PullTube for Mac(在线视频下载器) v1.8.5.35中文版

Mac相关知识分享

开发软件

Final Cut Pro X for Mac(fcpx视频剪辑) v10.7.1简体中文版

Mac相关知识分享

视频编辑软件

Sketch for mac(专业矢量绘图设计软件)

Mac相关知识分享

微店商品详情数据接口(Micro.item_get)丨微店平台API数据接口指南

tbapi

微店商品详情数据接口 微店API接口 微店

借助办公小浣熊,完成双十一当天各品牌口红销量的数据分析

言程序

数据分析预测 智能办公 办公小浣熊 商汤科技 代码小浣熊

IntelliJ IDEA 2023 for Mac(最好用的Java开发工具) v2023.3.2汉化版

Mac相关知识分享

开发工具

Termius for Mac(多协议远程管理软件) 8.4.0版

Mac相关知识分享

远程 mac软件下载

Steinberg SpectraLayers Pro for mac(Mac音频频谱编辑器) v11.0.10

Mac相关知识分享

音频编辑器

Photoshop 2021 for mac(PS 2021) v22.5.1版

Mac相关知识分享

最新版Ableton Live 12 Suite 中文安装包 live12永久许可证分享

理理

抖音商品详情数据接口(Dy.item_get)丨抖音平台API数据接口指南

tbapi

抖音商品详情数据接口 抖音API 抖音商品详情数据采集

迭代和增量以“急你所需”_研发效能_Geoffrey Wiseman_InfoQ精选文章