BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

迭代类型

| 作者 Amr Elssamadisy 关注 0 他的粉丝 ,译者 Jason lai 关注 0 他的粉丝 发布于 2007年8月24日. 估计阅读时间: 3 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

什么是敏捷世界中的迭代?它和我们软件社区中从前一直在用的迭代方式有什么区别?ScrumDevelopment用户组最近对Jeff Sutherland所定义的A、B、C三种Sprint(Sprint就是Scrum词汇中的迭代)进行了讨论,他们的想法也是整个敏捷社区应当关注的。

敏捷社区中的大多数人应该会同意下面这个对迭代的定义:

迭代是一个恒定的时间范围,开发团队在这个范围当中完整地构建系统的某个部分,用“完成(Done)状态”来定义其完整性。这样做允许团队通过从需求到尽可能接近部署中采纳概念的过程中学习领悟,并且使项目的进展真正达到透明化。

此外,迭代是连续进行的,一个迭代的结束就会紧接着下一个迭代的开始。迭代的这个定义和早先(前敏捷时代)若干种定义的主要区别就是“完成状态”——前敏捷时代的迭代会在多个时间周期内完成同一个功能的不同部分,而并不需要达到完成状态。

因此,基于这样一个根本性的理解,Jeff Sutherland在《Scrum之未来:在复杂项目中并行安排Sprint(Future of Scrum: Parallel Pipelining of Sprints in Complex Projects)》一文中给出了三种迭代的定义,我们在下面用图形描述这三种迭代:

在这里它们之间最主要的区别就是重叠。A在迭代/Sprint之间留有“喘息期”,给了项目团队一个确认上一个迭代/Sprint的完成状态的机会,并且留出时间间隔,用来沟通需求,并且为下一个Sprint确认需求。

B则和上面描述的迭代定义很像。Sprint之间存在着一小部分重叠工作,因为项目负责人/客户要为下一个Sprint/迭代准备需求,他们在下一个Sprint/迭代的准备会议中给这些需求定案。

C被用于计划管理,以便使多个相关产品的Scrum并发运行。这个图看起来更像在展示一个使用“多个Scrum的Scrum(Scrum of Scrums)”的组织中的重叠。如果你认为这看起来有点令人摸不着头脑或者表义不清,那么你不是唯一一个这么想的人;在Jeff Sutherland拜访过Serge Beaumont的公司之后,后者就尝试过澄清它们的区别。

那么,对于Scrum社区,以及更大范围的敏捷社区来说,这个概念为什么很重要呢?有些人,比如说Ken Schwaber,认为这样做会让我们注意力的焦点不再专注于真正重要的东西之上:

我一直在留意关于N、A、B、C类迭代类型和进阶Scrum的讨论帖子。尽管这些可能会代表组织在经历过Scrum的观察和适应所采用的工程、人事和产品的管理实践,但它们都不是Scrum。我认为我们把Scrum所带来结果和Scrum本身错误的混淆在一起了。这些假定的扩展最具破坏性的,就是它们会将人们的注意力从Scrum的真正实践中转移开来……

其他人则会认为反思和理解敏捷开发中的一项基础实践是非常重要的。您又是怎么认为的呢?

查看英文原文:Iteration Types

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT