作者 Dave Nicolette译者 郑柯 发布于 2008年11月19日 下午3时56分
社区 Agile 主题 敏捷技术, 方法论, 变更 标签 补充实践, 计划, 看板, Scrum
很多人都觉得:迭代的长度应该由发布周期的长短确定。我不同意,我认为这两个周期之间不应有关系。相对于长迭代来说,短迭代可以提供更为频繁的客户反馈, 同时也给予团队机会,让他们可以反思并改进自己的工作实践。短周期可以形成“心跳节奏”,这样的快节奏也足以展现更多意义。由于短周期的本性使然,团队不 大有机会创建过于冗长的工作项目,而这样的项目会使得人们很难产生成就感,除非等到大量的工作完成之后。即使发布的周期很长,下面这些好处仍然存在。
相关厂商内容
InfoQ中文站读者独享6折SD2C技术大会门票,即刻抢购
沙龙:GlassFish的OSGi模块化架构分析(11.29 杭州)
好处
快速响应。在不影响正在进行的工作的情况下优先快速响应变化。产品负责人、客户或是代理人在迭代中期改变优先级或是添加新功能,这样的情况很多见。如果迭代时间足够 短,这种状况就可以得到更好的处理,因为变更在下个迭代中就可以容纳进来了,这样也可以避免打乱当前迭代本不应受影响的正常节奏。
问题检测。成熟的敏捷团队能够发现流程上的问题并马上处理。然而,目前看来,很多敏捷团队仍然在学习曲线上前行,他们还没有成熟到可以自己 发现并解决问题的地步。他们需要根据项目度量数据的变化来识别问题。由于趋势要靠三个点的连线才能体现出来,而项目数据每个迭代才能收集一次,因此更短的 迭代可以更快地暴露问题。
范围管理。如果待办事项列表中的条目都很小,那就可以灵活移动。较长的迭代会产生较大的用户故事。如果产品负责人需要变更待办事项列表条目的优先级,如果用户故事较大,那么变更这些用户故事造成的影响也更大。较短的迭代则趋向产生较小的用户故事。遵循INVEST原则,产品负责人也更容易变更用户故事的优先级。
迭代规划和跟踪。长迭代产生的较大的用户故事,经常要被分解为“任务”,也就是要将大块儿的开发工作拆分为可操作性更强的明细任务。接下 来,为了让团队知道所有用户故事的状态,这些任务要在迭代中跟踪,要么使用类似于“看板”的系统,要么使用迭代的燃尽图。很多团队每天都会停下来重新估算 尚未完成的个人任务。使用短迭代,可以去除所有这些内部流程的管理成本;用户故事变成了更小的工作单位,而人们也能够以更简单的方式跟踪迭代状态。
成为转向“无迭代流程”的基础。迭代式开发保留了一些瀑布开发过程固有的管理成本,即使我们付出代价想去掉它们也是如此。如果将每个迭代从 头到尾画一个价值流累积图(cumulative flow diagram),这些管理成本就会以“在途时间(lead time)”的形式体现出来。我参与过的一些团队,他们在自己承受范围之内尽量压缩迭代的时间。我注意到他们可以消除大量类似的管理成本。迭代时间越短, 让一切工作顺利进行所需花费的流程管理成本就越少。
从另一方面来看,在有严格时间限制的迭代中工作,也可以带来一些敏捷方法的附加价值,包括频繁和有规律的演示和回顾、用来交付增量开发结果的一致性时间 表、频繁得到客户反馈的机会、以及对于“心跳”或是“脉搏”类似节奏的感觉,这样的感觉可以让团队在长期的开发过程中保证认真投入。使用时间盒的方式工作 是有一些额外的好处的,而有些团队在采纳无迭代的流程时会把这些好处丢掉,这就等于是“连孩子带洗澡水一起泼出去了”。而使用短迭代,可以减少转向超轻量 级、无迭代的流程所带来的痛苦;这也是可以预期的。
人们在转向无迭代流程时经常会犯一个错误,他们会将所有与“迭代”有关系的实践都抛弃掉。我们要将“迭代”的概念与有附加价值的敏捷开发特定实践区分开,并寻找能够减少流程管理成本、同时还可以保留有价值实践的解决之道。
潜在问题
有人在使用短迭代时遇到了困难。短迭代的拥护者Mishkin Berteig也提到一些潜在的问题 :
“密集的工作回让人筋疲力尽。”我想这是团队选择何种工作方式的问题。周期短,不一定意味着工作就一定密集。短迭代可能仅仅意味着小时间盒;也就是说,每 个时间盒承诺交付的工作更少了。在工作密度上不一定有什么变化。其他的敏捷原则(特别是“可持续的步调”)就是为了防止发生筋疲力尽的情况。
“战略层面的思考很难跟日程相结合。”战略层面的思考跟每个迭代要做的具体工作没有太大干系。迭代是战术层面的。战略层面的思考是……呃,非战术层面的。这听起来更像是管理上的问题,而不是短迭代的特性之类的东西。
“ 每个迭代必须完成的、耗费管理成本的相关任务占用了短迭代的大部分时间。”这似乎又是一个团队如何选择工作方式的问题。我曾观察到挤压迭代时间长度而引 发的一个有趣结果:人们首先“发现”一些并不是非常必要的管理任务,然后就不再做它们了。最后,团队只做必要的事情,换句话说,他们去除了流程中的浪费。 实际上,这些观察让我对Jim Shore在Java Ranch上的发言持 保留意见。他认为更长的迭代给团队的压力更小,因此有经验的敏捷团队更适合用长期的迭代。我觉得我们不必在迭代规划上花费更多时间, 我认为迭代规划还可以更少些。我支持更短的迭代,如果客户可以采取拉式的方法以单件流 (single piece flow)的方式提出需求,这些迭代甚至可能逐渐消弭。
“对团队之外的资源或是人员的等待,这会使得工作的完成要跨越多个迭代。”组织上的约束造成了此类状况。如果试图采取的迭代长 度过短,以至于组织不能应 对,这样做并不合适。如果真这么做了,也就不能称之为“迭代”了,因为不可能在那样短的时间内交付工作结果,而组织也无法吸收这样的结果。要想有所进步, 我们必须识别出组织的约束。我并不认为临时的组织约束(它们是临时的,只要你真心愿意改变)就会使得短迭代不可行。简单么?没人会这么想。但如果组织的变 革很容易的话,那就没什么乐趣了,不是么?
InfoQ相关内容: Extremely Short Iterations as a Catalyst for Effective Prioritization of Work。
作者简介
Dave Nicolette自 1977年起就从事IT行业了,他在2002年找到了敏捷,并视其为传统IT行业很多内在问题的缓解和去除之道。从那时起,在敏捷和精益的思考和实践上, 他就成为了一名尽心竭力的实践者和大力鼓吹的提倡者。他喜欢与IT从业人士分享经验和有益的实践,并积极参与到敏捷社区的活动中。Dave目前是美国 Valtech科技公司的敏捷团队教练。
分享到:
相关推荐
本文将深入探讨IFTA算法在全息图像重建中的应用,并分析其迭代过程中的误差变化以及如何通过迭代优化图像质量。 首先,我们需要理解什么是迭代傅立叶变换。傅立叶变换是数学中的一个重要工具,常用于信号处理和图像...
- 通过短周期的迭代,可以尽早识别并解决项目中的风险点,避免后期出现不可预料的问题。 **3. 适应变化** - 迭代开发模式下,团队可以根据实际情况灵活调整计划,更好地适应需求的变化。 **4. 提升团队能力** - ...
- **Scrum**:一种常用的敏捷开发方法,强调短周期的冲刺和定期回顾。 - **极限编程(XP)**:注重开发质量,采用如结对编程、持续集成等实践。 - **Kanban**:基于看板的方法,强调流动和限制在制品数量。 - **...
### LMS算法最速下降法及其迭代次数误差分析 #### LMS算法介绍 LMS(Least Mean Squares,最小均方)算法是一种广泛应用于自适应滤波器中的算法,其核心在于通过迭代的方式逐步调整系统参数,使得系统的输出尽可能...
计算结果的分析部分主要对四种迭代方法的优缺点进行了详细的分析。SOR 方法的优点是迭代次数少,但其计算误差较大;CG 方法的优点是计算误差小,但其迭代次数较多;Gauss-Seidel 方法的优点是运行时间短,但其计算...
总的来说,“lzw.rar_迭代译码”这一主题涵盖了数据压缩、编码理论和信道解码等多个IT领域的知识点,而“lzw.cpp”源代码的分析则为深入学习这些概念提供了实践基础。通过对这个压缩包的学习,读者能够提升自己的...
敏捷开发相比其他模式,它的优点是开发周期短(一至两周为一个周期)、更强调队伍的高度协作、更迅速的响应。在互联网时代,时间就是金钱,多花一天时间开发就是多烧一天钱,因此现今比较常用的是敏捷开发模式。 二...
迭代化软件开发是一种将整个软件开发过程分解为一系列短周期迭代的敏捷方法论,旨在通过快速反馈循环持续改进软件产品。相较于传统的瀑布模型,迭代化开发能够更早地识别和缓解风险,提高项目透明度,并促进团队之间...
短视频的普及与用户规模的增长,例如中国电商直播用户规模达2.65亿,证明了直播电商在网民中的普及程度和影响力。 在未来,随着5G、大数据、人工智能等技术的发展,直播电商有望进一步深化实时互动属性,通过更加...
这个压缩包中的"attemptwi7"可能指的是一个项目或者实验的尝试版本,可能包含了作者或研究者在实现短时时域分析过程中的一些迭代或改进。测试音频可能是各种不同类型的语音样本,用于验证分析算法的准确性和效果。而...
- **实践应用**:通过短周期的迭代,团队可以快速适应需求变更,提高开发效率。 - **迭代规划与任务分解**: - **重要性**:良好的规划能够帮助团队明确目标,合理分配资源,减少不必要的返工。 - **方法**:将...
2. 目的:通过对抖音的深入剖析,包括其核心业务逻辑、产品功能、迭代策略、关键运营策略及市场表现,为Yoo视频提供参考和借鉴,帮助其在短视频市场找到立足之地。 二、市场规模 1. 行业发展历程:短视频从PC时代...
通过理解和应用GPU并行计算,我们可以显著提升计算效率,使得原本耗时的算法在短时间内完成,这对于实时图像处理和大数据分析具有重大意义。而ASTRA这样的工具库则降低了开发难度,使得科研人员和工程师能更专注于...
短视频市场的高速发展,抖音和Yoo视频作为短视频领域的主要参与者,需要深入分析了解当前短视频市场情况,以及抖音app的产业业务形态和产品功能结构,分析其迭代路线及关键运营,观察其产品表现,结合用户反馈以及...
对于给定的方程,由于导数的存在,牛顿迭代法能够在较短的迭代次数内获得较为精确的结果。 #### 四、实验与结果 为了验证上述理论分析的正确性,我们进行了数值模拟实验。 **4.1 实验设置** - **迭代初值**:选取\...
综上所述,《复苏 迭代 重构——2023抖音旅游行业白皮书》深入剖析了当前旅游行业的发展现状和未来趋势。随着旅游业全面复苏和数字化转型的加速推进,旅游企业需不断创新营销策略和服务模式,以适应市场的新变化。...
3. **改进的收敛性**:高阶学习律的应用可以显著提升系统在迭代方向上的收敛速度,这意味着系统能够在较短时间内达到期望的控制效果。 #### 四、仿真验证 论文中通过仿真验证了所提出的MFA-ILC算法的有效性。仿真...
在现代数值计算中,求解线性方程组是必不可少的一步,特别是在科学工程计算和大规模数据分析领域。随着计算机技术的飞速发展,对于大型线性方程组的求解需求日益增长,这促使了高效、稳定且可并行计算的算法不断涌现...