写点什么

结对编程的经济价值论

  • 2009-06-25
  • 本文字数:1088 字

    阅读完需:约 4 分钟

“究竟为什么我们要使用两个人来同时做同一件事情呢?”这往往是初次听说

结对编程的人的第一反应。实际上,他们觉得结对编程使写代码的成本翻了一倍。Dave Nicollete 用数字说话,告诉大家结对编程是如何省钱,而不是浪费钱的。

由于错误地认为编程主要就是打字,结对编程的经济价值论也就经常被误解。事实上,当然,大部分的编程其实就是在思考,结果往往会做出很多糟糕的决定,或者犯下很多的错误——这些错误最终还得由开发人员(以及他们的公司)买单。

这就是结对编程价值论建立的基础,也是它为什么难以量化的原因。 Dave Nicolette 在他最近的一篇文章中是这么概述的:

结对的价值主要体现在手把手纠正,从而把错误扼杀在萌芽中。手把手纠正涉及面小,而且能跟结对编程的工作流程无缝结合起来,通常 甚至都感觉不到,很自然…带来的价值就是能够很方便地进行检查,从而防止在未来某个时间不得不返工的情况出现…要想观测或者量化实施后的效果并不 简单,因为坏的结果从来没有发生过,你也就没法比较了。

所以,结对的价值体现在节约了未来的

时间,“时间就是金钱”。但是

值多少钱呢?还是在这篇文章中,Dave 试着向大家阐述了几个观点来回答这个问题。

在最近的一次结对中,Dave 一直记录着结对伙伴指出搭档错误以及关于设计方面的讨论的时间。然后,他们给出这些事情为将来省下了多少时间,再利用这些信息继续做进一步的计算:

在 Alistair Corkburn 的早期著作中,他曾经计算过一个 IT 工作者的成本要每分钟 2.1 美元…在我们的结对过程中,我们进行了 2 次简短的关于设计的讨论,随 之做出了小的重构。根据我们的计算,这次重构为未来的维护工作节省出了 4 小时。这就意味着大约 2.1 x 120 = 252.00 美元。如果我们共发现了 12 个小错误,平均每个错误节约了 30 秒的调试时间,那么这就值.5 x 2.1 x 12 = 12.60 美元。总共的话,我们为公司每 90 分钟省下了 276.60 美元,或者说一小时省下大概 180.00 美元。

某公司有个小 规模的 IT 部门,总共 40 个开发人员,分散在几个 XP 团队。我们假设开发人员每天结对 5 个小时,那么一共每周结对时间为 20 对 x 5 小时 x 一周 5 天 = 500 小时。假设每个结对每小时节省 180 美金,那么平均每周节约 90000 美元。如果全年都把节约率控制在这个水平线上下,那么团队一年工作 50 周(这 是美国,假期不长),公司就会因为开发团队的结对编程,一年节省 450 万美元。

450 万美金呢,对一个只有 40 个开发人员的公司呀。但 Dave 也不得不承认,这只是从一次结对编程中获取的初步计算,所以并没有科学性,但这仍然可以引发大家的思考。

你怎么看呢?

查看英文原文: A Dollar Value On Pair Programming

2009-06-25 07:013104
用户头像

发布了 114 篇内容, 共 34.2 次阅读, 收获喜欢 2 次。

关注

评论

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

Arbitrum 推出 AnyTrust 链,满足生态项目多元需求

TinTinLand

GitHub标星1w+超牛的微服务项目,开发脚手架

冉然学Java

Java 编程 程序员 面试 Spring Cloud

彻底清除本地的MySQL数据库

Java学术趴

7月月更

跨域问题之Spring的跨域的方案

急需上岸的小谢

7月月更

Flutter 实现爱心三连动画效果

岛上码农

flutter ios 安卓 移动端开发 7月月更

PPT制作

逝缘~

PPT 7月月更

Substrate 技术及生态6月大事记 | Polkadot Decoded 圆满落幕,黑客松获胜项目为生态注入新生力量

One Block Community

【C语言】进阶指针Two

謓泽

7月月更

面试官灵魂暴击:如何保障消息100%投递成功及保证消息的幂等性?

冉然学Java

Java后端 #技术干货#

TCP拥塞控制详解 | 4. 控制算法

俞凡

算法 网络 TCP拥塞控制

Qt|实现边加载数据边显示页面

中国好公民st

qt 7月月更

Java 技术栈中间件优雅停机方案设计与实现全景图

bin的技术小屋

dubbo 优雅停机 netty SpringFramework Graceful Shutdown

第三届中国工业互联网大赛在杭州闭幕 第四届大赛即日启动

科技热闻

Java基础:IO流最全汇总

百思不得小赵

io Java’ 7月月更

微信小程序骨架屏的应用与实现步骤

猪痞恶霸

微信小程序 前端 7月月更

ThreeJS 动画之 Noisy Lines

南城FE

CSS 前端 动画 7月月更

重新签名 iOS 51启蒙英语 App

贾献华

7月月更

携手共建安全生态|海泰方圆正式加入申威产业发展联盟

电子信息发烧客

什么时候会触发fullGC

技术小生

JVM GC 7月月更

MySQL灵魂16问,你能撑到第几问?

了不起的程序猿

Java MySQL 面试题 java程序员

去中心化的底层是共识——Polkadot 混合共识机制解读

One Block Community

【玩转 RT-Thread】I2C 内核

攻城狮杰森

I2C协议 7月月更 RT-Thread

深入理解Linux 进程管理之CFS负载均衡

C++后台开发

Linux 负载均衡 C++后台开发 进程管理 C++开发

DFINITY 整合技术解读——阈值ECDSA 实现 IC 与比特币、以太坊整合

TinTinLand

机器学习-异常检测

AIWeker

机器学习 异常检测 7月月更

Cgroup memory子系统

总想做点什么

基于STM32+华为云IOT设计的智能家居控制系统_语音+环境检测

DS小龙哥

7月月更

你以为,设计一个RPC框架很简单?应该从哪入手,深入剖析? Java架构新资讯

了不起的程序猿

Java RPC java程序员 java 编程

PoS机制随机性解读,波卡的随机性原理如何运作?

One Block Community

新星计划Day2【JavaSE】 枚举类与注解

京与旧铺

7月月更

wxPython界面设计初体验-值得学习的 Python GUI 库 (2)

迷彩

GUI 7月月更 WxPython

结对编程的经济价值论_Java_Mike Bria_InfoQ精选文章