智能体刷屏的背后,是 AI 应用拐点的来临?AICon 北京站议程重磅公布,50+ 硬核分享不容错过 了解详情
写点什么

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

  • 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:461760

评论

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

2023云栖大会龙蜥操作系统专场成功举办

开放原子开源基金会

开源 云栖大会

华为云云容器引擎CCE产品文档带来4个升级,降低使用难度

华为云开发者联盟

云原生 华为云 华为云开发者联盟 华为云CCE容器服

AI系列产品来袭,用友招聘云换新上线

用友BIP

AI 招聘

未来已来!2023 云栖大会龙蜥操作系统专场精彩回顾

OpenAnolis小助手

开源 操作系统 信通院 云栖大会 龙蜥社区

11 月 11日,MatrixOne 社区邀请您来深圳办公室坐坐

MatrixOrigin

分布式数据库 云原生数据库 MatrixOrigin MatrixOne HTAP数据库

DAPP 燃烧铸币质押挖矿系统开发

l8l259l3365

如何成为前1%的程序员

互联网工科生

程序员 提升自我

合成数据对于机器学习模型至关重要

3D建模设计

人工智能 合成数据 虚幻合成数据

对话在行人|合众思壮:基于用友BIP重塑业务应用,推进业财融合

用友BIP

对话在行人 数智化领先实践

企业制作网站时为何香港云服务器成为首选?

一只扑棱蛾子

香港云服务器

信息系统建设和企业税务管理的结合

用友BIP

税务管理

昇腾迁移丨4个TensorFlow模型训练案例解读

华为云开发者联盟

人工智能 华为云 昇腾 华为云开发者联盟

调用API接口获取淘宝店铺所有商品:详细指南与代码实践

Noah

人才驱动:水泥建材企业如何实现智能化人才管理

用友BIP

人才发展

吴翰清《计算》重磅来袭,为了可计算的价值,写给所有人!

博文视点Broadview

用友携手平安银行,加速数智化司库及财资体系建设

用友BIP

全球司库

调用API接口获取淘宝商品评论:方法与实战

Noah

腾讯云入选 2023Gartner分布式混合基础设施魔力象限

ToB行业头条

数电票如何管理?

用友BIP

数电票

医共体建设进入高峰期 区域医疗平台运营管理如何破局

用友BIP

医疗平台运营

外贸独立站谷歌seo优化的8大技巧

九凌网络

即时通讯技术文集(第22期):IM安全相关文章(Part1) [共13篇]

JackJiang

网络编程 即时通讯 IM

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