5种让冲刺速度更快的方法

简介: 5种让冲刺速度更快的方法

大家好,我是阿萨。有时候不太喜欢把英语翻译成中文,感觉翻译过来后就没法完全表达那个意思了。比如Sprint Velocity。这个词就是今天的主角。


今天先解释sprint速度背后的基本概念,然后提供5种提高敏捷软件开发团队速度的方法。


什么是冲刺速度?


敏捷开发中的速度衡量的是团队在冲刺中可以完成的工作量。它可以用故事点、小时或理想天数来衡量。理想情况下,团队的工作速度越高,他们交付的软件功能就越多,为客户创造的价值也就越多。


Sprint速度可以在Sprint项目管理中用于评估和估计团队生产力。在下面的图表中,sprint 5的效率非常高——团队制作了将近40个故事点。他们的平均速度大约是10个故事点。


平均冲刺速度,通常在最后三个迭代中进行,可以帮助研发领导了解团队可以完成多少工作,并为未来的冲刺计划工作量。


理解敏捷/Scrum速度:关键概念


下面是敏捷方法的基本概念,可以帮助解释速度。


能力


能力不同于速度,因为它衡量的是团队有多少可用的时间,而不是他们完成了多少。一般来说,全职员工每天有6个小时的工作时间(包括休息、开会、收发邮件等时间)。因此,一个拥有10名开发人员的scrum团队,每周工作5天,持续两周,其容量为600小时。


故事点


敏捷团队使用故事点来量化从sprint backlog中构建用户故事或特性所需要的工作量。单位可以因团队而异。例如,一个团队可以决定一个小的故事或bug修复= 1分,一个中等的故事= 2-4分,一个大的故事= 5-8分。从一个sprint到另一个sprint,团队试图估计每个故事“值”多少分,并承诺完成一定数量的故事点,作为sprint的一部分。


完成的定义标准


在敏捷或Scrum项目中,“完成定义”是团队用来确定故事是否已经完成的验收标准。每个团队都有自己的“完成”定义。完成的定义通常要求功能正在工作,并且能够为客户提供价值。它可以包括其他标准,如测试、代码注释、文档、同行评审等。



燃尽图


燃速图(有时称为Scrum速度图)是冲刺速度的可视化。它显示了在sprint的每一天完成计划用户描述的剩余时间。燃尽图的斜率使得预测sprint的结果成为可能——将图扩展到X轴,以查看故事何时完成——提前、准时或晚于计划。



提高冲刺速度——几点注意事项


研发领导的目标之一是随着时间的推移提高敏捷或Scrum团队的速度;用同样的资源取得更多的成就。虽然这是一个重要的目标,但也不能盲目追求:


速度不等于业务价值——团队可能在数年时间里大致交付相同数量的工作特性。他们的速度是一样的,但由于他们的专业水平、团队精神和经验的提高,他们可以在相同的故事点内提供更多的价值和更高的质量。


速度可能以质量为代价——团队被迫交付更多、更快的产品,可能别无选择,只能走捷径,减少单元测试、代码审查、UI和可用性测试等实践。


速度是一个流动的概念——在敏捷中,速度由主观的故事点估计决定,并依赖于完成的定义。仅以速度衡量的团队将有强烈的动机估算更多的点数,或降低国防部的标准。


最重要的是,速度不是最重要的。这是一个重要的指标,但需要谨慎使用,以避免损害敏捷团队的一些最佳品质。


提高速度的技巧1:提高质量


提高质量可能听起来是反直觉的。更高的质量意味着在代码审查、测试自动化和错误修复方面有更大的投资,这使得产生新功能的时间减少。因此,你可能认为提高质量可能会降低速度。


然而,大多数敏捷实践者都认为,对质量的投资总是能在提高生产力方面得到回报。现在种植质量,以后播种优雅、可维护的软件,不浪费时间去追寻过去的错误。在生产中出现问题的团队不能以高速度前进。


提高速度的技巧2:停止在不必要的测试上浪费时间


开发人员花在测试自动化和维护上的时间越来越多。这是一个关键的活动,但也会减慢团队的速度。节省时间和提高速度的一个重要方法是消除不必要的测试。


这里有三个可能是浪费时间的测试的例子。


测试重叠--对于开发人员来说,为一个已经被其他测试部分或全部覆盖的功能编写测试是很常见的。这通常发生在端到端,UI或集成测试中;这些测试很复杂,往往涵盖几个软件组件。开发人员对系统中存在哪些测试以及它们所涵盖的内容没有太多的了解,这不可避免地导致了重叠。任何测试重叠都是对时间和精力的浪费。

测试未使用的功能--在当前生产版本中很少或从未使用的功能,不值得进行额外的测试。即使你发现了错误,它们也几乎不会影响软件的活跃用户。

测试没有变化的代码--代码已经稳定了几个季度,甚至几个星期或几个月,而且没有出现过故障,现在也不可能出现故障。为没有积极工作的代码添加测试可能是一种浪费,因为终端用户已经为你测试了这些代码。

敏捷或Scrum测试方法的一个重要补充是如何通过优先考虑为客户提供最多价值的东西使测试本身变得敏捷。


提高速度技巧3:优化Sprint计划会议


敏捷方法论主张不要提前太多计划,也不要太多细节。然而,一些提前规划可以产生重要的效率。


在你的冲刺计划会议上,一定要提前计划好几个冲刺,对接下来的1-2个冲刺进行详细的任务分解,对接下来的4-5个冲刺的用户故事只做 "存根",让团队了解 "大局"。这种额外的可见性有助于看到依赖性,识别挑战,并提前考虑方法和技术解决方案。


提高速度的技巧4:冲刺追溯和过程回顾


敏捷方法最著名的方面之一是反复的迭代,这有助于团队调整他们的流程、工具和团队工作。但有时被忽视的因素是冲刺回顾,当团队在每次迭代后坐下来讨论什么是成功的,什么是不成功的,以及如何改进。


敏捷团队收集有价值的见解,了解是什么拖累了冲刺--团队内部的合作、中断、技能缺失、与其他团队的接口、工具或技术问题。与产品负责人一起浮现这些问题,并找到切实可行的方法来解决它们,可以极大地提高速度。


重要的是,不要把回顾会议变成一个 "发泄会议",会议中讨论的问题必须被认真对待,领导者必须花必要的时间来解决这些问题。


提高速度的技巧5:增加外部资源或培训


敏捷的跨职能团队的概念使我们认为开发团队是自给自足的单位。他们应该建立工具,创建自动化,编写代码和测试--所有这些都在冲刺的范围内。


在现实中,许多团队发现很难凑齐他们所需的基础设施,同时还能产生新的功能。有些团队缺乏某些技能--例如,DevOps、测试自动化框架,或与新组件集成时引入的不同技术。


当这些问题发生时,管理者应该注意并尝试提供支持,以帮助团队通过保持生产力。


聘请外部或内部咨询,帮助建立所需的基础设施

培训以帮助团队成员掌握新技术

为团队补充拥有急需技能的新成员

购买更好的工具,以帮助解决问题或使团队更快发展。


总结


有很多方法可以提高冲刺速度,我们介绍了五种与几乎所有敏捷组织相关的方法。其共同点是,为了提高速度,我们必须现在就做出努力,"播下种子",以便在未来的冲刺阶段提高生产力。


软件质量可能是影响未来团队生产力和效率的最大因素。一个健全的、经过测试的、可运行的代码库是开发新功能的良好基础。相反,一个有严重测试漏洞的代码库,充满了技术债务,会使未来的开发非常困难。

相关文章
|
10天前
|
数据可视化 安全 持续交付
敏捷方法大比拼:Scrum 适合你,还是 Kanban 更合适?
在数字化时代,企业面临项目管理的诸多挑战,如信息不透明、沟通低效等。Scrum 和 Kanban 作为敏捷管理方法,通过迭代优化和流程可视化提升协作效率与交付速度。Scrum 适合周期性迭代交付,强调短周期冲刺;Kanban 则适用于持续交付,强调任务流动性和灵活性。两者结合可形成 ScrumBan 模式,进一步优化任务处理。 对于数据安全要求高的企业,私有化部署工具(如板栗看板)确保数据自主可控、高安全性及定制化需求,保障业务连续性。选择合适的敏捷方法并结合私有化部署,能有效提升团队协作效率,助力企业在竞争中保持领先。
|
1月前
|
敏捷开发 监控 数据可视化
敏捷开发的6大方法与模型,帮助你快速适应项目需求变化
3分钟了解6种常见的敏捷开发方法,包括Scrum,看板Kanban,极限编程(XP),DSDM、特征驱动开发和水晶法等方法。
84 4
敏捷开发的6大方法与模型,帮助你快速适应项目需求变化
|
4月前
|
搜索推荐 数据可视化 测试技术
迭代式开发:提升软件项目管理效率的关键路径
迭代式开发将软件项目划分为多个短周期,每个周期结束时交付一个可运行的版本,便于快速获取用户反馈并进行调整。与线性的瀑布模型相比,迭代式开发更具灵活性,能更好地应对需求变化。其核心在于小步快跑、快速反馈和持续改进。通过短周期迭代,团队能及时发现并解决问题,提高协作透明度,并根据用户意见不断优化产品。实施时需设定固定迭代周期、建立跨职能团队、采用持续集成与自动化测试,并重视每次迭代后的回顾与优化。尽管面临需求频繁变更、时间管理和团队协作等挑战,但借助现代办公协同工具,迭代式开发能显著提升项目管理效率,确保产品更贴近用户需求。
113 0
|
6月前
|
前端开发 测试技术 UED
【测试效率对比】深入分析:为何UI自动化测试的投资回报率通常低于接口自动化测试?
这篇文章深入分析了UI自动化测试与接口自动化测试的投资回报率(ROI)问题,指出UI自动化测试在某些情况下的ROI并不低,反驳了没有实施过UI自动化就轻易下结论的观点,并强调了实践的重要性和自动化测试在项目迭代中的作用。
126 1
|
7月前
|
数据采集 开发框架 监控
增加软件投入的重要性:提升自动化程度与用户界面设计的价值
增加软件投入的重要性:提升自动化程度与用户界面设计的价值
68 4
|
9月前
|
测试技术 API Apache
5个关键问题让单元测试的价值最大化
本文讨论的单元测试策略来自于实践中遇到的真实问题,作者总结出了5个关键策略问题并给出了解决之道。
|
9月前
|
程序员 测试技术
程序员难以一次性写好代码并持续修复Bug,主要源于软件的高复杂性、需求不确定性、测试局限性和技术能力限制。
【5月更文挑战第11天】程序员难以一次性写好代码并持续修复Bug,主要源于软件的高复杂性、需求不确定性、测试局限性和技术能力限制。复杂的系统易产生意外问题,需求变化导致初始设计难完备,测试无法覆盖所有情况,而技术更新和个体能力差异也会引入错误。因此,持续调试和优化是保证软件质量的关键步骤。
86 0
|
敏捷开发 测试技术
敏捷开发方法管理项目快速迭代,适应变化
Leangoo领歌是一款永久免费的专业敏捷开发管理工具,也提供私有部署。国产软件,提供端到端敏捷研发管理解决方案,包括小型团队敏捷开发,规模化敏捷SAFe,Scrum of Scrums大规模敏捷,涵盖敏捷需求管理、任务协同、进展跟踪、缺陷管理、统计度量等。提供了不同视角的统计,例如:进度统计、燃尽图、团队速率、任务分布、缺陷分布、测试用例分布等等,实时掌握项目状态及进展。
|
前端开发 JavaScript 测试技术
为了降低维护成本(早点下班),我在组件开发中所做的那些优化(偷懒)
组件开发中为了稳定性、健壮性,经常需要为组件编写测试用例,然后还要为了开发者方便使用编写文档,都是非常耗时间的差事。作为一个独立维护组件库的程序员,为了能够降低组件维护的成本(早点下班),我总结了一下自己过去几年为了让组件开发更加高效所做的那些事情(偷的那些懒)。
|
设计模式 监控 架构师
UI 自动化测试应不应该投入?有没有前途?怎样做最明智?
![](https://ceshiren.com/uploads/default/original/3X/4/a/4a59ac8dba217173b9abe7f8e8dd4d661b3a367e.jpeg) 昨天发布了《实战| UI 调度自动化测试平台(基于 Python)》文章之后,看到不少测试同学吐槽自己公司的 UI 自动化测试效果差而维护成本高,就是一件劳民伤财的集体活动。经常也会有同学问