写点什么

敏捷开发下平衡质量和进度

  • 2014-08-21
  • 本文字数:1744 字

    阅读完需:约 6 分钟

敏捷软件开发团队必须确保他们开发出来的产品质量能够满足要求,管理团队也经常希望开发团队能够提高速度以实现为客户提供更多的功能。本篇文章中多个作者探讨了质量和速度之间的关系,并提出了一些既能提高质量也能加快进度的方法。

Bob Galen 曾今在他的博客中发表了读懂我的唇语 - 敏捷并不快速的文章,在其中写到了追求软件开发进度下质量的重要性。

敏捷是一个“质量游戏”,如果你以正直,承诺以及平衡的心态来玩这个游戏的话,那么结果将会是非常好的“速度游戏”,但它(速度)却并非没有代价。。。

如果你无法玩转这个质量游戏,你所采纳的敏捷开发方法甚至比你以前使用的开发方法更慢。

团队必须致力于把工作在一个迭代中完成,这也就意味着这些工作需要满足定义工作完成的所有标准。

很多敏捷团队允许返工 – 修复漏洞,完成测试自动化,重构,或者设计不良导致 sprint 迭代的延误。即使大多数的敏捷工具允许拆分用例故事以捕捉在 sprint 迭代中已经完成的工作对比延期的工作,我也还是认为这给团队传达了错误的信息,让他们认为工作不在一个 sprint 迭代内完成是可以接受的。

读懂我的唇语 – 并不是把所有事情做完,做完,做完!

正如 Bob 解释的:一个组织不应该总是力图让进度变得更快,而应该更加注重质量。

因此,下一次当你听到有人在激情澎湃的谈论着敏捷代表了更快的速度时,请打断他们,尝试向他们解释敏捷并不是一个“速度游戏”,而是应该强调敏捷是一个“或许能够快速运转的质量游戏”。

Tim Ottinger 曾今写过关于敏捷团队进度的 14 个奇怪观点,其中一个观点中就提到了质量和速度之间的关系。

尽管大家通常会降低质量要求以求在较短时间内尽快完成工作,但是如果团队所开发的代码质量不高的话,经过全部 sprint 迭代后的进度最终都还是会被降低。

Stephen Haunts 在他的题目为进度并不是目标或者目的博客帖子中,描述了当管理者设定团队的进度目标后对质量会产生什么影响:

(…)为了增加交付的功能点数目以满足绩效目标,团队会牺牲掉系统的质量,但从长远来看这样最终还是会降低团队的进度,并且会引入技术隐患。敏捷团队最好关注正在开发系统的质量与流程过程(持续交付和集成等等),以及负责开发系统的团队成员本身。

软件开发者必须在进度和质量之间掌握平衡,正如 Blake Haswell 在文章什么是代码质量中解释的那样:

虽然经常会有很多的外部压力向进度方面倾斜,但是如果你不够重视质量的话,进度最终还是会趋于缓慢以及停滞,以至最终整个项目走向颠覆。考虑到一个项目的代码质量决定了它能够在多大程度上适应需求的变化,一个可以持续改进的事情是你需要花费一部分时间来优化自己项目的代码质量。

Blake 提供了一个可以用来检查代码质量的属性列表:

  • 可理解性: 代码需要在各个层面上能够被容易地理解。理想情况下,软件应该非常简单,并没有非常明显的缺陷。
  • 可测试性: 代码需要被编写的非常容易被测试。
  • 正确性: 代码需要满足功能和非功能性的需求。
  • 有效性: 代码需要有效的使用系统资源(内存,CPU,网络连接,等)。

Hugo Baraúna 在他的博客文章名为内部质量低下软件的症状中解释了软件是如何因为变更而“变得更糟”的,最终导致质量低下并且降低进度。

假如你正在领导一家创业公司的技术或者产品团队,你是首席技术官,并且已经推出了你们产品的第一个版本,做的还挺成功的。你们的业务模型已经得到了验证,现在你们正处于快速发展期。这真是太棒了!但这也是有代价的,它带来了一系列新的挑战。

你们产品的第一个版本工作的很好,但是代码库却无法满足持续发展的要求。或许你的团队进度并没有像以前那样好了,团队成员一直在抱怨代码的质量问题,首席执行官和产品经理想要一些新的功能,但你现在代码规划根本无法满足业务的需求。

他提供了一个指示质量低下的症状列表,这个列表能够帮助你来决定是否需要重写或者重构:

  • 所有事情都很艰难
  • 进度慢
  • 测试套件运行缓慢
  • 无法避免的缺陷
  • 你的团队是消极的
  • 知识缺乏共享
  • 新开发人员成长周期太长

你又是如何平衡质量和进度的呢?

查看英文原文 Balancing Quality and Velocity in Agile


感谢邵思华对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-08-21 00:303011

评论

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

Wolfram Mathematica for Mac(高级数学及符号运算软件)

晨光熹微

中烟创新为千行百业客户免费部署DeepSeek,让AI应用遍地开花

中烟创新

重塑法律服务新生态,AlphaGPT筑牢法律AI数据安全防线

科技汇

AI赋能灯塔低代码平台,AI应用落地“加速器”

中烟创新

ISO 50004 标准深度解读:赋能企业能源管理升级的实用指南​

开源能源管理系统

开源 能源管理系统

MyEMS开源能源管理系统核心代码解读013

开源能源管理系统

开源 能源管理系统

中烟创新全系产品接入DeepSeek,数智化应用场景进入深度推理时代

中烟创新

苏超如何带火了5G-A?

脑极体

AI

SketchUp Pro 2020 for Mac(草图大师)

晨光熹微

ColorWell for Mac(调色板软件)

晨光熹微

夏日,户外LED显示屏如何降温?

Dylan

广告 LED LED display 户外LED显示屏 LED屏幕

在AI技术唾手可得的时代,挖掘真实需求才是核心竞争力

qife122

开发者工具 AI助手

揭秘字节跳动内部流量调度与容灾实践【下】

火山引擎边缘云

流量 DNS 调度 调度任务 流量路由

MyEMS开源能源管理系统核心代码解读014

开源能源管理系统

开源 能源管理系统

Murus Pro for mac(网络安全防火墙工具)

晨光熹微

贝锐向日葵、ToDesk、网易UU远程、RayLink,四款远控软件暑假用哪款?

科技热闻

低代码平台:从热潮到现实,如何破解复杂企业应用难题?

中烟创新

体验KWDB及其测试组件kwdb-tsbs

KaiwuDB

数据库

成功的DApp经济模型中治理代币与功能代币的协同机制解析

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 公链开发代币开发

吉他初学者入门教程:Guitar Pro是如何帮助我从入门到大成的?

阿拉灯神丁

五线谱 吉他学习 吉他谱 Guitar Pro8 乐谱制作

用友BIP企业AI全栈云:为中企出海筑牢全球化运营底座

用友BIP

等保测评常见的安全产品

等保测评

Python语言——万数据插入测试

KaiwuDB

数据库

深度解析 DApp 开发:从技术架构到商业落地的全链路解决

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

SketchUp Pro 2024 for mac(su草图大师 专业的3D建模软件)

晨光熹微

MySQL为什么有时候会选错索引?

电子尖叫食人鱼

MySQL 数据库

iCourt重启“律师大航海”计划,2024年美国行扬帆起航

科技汇

数智先锋 | Bonree ONE助力国金证券构建数智一体化可观测平台

博睿数据

Studio One 7 Pro for mac(音乐创作编辑软件)

晨光熹微

什么是等保一体机?

等保测评

灯塔低代码开发平台与DeepSeek深度融合,共筑AI编程的星辰大海

中烟创新

敏捷开发下平衡质量和进度_架构_Ben Linders_InfoQ精选文章