产品战略专家梁宁确认出席AICon北京站,分享AI时代下的商业逻辑与产品需求 了解详情
写点什么

结对编程的经济价值论

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

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

关注

评论

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

你知道Java类什么情况下会被初始化吗?

android 程序员 移动开发

使用Flutter完成10个商业项目后的经验教训

android 程序员 移动开发

使用协程优化你的业务

android 程序员 移动开发

像奥利奥一样的双重安全措施,尽在 Android Oreo

android 程序员 移动开发

全新Android-Material-组件你在用了吗?

android 程序员 移动开发

再见!杭州!再见!阿里巴巴

android 程序员 移动开发

你的产出是别的程序员的10倍,为什么无法获得10倍的工资?

android 程序员 移动开发

图解Pandas的排名rank机制

Peter

Python 数据分析 pandas

凭你的技术“你能做个淘宝、微信吗?

android 程序员 移动开发

做了6年的Android,靠着这份900多页的PDF面试整理,薪资Double!

android 程序员 移动开发

你知道 Android 面试官最喜欢问那些技术点嘛?这篇带你复盘往年面试题!

android 程序员 移动开发

你知道App为什么会Crash吗?

android 程序员 移动开发

你还在为-TCP-重传、滑动窗口、流量控制、拥塞控制发愁吗

android 程序员 移动开发

六年 Android 开发的涨薪之路,从15K涨到30K的面试解析

android 程序员 移动开发

六年老Android开发,突遇公司搬离上海无赔偿,我该怎么办?

android 程序员 移动开发

【Java对象拷贝机制】使用CGlib实现Bean拷贝(BeanCopier)

洛神灬殇

对象拷贝 11月日更 BeanCopier

关于listView(列表)的各种使用方法

android 程序员 移动开发

关于内存泄漏和内存溢出的那些事!

android 程序员 移动开发

删除calico换成flannel后,容器没有正常启动

ilinux

几年开发两茫茫,且看我给你分析ContentProvider

android 程序员 移动开发

删除/var/lib/cni更换网络插件但是kubernetes没有正常启动

ilinux

关于QPS高并发,你了解多少?

android 程序员 移动开发

全网独家盘点Android热修复方案(含阿里巴巴、美团、腾讯等

android 程序员 移动开发

gitlab-runner出现too many connections

ilinux

关于提高编程思维与工作效率的总结

android 程序员 移动开发

加入 node 后 flannel 报错

ilinux

全面解析Android进阶面试常客之Handler

android 程序员 移动开发

关于Android内存泄漏的那些事

android 程序员 移动开发

再见吧 buildSrc, 拥抱 Composing builds 提升 Android 编译速度

android 程序员 移动开发

凭借这938页Android面试题合集,拿下了滴滴、美团、携程

android 程序员 移动开发

你是不是疯了,为什么字节跳动的Offer都不要了?

android 程序员 移动开发

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