热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

您知道为何要采用固定的迭代周期吗

转载请注明出处:https:www.scrumcn.comagilescrum24004.html本文作者:李洁(JerryLi

转载请注明出处:https://www.scrumcn.com/agile/scrum/24004.html

本文作者:李洁(Jerry Li),CSP,CSM,Scrum中文网资深敏捷顾问和培训师,敏捷教练

一.  敏捷转型之初,Scrum团队可能会想基于发布来规划迭代周期

在前几天与某个团队进行交流时,ScrumMaster说想在未来几周内规划一个为其一周的小迭代以开发和交付一个小规模的需求。我建议仍然采用为期2周的迭代,可以在迭代内规划一个发布版本来完成这个需求的开发和发布。

这是一个非常典型的现象:在刚开始实施Scrum时,许多Scrum团队可能会想要根据发布版本来调整迭代周期。当迭代时间盒已到达而发布内容还差少许未能全部完成时,Scrum团队可能会想要把迭代延长几天——以便在本迭代内完成所有发布内容的开发和测试;而当发布版本工作量偏少、无需一个标准迭代周期就能完成时,Scrum团队又会想要把迭代周期缩短——以便本迭代能刚好完成这个小版本的开发和测试工作。

二.  敏捷倡导“按节奏开发、按需发布”

敏捷方法论中倡导“按节奏开发、按需发布”——这里的“节奏”就是指固定的迭代周期。也就是说;开发应该是有规律的,应该按照固定的周期来进行迭代开发,每个迭代都应该完成一批需求的开发和测试工作;发布是业务上的事情,应该根据业务需要来规划发布版本和发布时间点,发布工作既可以在迭代结束时进行,也可以在迭代过程中进行。

三.  为何要采用固定的迭代周期

那为何要采用固定的迭代周期呢?或者说,固定的迭代周期能带来什么好处呢?一般来说,固定迭代周期能够带来以下几点好处:

1 固定迭代节奏能大大简化内外部的协作管理

由于迭代周期是固定的,所以需求梳理、迭代计划、迭代评审、迭代回顾等关键事件在时间上都变得有规律。这样一来,团队内外部干系人就可以提前在自己的工作日历上计划这些事件。反之,如果迭代周期是变动的,就必须临时预约内外部干系人来参与这些事件,这就使得内外部协作变得更加复杂。

而对于需要多个团队协作完成的解决方案,如果能够以相同的迭代节奏来统一各团队的开发工作,无疑能大大简化跨团队的依赖管理和解决方案的集成管理。

所以固定迭代周期,能够大大简化内外部的协作管理。

2 固定迭代节奏使得大版本的规划和跟踪变得更加容易

当迭代周期固定且团队相对稳定时,每个迭代能够完成开发和测试的需求量也是相对稳定的,Scrum团队可以度量每个迭代交付的需求量——即“迭代速率”。迭代速率会在一定范围内波动,我们可以统计其平均值。

当我们需要发布一个里程碑版本时,我们可以基于平均迭代速率来规划大概需要花费几个迭代能完成这个发布版本。例如,假定某史诗故事的故事点数是480,而团队的平均迭代速率是100,那么我们就可以规划5个迭代来完成这个史诗故事的开发和交付。

 

图片1

在版本开发中,我们还可以基于迭代来绘制版本燃尽图(如图1所示),以量化跟踪版本的开发进度、平滑工作强度和尽早暴露进度风险。

3 固定迭代节奏有助于团队的产品和过程的持续改进

在迭代节奏固定的情况下,团队可以例行地收集外部反馈意见,并以此来改进自己的产品,以及例行总结本迭代的经验教训,并应用于下一迭代。

在迭代节奏固定的情况下,团队可以度量迭代产能、质量和进度数据,并且以这些数据来牵引团队的改进方向和验证改进效果。

四.  您有何经验

您团队的迭代周期是固定不变的吗?当迭代时间盒已到达而发布内容还差少许没有完成时,您会延长迭代时间吗?如果您的解决方案由多个开发团队协同完成,这些开发团队的迭代节奏是一致的吗?
欢迎在评论区留下您的观点。


推荐阅读
  • 数据输入验证与控件绑定方法
    本文提供了多种数据输入验证函数及控件绑定方法的实现代码,包括电话号码、数字、传真、邮政编码、电子邮件和网址的验证,以及报表绑定和自动编号等功能。 ... [详细]
  • 本文介绍了如何在 MongoDB 中使用正则表达式进行数据排除查询,特别关注了通过 $regex 和 $nin 操作符来过滤特定模式的数据。 ... [详细]
  • 在开发过程中,有时需要提供用户创建数据库的功能。本文介绍了如何利用 .NET 和 ADOX 在应用程序中实现创建 Access 数据库,并详细说明了创建数据库及表的具体步骤。 ... [详细]
  • 本文提供了处理WordPress网站中出现过多重定向问题的方法,包括检查DNS配置、安装SSL证书以及解决数据库连接错误等步骤。 ... [详细]
  • 本文介绍了如何使用递归函数来计算从1到n的所有数字的阶乘之和,并提供了两种不同的实现方法。 ... [详细]
  • Python3爬虫入门:pyspider的基本使用[python爬虫入门]
    Python学习网有大量免费的Python入门教程,欢迎大家来学习。本文主要通过爬取去哪儿网的旅游攻略来给大家介绍pyspid ... [详细]
  • 探讨了在HTML表单中使用元素代替进行表单提交的方法。 ... [详细]
  • 本文详细介绍了如何在 Ubuntu 14.04 系统上搭建仅使用 CPU 的 Caffe 深度学习框架,包括环境准备、依赖安装及编译过程。 ... [详细]
  • JavaScript 跨域解决方案详解
    本文详细介绍了JavaScript在不同域之间进行数据传输或通信的技术,包括使用JSONP、修改document.domain、利用window.name以及HTML5的postMessage方法等跨域解决方案。 ... [详细]
  • 过去我习惯使用百度空间来记录个人的生活琐事,但随着需求的增长,我发现它的功能略显不足,特别是在代码分享和图片管理方面存在诸多不便。因此,我决定寻找一个更适合技术分享的平台,最终选择了博客园。 ... [详细]
  • ASP.NET 进度条实现详解
    本文介绍了如何在ASP.NET中使用HTML和JavaScript创建一个动态更新的进度条,并通过Default.aspx页面进行展示。 ... [详细]
  • 在项目冲刺的最后一天,团队专注于软件用户界面的细节优化,包括调整控件布局和字体设置,以确保界面的简洁性和用户友好性。 ... [详细]
  • Vue CLI 基础入门指南
    本文详细介绍了 Vue CLI 的基础使用方法,包括环境搭建、项目创建、常见配置及路由管理等内容,适合初学者快速掌握 Vue 开发环境。 ... [详细]
  • 本文探讨了如何在 Spring MVC 框架下,通过自定义注解和拦截器机制来实现细粒度的权限管理功能。 ... [详细]
  • JavaScript 页面卸载事件详解 (onunload)
    当用户从页面离开时(如关闭页面或刷新页面),会触发 onunload 事件,此时可以执行预设的脚本。需要注意的是,不同的浏览器对 onunload 事件的支持程度可能有所不同。 ... [详细]
author-avatar
手机用户2502863445
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有