迭代还是增量?

希望到目前为止,我的大多数读者已经注意到我经常偏离敏捷福音,或者更确切地说,我倾向于违背敏捷的常见形式。 (而且,如果您没有注意到,您可能还没有读过《敏捷》一书的“ 我扭曲,疯狂,错误的版本”及其哲学上的继任者“ 盼盼” 。)

今天,我要讨论迭代式增量式的问题 ,尤其是Jeff Patton使用的迭代式开发和增量式开发的定义。 我并不是说杰夫错了,只是我对这些术语的使用有所不同,如果您仔细观察杰夫,我会以几乎相反的方式使用它们。 塞伯·罗斯Seb Rose)几年前对此有所了解,但最近我收到了有关读者的两三封电子邮件,但最终是大卫·洛(David Lowe)的博客让我写了。

长期以来,我一直在谈论“ 3种敏捷样式” ,其中一种是增量样式,另一种是迭代样式,以总结一下:

当更广泛的组织不关心敏捷时,就会发生迭代式开发;或者,如果他们这样做,他们就会认为这可以使锅炉房中的编码人员更快地工作。 因此,团队可以完成出色的敏捷工作(站立,迭代,TDD,重构等),但是他们正在使用大量的旧需求文档。 在他们拥有产品负责人的情况下,这个角色可能是由几乎没有权限的业务分析师担任的,他经营着一个培根切片器,将需求文档变成了用于开发的小故事。

该组织不想要任何东西。 他们不在乎早期的部分交付。 他们甚至可能会认为偏离需求是一个问题,因为他们仍在执行传统的治理(时间,成本,功能和/或对计划的遵从性)。

增量开发相当相似,团队做得很好,但是组织并不真正关心敏捷,并且可能仍然具有传统的治理。 但是,他们的团队确实会定期交货,至少他们会演示他们的最新作品,并且更有可能为客户提供早期版本。 这样一来,好处就会开始累积得多,但这也意味着他们会收到额外的功能要求,并且删除了一些东西。

因为他们正在交付东西,并且因为他们正在增加交付的价值,所以我将其称为增量 。 它正在增加 。 相反,迭代团队基本上是紧密循环的。 它比替代方案更好,但企业看不到任何增值。 但是,这样做时,团队创造了将导致未来冲突的力量–他们接受变革,但治理却不接受。

所以我的模型很清楚吗?

  • (有关更长时间的讨论,请参阅几年前我的《 敏捷频谱》文章。)

现在,Jeff Patton使用不同的两个词。 杰夫的类比是《蒙娜丽莎》 :一个开发团队可以完美地绘制《蒙娜丽莎》的左下角,您将拥有几平方英寸的完美《蒙娜丽莎》,而其余的画布将是空白的。 完成此操作后,团队将向右移一点,然后绘画下几平方英寸,依此类推。 他称此为“ 增量”是因为“蒙娜丽莎”以增量形式出现。

杰夫建议一种更好的方法是拿一块空白的画布,画一个女人和一个只用线条画的背景。 向客户证明并获得反馈。 接下来添加一些颜色,但是不用担心细节。 如果客户喜欢您正在创建的产品,请继续前进。 每次您增加图片的保真度。 这就是Jeff所说的Iterative

用Jeff的语言,每次迭代都会产生反馈。 用我的语言,每个增量都会产生反馈。

你看到混乱了吗?

我曾尝试将Jeff的语言应用于我的模型,但我曾尝试过说“好的Jeff,您说得对,我会改变”,但这些词对我不起作用。

问题是,这并不总是显而易见的:杰夫和我正在讨论不同的问题。

在他的上下文中,Jeff正在解决的问题是新产品开发,客户不知道他们想要什么。

在我的上下文中,我要解决的问题是:团队试图在现有组织中保持敏捷。

我用“迭代式,增量式和进化式”一词来描述在组织内实施敏捷的不同方法。 我拼命尝试不说一个比另一个更好(尽管我通常会惨败)。 有了这种语言,我就可以描述我在公司,团队中看到的内容,并可以据此提出建议。

我对Jeff在他的上下文中使用这些单词没有任何疑问。 实际上,我同意,如果您要进行新产品开发,那么每次循环时提高保真度就很有意义。

这就引出了一个有趣的问题:您可以将两个模型结合起来吗?

让我们考虑以下四种情况:

  1. Jeff Incremental,Allan Iterative :这是一个团队,希望从需求文档中完善系统的一小部分,然后再进行下一步研究,而反馈很少或没有反馈。 换句话说,几乎大多数对需求文档有100%信心的公司都会尝试做,并且会失败。
  2. Jeff Iterative,Allan Iterative :这不可能存在,在Jeff模型中,迭代允许反馈,而在我的模型中,迭代没有反馈。
  3. Jeff Incremental,Allan Incremental :这是案例1,但是加上反馈后,这将成为问题。 技术债务和UI不一致的秘诀。 团队会完成一个部分的完善,反馈会导致下一个部分有所不同,完成后会是完美的,但与第一部分不一致。 随着您在《蒙娜丽莎》中的前进,风格会发生变化。 就像让莱昂纳多·德·芬奇(Leonardo De Vinci)在他的职业生涯中作画一样。 最后的部分将与第一部分有很大的不同。
  4. Jeff Iterative,Allan Incremental :这可能有用,可能很好。 该团队将生产低保真度的版本,这些版本可以部署到现场,并结合反馈。 唯一的问题是,需求文档(基于该文档的治理)将很快过时,并且会出现紧张。 如果您对治理进行了改革,那么您可能会采用我称为“演化”的模型。

所以你去了。

简而言之:我们使用相同的语言来解决不同的问题和不同的上下文。

抱歉,世界很复杂。

翻译自: https://www.javacodegeeks.com/2015/07/iterative-or-incremental.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值