增量和迭代
敏捷是迭代和渐进式的发展,并且随着文化的变化而不断交付以提高透明度。
迭代和增量这两个词是什么意思?
迭代意味着我们一次只能一件一件地创建整个功能。 迭代方法管理技术风险。 我们在遍历整个功能集时了解风险。
增量意味着我们实现了这些价值。 渐进式方法可以管理进度风险,因为我们可以完成工作。
敏捷之所以起作用,是因为我们同时管理技术风险和进度风险。 我们遍历功能集,传递价值的一部分。 (经常提供价值的一个原因是,我们可以更改团队接下来要做的事情。)
如果使用称为“安全登录”的功能集,这是一种考虑方法。 现在,没有人想要登录。但是,人们希望获得付款安全性。 因此,安全登录可能是获得安全付款的一种方式。 主题或我一直称之为功能集的主题是“安全登录”。 功能集是交付主题的几个相关功能。
如果要迭代功能集,则可以提供这些有价值的增量(我首先在“ 如何使用连续计划”中写道):
- 已经存在的用户可以登录。
- 用户可以更改其密码。
- 将新用户添加为用户。
- 将新用户添加为管理员。
- 防止有害用户登录:机器人,某些IP地址或物理位置。 (这是三个独立的故事。)
如果实现第一个故事,则可以使用平面文件。 对于第二个故事,您仍然可以使用平面文件。 一旦开始添加10个以上的用户,您可能希望移至某种数据库。 那将是一个故事。 不是“创建数据库”。 故事是“探索如何向我们的站点添加10、100、1000、10000个用户的选项,以便我们了解性能和可靠性的含义。”
注意探索是故事的一部分。 这将导致产生峰值,团队可以与采购订单进行讨论。 一些选项会影响性能。
每当团队迭代功能集时,他们都会提供增量。 由于许多团队使用时间盒,因此他们使用“迭代”作为时间盒。 (如果使用Scrum,则使用sprint。)请注意术语“在功能集上迭代”。
在递增的生命周期(例如分阶段交付)中,团队将完成一个功能集中的所有功能。 增量生命周期不一定要使用时间框来对增量开发进行时间框化。 在诸如螺旋或RUP的迭代生命周期中,团队将开发要素的原型,甚至部分完成要素,但是最终的集成和测试是在完成所有迭代开发之后进行的。
在敏捷中,我们迭代功能集,以提供增量价值。 如果您还没有完成故事,那么您将处于迭代生命周期中。 如果您不限制完成的功能并完成所有“功能”,那么您将处于递增的生命周期中。
没有为您的项目选择生命周期的正确方法。 如果您想使用敏捷,则可以在很短的时间内遍历功能集,从而交付大量价值。
如果您在编写故事时遇到麻烦,可以创建功能集,请参阅我的产品负责人研讨会 (一月份开始)。 超级早起的鸟儿在这个星期五到期。
翻译自: https://www.javacodegeeks.com/2016/11/iterations-and-increments.html
增量和迭代