关于程序员开发效率的悖论

程序员看起来应该都是一帮非常高产的人。

你总能看到他们在电脑桌前噼里啪啦的敲着键盘;他们焦急的等待会议结束,希望马上能回去编程。当被问起,他们总是说没有足够的时间编写出这些程序,需要立刻开始编码,这样才能及早完成。

看来,敲代码一定是最重要的事情了,不是吗?

如果一个普通水平的程序员每天能写出50行代码。一个5万行代码的程序将会需要1000人/天来开发。把5万行代码输入电脑里,一个程序员每天能录1000行,也就需要50人/天。

那么,剩下的950天这些程序员都在干什么?

在搞清楚这个问题前,让我们先看一些简单的资料。Capers Jones研 究了数万个软件项目,他通过比较其中的各种软件开发方法(RUP,极限编程,敏捷开发,瀑布开发等等)和各种编程语言,发现,一个程序员每月平均写出的代 码大概是325行到750行,比我们上面说到的每月1000行还要少。就算是程序员不是每天只写50行代码,但下面两点是清楚的。

开发方法的差异不能解释程序员代码生产量上的不平衡

使用的编程语言无关程序员代码生产量上的不平衡
screenshot

实际情况是,只有很小一部分的程序员的时间是花在写代码上的。如果一个程序员的所有时间都在敲代码,那他一定是在尝试不同的代码组合,直到找到好用的代码组合。

更准确的说法是,找到看起来是符合需求的“代码组合”——如果测试人员或业务分析师不来告知说这些代码是有问题的。

这 就是为什么在把手放到键盘上前喜欢先计划代码如何写的程序员会比其他程序员效率高的原因。事实上,不仅仅只有很少数的程序员在写代码前先计划,很多即使有 多年编程经验的老程序员也不知道这个道理。一项持续40年的研究表明,程序员的开发效率并不会随阅历的增加而增加。(参考No Experience Required!)

多年的编程阅历并不是必然导致高开发效率

十分有趣的是,各种强调编码前先计划的软件开发方法论都已经存在很长时间了。比如Personal Software Process (PSP),创始人Watts Humphrey根据统计数据说:

PSP能提高21.2%的生产效率和31.2%的质量水平
screenshot

像这样优秀的实践方法有很多。总之,就像作家动笔前先要构思好文章的结构和内容一样,程序员在按动键盘前如果不先琢磨一阵,很可能发生的情况是他的开发效率不会很高。

文章转载自 开源中国社区 [http://www.oschina.net]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值