写点什么

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

  • 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:142263
用户头像

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

关注

评论

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

Druid 加载 Kafka 数据时通过控制台来提交一个 supervisor

HoneyMoose

oeasy教您玩转vim - 9 - # 换行插入

o

数据探索

南湖职业技术学院机械狗

模块四作业

俊杰

架构实战营

【Vue2.x 源码学习】第二十八篇 - diff算法-问题分析与patch优化

Brave

源码 vue2 8月日更

番外2. OpenCV 中摄像头捕获与视频处理与常见问题解决方案

梦想橡皮擦

8月日更

Druid 加载 Kafka 数据时直接提交一个 supervisor

HoneyMoose

Java 操作 Office:POI之word图片处理

程序员架构进阶

Java 架构 自我提升 实战问题 8月日更

架构实战营-学习总结

泄矢的呼啦圈

架构实战营

Druid 加载 Kafka 数据后查询和清理数据

HoneyMoose

【Flutter 专题】75 图解基本 TabBar 标签导航栏 (一)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 8月日更

Vue进阶(十三):MOCK

No Silver Bullet

Vue Mock 8月日更

十大排序算法--堆排序

Ayue、

排序算法 8月日更

花几天时间肝了一个在线制作词云图网站

Python研究者

Python 可视化 词云图 Python JSON 8月日更

北鲲云超算接入GPUA100,让AlphaFold2轻松使用

北鲲云

Druid 使用 Kafka 数据加载教程——下载和启动 Kafka

HoneyMoose

Druid 使用 Kafka 将数据载入到 Kafka

HoneyMoose

oeasy教您玩转vim - 7 - # 从头插入

o

如何从 0 到 1 设计 B 端产品?

蒋川

后台开发 产品开发 后台 后台管理系统 tob产品

kubernetes入门:harbor个人私有仓库傻瓜式搭建

小鲍侃java

8月日更

模块4作业

青鸟飞鱼

Go并发之CSP并发模型、协程并发

Regan Yue

协程 CSP Go 语言 8月日更

netty系列之:Event、Handler和Pipeline

程序那些事

Java Netty nio 程序那些事

SpringCloud微服务日志经kafka缓冲写入到ELK

Rubble

kafka Spring Cloud ELK 8月日更

学习总结

青鸟飞鱼

oeasy教您玩转vim - 8 - # 追加文本

o

软通动力 OpenHarmony 师资培训班隆重开启,聚焦高校教师赋能

开放原子开源基金会

FastApi-07-查询参数校验

Python研究所

FastApi 8月日更

🏆【Java技术之旅】「编译器专题」重塑认识Java编译器的执行过程(消除数组边界检查+公共子表达式)!

洛神灬殇

Java 编译器 8月日更 JIT编译器

Vue进阶(十四):config/index.js 配置文件详解

No Silver Bullet

Vue 8月日更 配置文件

阿里云-云开发平台存储篇——给应用接上后端存储能力

若尘

阿里云 云开发 8月日更

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