`

剖析短迭代

阅读更多
作者 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科技公司的敏捷团队教练。

分享到:
评论

相关推荐

    论文研究-基于迭代加权L1范数的稀疏阵列综合.pdf

    针对阵列天线在相控阵雷达、卫星通信以及MIMO雷达系统等实际应用中重量、尺寸和成本受限的问题,提出了一种基于迭代加权[L1]范数的稀疏阵列综合方法。通过对稀疏阵列综合理论的分析,提出使用加权[L1]范数代替[L0]...

    可证明安全的非迭代哈希函数,可抵抗生日攻击

    为了有效,经济地检查IP地址的完整性和真实性,本文提出了一种新的非迭代哈希函数,称为JUNA,该函数基于多元置换问题和异常子集乘积问题,至今尚未找到次指数时间解。 。 JUNA包含初始化算法和压缩算法,并将仅被视...

    论文研究-基于消息振荡及校验更新的改进BP译码算法.pdf

    为了减少在低信噪比区的平均迭代次数和削弱LLR值的振荡,分析了中短码长LDPC码错误帧对应校验节点对数似然比及校验和变化的规律,提出了一种基于消息振荡及校验更新的改进BP译码算法。该算法通过提前结束迭代译码的...

    短突发传输系统的联合导频和迭代译码载波同步 (2014年)

    针对短突发通信在低信噪比条件下的载波同步算法存在估计精度低和同步范围小的问题,提出了联合导频和迭代译码的载波同步算法首先对导频序列的去调制信息进行互相关,并利用互相关之和对载波参数进行粗估计;...

    论文研究-基于连接数据分析和OSELM分类器的网络入侵检测系统.pdf

    然后,迭代执行交叉验证,并通过Alpha剖析来缩减样本尺寸,以此减低后续分类器的计算复杂度;最后,利用优化后的样本特征集来训练OSELM分类器,以此构建一个网络实时入侵检测系统。在NSL-KDD和DARPA数据库上的实验...

    一种提高SCCC系统迭代检测收敛性的方法 (2009年)

    针对短帧系统在迭代检测过程中存在的正反馈现象,提出了一种加权外信息交换的迭代方法,该方法通过对内译码器与外译码器之间传递的外信息概率进行加权控制来减少正反馈现象.理论分析与仿真结果表明,所提出的改进...

    短时延非线性网络控制系统PD型迭代跟踪控制 (2010年)

    研究了一类短时延非线性网络控制系统PD型迭代学习跟踪控制问题。依据泛数理论,详细推导了当不存在初始误差时该系统对期望信号的跟踪控制过程,得到其收敛的充分条件,为网络环境下的非线性系统提供了一种新的控制策略...

    估计跳频信号参数的多窗口迭代平滑伪WVD新算法 (2008年)

    在短时傅立叶变换、Wigner-Ville分布等传统时-频分析算法均无法达到抑制噪声和实时参数检测的情况下,提出一种能适应跳频信号速率变化的多窗口迭代平滑伪Wigner-Ville分布(SPWVD)算法来进行跳频信号参数的实时估计。...

    低信噪比条件下短时信号频率与幅度的检测-孙婷婷

    因此,研究低信噪比条件下短 时信号的参数检测方法具有重要应用价值。 本文对最大似然估计法、自相关法、参数模型法、离散傅里叶变换法及 MUSIC 算法的理论进行深入研究,并通过仿真实验比较算法的性能。在充分总结...

    基于最远块投影的自适应分块迭代CQ算法 (2014年)

    针对分块迭代CQ算法,因子集的无序性和步长的不稳定性而导致...在证明了算法收敛性的同时,结合短扫描CT投影重建问题对2种算法的实验结果进行了对比分析。结果表明所提出算法能够取得较快的收敛速度和较高的重建精度。

    LJ.rar_mis_面向对象分析

    经过分析,我们使用PowerSoft公司的PowerBuilder 8.0作为前端开发工具,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能够方便而简洁操纵数据库的智能化对象,首先在短时间内建立系统应用原型,然后,对初始...

    2022数学建模电工杯B题:5G 网络环境下应急物资配送问题

    问题模型,利用蚁群算法,迭代局部搜索算法,聚类分析等方法进行求解。 对于问题一只有配送车辆配送这一模式,建立 VRP 问题,首先通过 floyd 算法验证各地点间 的最短距离即为直线距离,将问题转换为最佳 H 圈问题...

    基于虚拟仪器用于闪变计算的补偿迭代算法

    摘 要:电压波动和闪变是评定电能质量的重要指标,文章通过对IEC设计规范的闪变测试系统的分析,提出一种可准确计算瞬时闪变视感度的补偿迭代算法,从而计算出短时间闪变值和长时间闪变值,并基于虚拟仪器开发平台...

    读书管理系统需求分析

    图书管理系统是典型的信息管理系统。系统介绍了图书系统的开发... 利用其提供的各种面向对象的开发工具,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。

    GPT行业分析,赚钱案例,使用方法

    以chatgpt没首的超级ai的出现,短短几个月大家都能感受到它的强大。 大家也都感受到了,这个行业迭代速度特别快,甚至几天就有一个基于chatgpt新产品出现。 对于普通人来说,用好gpt这个工具,能提升很大的工作...

    倾斜短纤维拉出的简化分析 (2009年)

    为了研究具有任意倾斜角度的短纤维从脆性基体中拉出的过程和能耗,提出了一种简化分析方法。忽略拉出之前的界面脱粘过程及纤维拉出段的局部弯曲,考虑纤维拉出与基体剥落耦合,建立了拉出过程的非线性控制方程。用迭代...

    超大跨度悬索桥二维颤振频域直接分析方法 (2011年)

    基于传统复模态特征值分析方法和费拉里求解一元四次方程的思路,提出了二维颤振频域直接分析方法(Straight forward method),在超大跨度悬索桥二维颤振分析中无需频率的预先选取和迭代求解,计算时间短。...

    多峰极值优化问题的算法性能分析和比较 (2009年)

    对两种多峰极值优化问题的求解算法进行性能分析和比较,结果表明遗传加速信赖域搜索算法在信赖域迭代点变化速度受到信赖域半径约束时,采用具有并行性能的遗传算法在扩大了的信赖域内求解信赖域子问题,得到加大了的...

    2021~2022年元宇宙主题行业研究报告合集(88份).zip

    2022长线布局优质资产,元宇宙技术持续迭代(29页) Roblox深度报告:Metaverse第一股,元宇宙引领者(2021)(53页) Z时代系列报告:元宇宙来临,虚拟偶像能否抢占先机?(2021)(34页) 元宇宙专题深度:未来的...

    scrum开发模式与禅道管理系统.zip

    它将整个开发过程划分为多个短周期的迭代,每个迭代都包括需求分析、设计、编码、测试和审查等环节。Scrum强调团队成员之间的高度合作和自组织,通过每日站会、迭代评审和迭代规划等仪式来保证项目的持续进展。

Global site tag (gtag.js) - Google Analytics