写点什么

敏捷是如何使你跑得更快?

  • 2013-03-11
  • 本文字数:1337 字

    阅读完需:约 4 分钟

对于为何采用敏捷软件开发这个问题,企业经常提到的原因之一是希望能够更快地交付软件。研究表明敏捷项目能够进行地更快,例如《敏捷项目的成功证据》一文中描述的哥伦布市敏捷工作效率基准项目。

在博文《谁说敏捷项目不能更快一些》中,Matthew Heusser 分享了他在Agile Testing Days 大会上的讨论:

2012 年 11 月在德国波茨坦举行的 Agile Testing Days 大会上,《敏捷测试:实用指南》的作者 Lisa Crispin 和 Janet Gregory 大胆声称“敏捷意味着更快”是无稽之谈。

会后,Janet Gregory 向 Matthew Heusser 解释了她这么说是什么意思:

她说,敏捷的关键不是速度。速度的提升可能是附带产生的结果,但是不是一开始就会这样。向敏捷转型这个过程会托你后腿,至少短期内如此。并且这个期限不是一两个礼拜,它可能有一两年之久。

Matthew 提供了为何他认为敏捷可以更快的几个论据。他讲解了如何构建正确的事情,忽略那些不值一提的需求以便节省时间。使用敏捷的另外一个原因是“老办法也不快”。

对比敏捷团队和传统团队,前者一年中无法完成的事情,后者可能能够完成,但这么比较他们不合适。一年中,传统团队也许能够完成 12 个半需求,但却搞得一团糟最终啥也没有发布。

他在博文结尾解释了为何不同意这个观点,并阐述了对敏捷能够帮助团队更快交付软件的看法。

还遗留一个问题:是否是更快了?Crispin 和 Gregory 可能认为这个无所谓,如果只关注短期的进度,长远看来这么做只会导致过度简化,带来的是痛苦和低效。我认为团队能够在流程改进过程中尽量杜绝浪费,工作效率也会随之提升。

《让敏捷跑得更快》一文中,Chris Turner 讨论了敏捷项目可能变慢的一些原因。他描述了经常遇到的四个原因,并给出了一些处理意见。

  • 不合适的人:从团队中剔除那些不遵循良好工程规范或是正在把事情搞复杂的人。
  • 先定义流程:建立可以开放的沟通、自组织、授权的团队。
  • 使用了不当的技术:让团队有权决定使用什么技术,如果该技术妨碍了发布,允许团队重新做选择。
  • 架构太复杂:重构,使软件尽可能保持简单。

Neil Killick 在他的博文《交付软件最快的方式是保持可持续的节奏》描述了为何让敏捷团队加快交付速度会给软件开发拖后腿。他讲诉了关于敏捷团队的一个故事,在为期两周的Sprint 中该团队平均能够交付10 个用户故事,但待交付的用户故事却增加了。

现在想象一下,我们让团队每个Spring 只完成一个用户故事。那么,即便不能打包票,我们也能相当确信能够交付这个用户故事。我们还能相当肯定可以完成得很出色。

现在我们要求这个团队每个Sprint 交付两个用户故事。即使该团队极有可能能够交付这个2 个用户故事,成功的概率也要比只要求团队每个Sprint 交付一个用户故事时要低一些。所以我们就有了一点不确定性。

现在再想象一下,合同大限将至,我们还在努力赶工,是不是该加把劲了。所以我们要求预计能够交付10 个用户故事的团队交付12 个用户故事(现在我们超负荷了)。甚至是14 个?要求团队步伐越快(或者说是越糟),交付软件时无法预料的事情就会越多,最后交付的软件很可能质量更差。

他建议允许团队保持一个可持续的节奏:

让团队找到一个合适的平衡点、在他们能力范围内交付高质量软件,那么就创建了一个成功的软件开发周期。

查看英文原文 How can Agile make you Faster?

2013-03-11 03:142689
用户头像

发布了 27 篇内容, 共 91934 次阅读, 收获喜欢 4 次。

关注

评论

发布
暂无评论
发现更多内容

分享 7 个不错的 AI 工具

devpoint

人工智能 AI openai

选购LED显示屏时需要注意8个技术参数

Dylan

LED显示屏 户外LED显示屏 led显示屏厂家

直播交友一对一视频语音APP项目系统架构和模式分析(成品1对1源码)

山东布谷科技胡月

视频语音直播app开发 语音直播交友系统搭建 社交app开发 1v1语音系统搭建 视频社交APP开发

盘点毫末智行AI DAY:智算中心成立、六大闭环、MANA五大模型...助力毫末智能驾驶产品快速迭代

科技大数据

【Redis技术探索】「数据迁移实战」手把手教你如何实现在线+离线模式进行迁移Redis数据实战指南(在线同步数据)

码界西柚

redis 数据同步 1月日更 数据同步工具 RedisShake

使用 App Store Connect API 批量创建内购商品

37手游iOS技术运营团队

AppleParty 苹果派 App Store Connect API 批量创建内购IAP 批量上传 IAP

OpenTelemetry日志体系

骑牛上青山

Java 日志 log 调用链 OpenTelemetry

Button(按钮)与ImageButton(图像按钮)

芯动大师

Android Studio button imagebutton

如何让你的架构设计应用做到高内聚、低耦合?

风铃架构日知录

Java 程序人生 后端 架构设计 后端开发

社交视频直播一对一交友APP源码之Android如何打包APP

山东布谷科技胡月

语音直播app开发

干掉 “重复代码”,这三种方式绝了!

风铃架构日知录

Java 程序员 码农 工程师 代码

高并发系统设计的15个锦囊

小小怪下士

Java 程序员 系统设计 高并发

MySQL字符集和排序规则详解

C++后台开发

MySQL 数据库 中间件 后端开发 C++开发

分享 7 个VUE项目用得上的JavaScript库

devpoint

JavaScript Vue 前端开发 前端开发框架

EditText(输入框)详解

芯动大师

android edittext 输入框设计 文本框(TextView)

数字人民币创新浪潮来袭,支付机构如何“乘风破浪”?

易观分析

金融 数字人民币 数字支付

如何告别丑陋判空?一个Optional类就能搞定!

风铃架构日知录

Java 程序员 程序人生 后端 码农

用 SwiftUI 实现 AI 聊天对话 app - iChatGPT

37手游iOS技术运营团队

ios SwiftUI openai ChatGPT

Smart Finance成为火必投票竞选项目,参与投票获海量奖励

鳄鱼视界

如何使用Gradle构建一个多模块项目?

风铃架构日知录

Java 程序员 后端 码农 架构师

你知道微服务架构中的“发件箱模式”吗

JAVA旭阳

Java 架构

使用 OpenAI ChatGPT 进行了编码尝试

devpoint

人工智能 openai ChatGPT

线上压测

agnostic

极客时间运维进阶训练营第十周作业

老曹

2023-01-06:给定一个只由小写字母组成的字符串str,长度为N, 给定一个只由0、1组成的数组arr,长度为N, arr[i] == 0表示str中i位置的字符不许修改, arr[i] ==

福大大架构师每日一题

算法 rust Solidity 福大大

8 个很酷的 GitHub 技巧

devpoint

GitHub vscode 开发技巧

TSDB助力井下位置服务

CnosDB

数据库 IoT 时序数据库 开源社区 infra

敏捷是如何使你跑得更快?_架构_Ben Linders_InfoQ精选文章