写点什么

通过测试驱动开发和结对编程提高生产水平

  • 2009-05-28
  • 本文字数:1116 字

    阅读完需:约 4 分钟

“测试驱动开发”和“结对编程”是最著名的两个敏捷实践,然而许多敏捷团队并没有采用。通常大家找借口说“太忙”,没时间采用测试驱动开发和结对编程这样的实践;实际上,他们的意思是追求高质量的代码会降低生产效率。在这里,Mike Hill 解释了这种逻辑有多么错误。

Mike 告诉我们,从本质上讲,想要“更快”,必须“更好”

你牺牲质量,能换来更多的功能吗?不仅不是这样,而且恰恰相反:你追求的效率越高,你越应该提高内部质量标准。

想要提高生产水平,首先提高内部质量。

然后他告诉我们为什么会这样:

所以,为什么会这样呢? 1. 因为内部质量和外部质量并不是一回事儿。
2. 因为恰恰就是昨天的产品质量唯一决定了今天的生产水平。
3. 因为打字现在不是,永远也不是编写代码的瓶颈所在。

Mike 随后展开叙述这 3 个理由。首先,他用单词“质量”阐述外部质量内部质量的区别,外部质量可以认为是产品有多少功能,而内部质量指的是实现这些功能的代码。他这样加以区分,是为了说明想缩短市场投放时间,可以降低外部质量,但是决不能降低内部质量。

接下来,Mike 描述了“昨天怎样决定今天”,或者说已有代码的内部质量何以影响当前的生产效率。

一整天,每当你开始动手,都要依赖已有的代码。要研究的每一行代码会降低你的速度。每一个对外开放的依赖关系会降低你的速度;每一个糟糕的变量名称会降低你的速度;每一个设计时的错误决定,不论大小,都会降低你的速度。 如果你想尽可能快地工作,就需要编写干净整洁的代码。

最后,Mike 对这个常见的误区进行了反驳:即很多人认为结对编程和测试驱动开发由于“只有一半的人打字,只有一半代码是产品代码”,所以会降低产出(生产效率)。为此,Mike 列举了“编程”时常见的 11 种活动,然后说道:

请注意往电脑里打字只占列表很小的一部分,因为编程时真正有难度的是思考,而不是打字。列表中所有其它内容(可能扔东西要除外)都是关于思考的,而不是打字。 测试驱动开发可以提高生产效率,因为它有助于思考。它避免了你编写代码时从头再来和对功能的画蛇添足,减少了代码的反复研究和调试。结对编程由于同样的原因也会提高你的生产效率。两个开发者在一块并不能像分开打字那么快,但是我们并不担心:软件开发的瓶颈是思考 [不是打字],而结对编程和测试驱动开发都能提高思考效率

Mike 概括总结了 3 个建议,可以提高团队的生产效率:

如果你想提高团队的生产效率,就照这 3 条做:

  1. 修改任何代码前先编写一个会失败的简短测试
  2. 遵循“不结对,不干活”的原则
  3. 所有人要认识到内部质量的重要性

如果你知道有人(或者就是你自己)认为他们“没有时间结对或者测试驱动开发”。希望 Mike 的文章能够有所帮助。

查看英文原文 How TDD and Pairing Increase Production

2009-05-28 21:242943
用户头像

发布了 37 篇内容, 共 13.3 次阅读, 收获喜欢 5 次。

关注

评论

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

tidb之旅——资源管控

TiDB 社区干货传送门

新版本/特性解读 7.x 实践

活动预告|7月29日 Streaming Lakehouse Meetup·北京站

Apache Flink

大数据 flink 实时计算 信息推送

TiKV集群断电(灾难)恢复过程记录

TiDB 社区干货传送门

6.x 实践

tidb之旅——dm工具篇

TiDB 社区干货传送门

迁移 安装 & 部署 6.x 实践

这10个强大的CSS属性,每个前端都要懂

伤感汤姆布利柏

TiDB v7.1.0 资源管控功能是如何降低运维难度和成本-实现集群资源最大化?

TiDB 社区干货传送门

实践案例 版本测评 性能测评 应用适配 7.x 实践

TiDB v7.1.0 跨业务系统多租户解决方案

TiDB 社区干货传送门

实践案例 新版本/特性解读 应用适配 HTAP 场景实践 7.x 实践

tidb之旅——tidb架构选择

TiDB 社区干货传送门

迁移 安装 & 部署 6.x 实践

国产替代:国有企业数智化转型的挑战与机遇

用友BIP

国产替代

AI推理实践丨多路极致性能目标检测最佳实践设计解密

华为云开发者联盟

亿级日活业务稳如磐石 华为云发布性能测试服务CodeArts PerfTest

云计算 软件开发 性能测试 华为云

# 文盘Rust -- FFI 浅尝

TiDB 社区干货传送门

开发语言

推荐!十个平台工程工具助力开发人员提升效率和体验

SEAL安全

架构成长之路 | 图解分布式共识算法 Paxos 议会协议

阿里技术

分布式 PAXOS Paxos 议会协议

干货满满!阿里、京东、网易等多位专家力荐的高并发编程速成笔记

小小怪下士

Java 编程 程序员 高并发

阿里云瑶池数据库出席2023可信数据库发展大会,PolarDB荣获多项评测证书

科技热闻

aws上采用tidb和原生使用aws rds价格的比较。兼数据分析性能的测试

TiDB 社区干货传送门

TiDB 底层架构 性能测评 7.x 实践

TiDB 7.1.0 LTS 特性解读 | 资源管控 (Resource Control) 应该知道的 6 件事

TiDB 社区干货传送门

版本测评 新版本/特性解读 7.x 实践

【HDC.Cloud 2023】华为开发者大会2023来了!这份PaaS参会指南请查收!

云计算 华为云 华为开发者大会2023

温州是几线城市?有几家正规等保测评机构?

行云管家

等级保护 等保测评机构 温州

华为开发者大会:软件开发小白的华为云云上初体验

云计算 软件开发 华为云 华为开发者大会2023

tidb之旅——生成列

TiDB 社区干货传送门

新版本/特性解读 7.x 实践

简单三步完成离线升级TIDB v7.1(服务器无互联网环境)

TiDB 社区干货传送门

版本升级 7.x 实践

成都堡垒机采购选择哪家好?具体功能有哪些?具体多少钱?

行云管家

网络安全 信息安全 成都 堡垒机

如何使用 NFTScan NFT 数据创建一个 ERC-6551 账户?

NFT Research

ERC721 NFT\

索引加速功能真能提升10倍吗?--TiDB V6.1.0-V7.1.0建索引速度对比

TiDB 社区干货传送门

版本测评 性能测评 7.x 实践

云数据库是杀猪盘么,去掉中间商赚差价,aws数据库性能提升 10 倍!价格便宜十倍。

TiDB 社区干货传送门

数据库架构设计 7.x 实践

TiDB 7.1 资源管控验证测试

TiDB 社区干货传送门

版本测评 新版本/特性解读 7.x 实践

通过测试驱动开发和结对编程提高生产水平_研发效能_Mike Bria_InfoQ精选文章