A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 黑妞~ 金牌黑马   /  2014-3-31 10:20  /  2261 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

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

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

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

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

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

  1、开发方法的差异不能解释程序员代码生产量上的不平衡
  2、使用的编程语言无关程序员代码生产量上的不平衡

           

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

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

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

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

  十分有趣的是,各种强调编码前先计划的软件开发方法论都已经存在很长时间了。比如PersonalSoftwareProcess(PSP),创始人WattsHumphrey根据统计数据说:
 
PSP能提高21.2%的生产效率和31.2%的质量水平

                  

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

  [英文原文:TheProgrammerProductivityParadox]

8 个回复

倒序浏览
学习了        
回复 使用道具 举报
没有看明白,我理解能力再创新低,悲剧。。。
回复 使用道具 举报
早起的虫儿被鸟吃
回复 使用道具 举报
构思很重要
回复 使用道具 举报
成竹在胸下笔如有神
回复 使用道具 举报
先有思路很重要
回复 使用道具 举报
就像写文章,每个人的思路角度都不一样。小时候写作文,我总是憋到脸肿。。。
回复 使用道具 举报
先整理思路,条理清晰
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马