新足迹

 找回密码
 注册

精华好帖回顾

· 短遊西澳~~ 浪漫的河邊小屋, 陰森的石群, 醉人的長堤~~ (2015-3-22) silvia · 溜溜达达 Vivid Sydney 2014 采风 (多图) (2014-6-8) feihong
· 澳洲情缘---六弟(下) (2007-7-15) 安远翔 · 我的悲情世界杯 (2010-7-13) Gelen
Advertisement
Advertisement
查看: 2154|回复: 25

关于程序员开发效率的悖论 [复制链接]

发表于 2014-4-1 14:24 |显示全部楼层
此文章由 鱼羊鲜 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 鱼羊鲜 所有!转贴必须注明作者、出处和本声明,并保持内容完整
关于程序员开发效率的悖论oschina 发布于: 2014年03月28日 (44评)
分享到

[url=]新浪微博[/url][url=]腾讯微博[/url]
[url=]收藏[/url]+85




程序员看起来应该都是一帮非常高产的人。
你总能看到他们在电脑桌前噼里啪啦的敲着键盘;他们焦急的等待会议结束,希望马上能回去编程。当被问起,他们总是说没有足够的时间编写出这些程序,需要立刻开始编码,这样才能及早完成。
看来,敲代码一定是最重要的事情了,不是吗?
如果一个普通水平的程序员每天能写出50行代码。一个5万行代码的程序将会需要1000人/天来开发。把5万行代码输入电脑里,一个程序员每天能录1000行,也就需要50人/天。
那么,剩下的950天这些程序员都在干什么?
在搞清楚这个问题前,让我们先看一些简单的资料。Capers Jones研 究了数万个软件项目,他通过比较其中的各种软件开发方法(RUP,极限编程,敏捷开发,瀑布开发等等)和各种编程语言,发现,一个程序员每月平均写出的代 码大概是325行到750行,比我们上面说到的每月1000行还要少。就算是程序员不是每天只写50行代码,但下面两点是清楚的。
  • 开发方法的差异不能解释程序员代码生产量上的不平衡
  • 使用的编程语言无关程序员代码生产量上的不平衡

实际情况是,只有很小一部分的程序员的时间是花在写代码上的。如果一个程序员的所有时间都在敲代码,那他一定是在尝试不同的代码组合,直到找到好用的代码组合。
更准确的说法是,找到看起来是符合需求的“代码组合”——如果测试人员或业务分析师不来告知说这些代码是有问题的。
这 就是为什么在把手放到键盘上前喜欢先计划代码如何写的程序员会比其他程序员效率高的原因。事实上,不仅仅只有很少数的程序员在写代码前先计划,很多即使有 多年编程经验的老程序员也不知道这个道理。一项持续40年的研究表明,程序员的开发效率并不会随阅历的增加而增加。(参考No Experience Required!)
多年的编程阅历并不是必然导致高开发效率
十分有趣的是,各种强调编码前先计划的软件开发方法论都已经存在很长时间了。比如Personal Software Process (PSP),创始人Watts Humphrey根据统计数据说:
PSP能提高21.2%的生产效率和31.2%的质量水平
像这样优秀的实践方法有很多。总之,就像作家动笔前先要构思好文章的结构和内容一样,程序员在按动键盘前如果不先琢磨一阵,很可能发生的情况是他的开发效率不会很高。


Advertisement
Advertisement

发表于 2014-4-1 21:51 |显示全部楼层
此文章由 nali 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 nali 所有!转贴必须注明作者、出处和本声明,并保持内容完整
一个月只写325 行的还叫程序员吗? 我做些系统维护,写的脚本都超了。
头像被屏蔽

禁止访问

发表于 2014-4-1 21:51 |显示全部楼层
此文章由 atransformer 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 atransformer 所有!转贴必须注明作者、出处和本声明,并保持内容完整
每月1000?? 我每周至少也得一两千行

发表于 2014-4-2 01:23 |显示全部楼层
此文章由 bullying520 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 bullying520 所有!转贴必须注明作者、出处和本声明,并保持内容完整
每天至少这个量啊..............

发表于 2014-4-2 09:17 |显示全部楼层
此文章由 kawara 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kawara 所有!转贴必须注明作者、出处和本声明,并保持内容完整
我一年都写不了500行

发表于 2014-4-2 09:25 |显示全部楼层
此文章由 喜欢苹果 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 喜欢苹果 所有!转贴必须注明作者、出处和本声明,并保持内容完整
本帖最后由 喜欢苹果 于 2014-4-2 09:28 编辑

写代码是程序开发的最后一道程序,真正头疼的是设计结构的。就跟盖楼一样,一个设计师重要还是垒砖头的重要,不然大家也不会把程序员也归为民工了。。。
民工怎么垒砖头,有个最低标准,就跟编程序一样。一天垒1000块砖,也比不上人家1年画一张图纸。
叫垒砖的提高效率,画图的错了,怎么垒都是错的,这个效率问题最大的责任者绝对不是程序员,
就跟你楼不能按时盖完,垒砖头的不是最大责任者一样的。
Advertisement
Advertisement

发表于 2014-4-2 09:29 |显示全部楼层
此文章由 brahmasky 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 brahmasky 所有!转贴必须注明作者、出处和本声明,并保持内容完整
N多年不写代码了
头像被屏蔽

禁止发言

发表于 2014-4-2 09:50 |显示全部楼层
此文章由 netstat 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 netstat 所有!转贴必须注明作者、出处和本声明,并保持内容完整
越牛逼的程序员,写的代码越少,因为精炼

发表于 2014-4-2 10:11 |显示全部楼层
此文章由 chrisfz 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 chrisfz 所有!转贴必须注明作者、出处和本声明,并保持内容完整
1年写2000行最多了。。。说程序员都是民工的都是站着说话不腰疼。不要考虑算法的啊,不要考虑效率的啊,不要考虑结构的啊。尼玛设计的说完成这个功能,我们要说这个实现不了,他们说的有毛用。
头像被屏蔽

禁止发言

发表于 2014-4-2 10:13 |显示全部楼层
此文章由 nis 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 nis 所有!转贴必须注明作者、出处和本声明,并保持内容完整
一个开发人员一天的代码应该是10-50行。所以都外包到印度了。

发表于 2014-4-2 10:23 |显示全部楼层
此文章由 ericlgq 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 ericlgq 所有!转贴必须注明作者、出处和本声明,并保持内容完整
这是要把作家当打字员使吗?
Advertisement
Advertisement

发表于 2014-4-2 15:16 |显示全部楼层
此文章由 razgriz 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 razgriz 所有!转贴必须注明作者、出处和本声明,并保持内容完整
如果一个程序员一天到晚要写那么多代码的话,只能说明他不会利用资源,每次都重新发明轮子。除了写前端用户界面每次都有可能不同外,后端的内容功能基本都是相似的。现在的程序员大部分是在复制,粘帖,修改。不会利用好的framework和plugin的程序员绝对不会是个高效的程序员

发表于 2014-4-2 20:59 |显示全部楼层
此文章由 IsDonIsGood 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 IsDonIsGood 所有!转贴必须注明作者、出处和本声明,并保持内容完整
razgriz 发表于 2014-4-2 14:16
如果一个程序员一天到晚要写那么多代码的话,只能说明他不会利用资源,每次都重新发明轮子。除了写前端用户 ...

但是plugin和framework用多了就变懒啦,不想深入细节了
2020目标: 活着

发表于 2014-4-3 09:01 |显示全部楼层
此文章由 jackjiang 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 jackjiang 所有!转贴必须注明作者、出处和本声明,并保持内容完整
拜读

发表于 2014-4-3 10:57 |显示全部楼层
此文章由 wilson21st 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 wilson21st 所有!转贴必须注明作者、出处和本声明,并保持内容完整
越懒的程序员通常是更好的程序员,他们写出来的代码相对会更高效。

发表于 2014-4-3 11:08 |显示全部楼层
此文章由 realfenglin 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 realfenglin 所有!转贴必须注明作者、出处和本声明,并保持内容完整
写的程序,是越来越少了。怎么觉得工作反而越来越难了啊!!
Advertisement
Advertisement

发表于 2014-4-8 22:33 |显示全部楼层
此文章由 Dan.and.Andy 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 Dan.and.Andy 所有!转贴必须注明作者、出处和本声明,并保持内容完整
很多时间都花在 peer review 上了。

发表于 2014-4-9 09:08 |显示全部楼层
此文章由 2013whyregister 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 2013whyregister 所有!转贴必须注明作者、出处和本声明,并保持内容完整
这个吗,如果从agile角度来说是错的。程序员应该先想test case, 写 test case先。当然实践中很难,一个是定式思维,另外是现在的team pratice不符

发表于 2014-4-9 09:11 |显示全部楼层
此文章由 中间人 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 中间人 所有!转贴必须注明作者、出处和本声明,并保持内容完整
喜欢苹果 发表于 2014-4-2 08:25
写代码是程序开发的最后一道程序,真正头疼的是设计结构的。就跟盖楼一样,一个设计师重要还是垒砖头的重要 ...

扯淡,设计的有实施的头痛?

发表于 2014-4-9 15:35 |显示全部楼层
此文章由 喜欢苹果 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 喜欢苹果 所有!转贴必须注明作者、出处和本声明,并保持内容完整
中间人 发表于 2014-4-9 08:11
扯淡,设计的有实施的头痛?


非扯淡 ,实施困难不就是因为设计的问题,
如果设计说让1+1=3,即便你实施了,能是对的吗?
所以实施不好的设计才是扯淡啊。

发表于 2014-4-9 15:38 |显示全部楼层
此文章由 喜欢苹果 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 喜欢苹果 所有!转贴必须注明作者、出处和本声明,并保持内容完整
chrisfz 发表于 2014-4-2 09:11
1年写2000行最多了。。。说程序员都是民工的都是站着说话不腰疼。不要考虑算法的啊,不要考虑效率的啊,不 ...

只能说那个设计的水平太低,不如程序员。房子盖得多了,垒砖的比低级工程设计师有发言权。
Advertisement
Advertisement
头像被屏蔽

禁止发言

发表于 2014-4-9 15:57 |显示全部楼层
此文章由 lubber 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 lubber 所有!转贴必须注明作者、出处和本声明,并保持内容完整
project design is the most important thing but most of companies do not think so

发表于 2014-4-10 09:49 来自手机 |显示全部楼层
此文章由 mengqing 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 mengqing 所有!转贴必须注明作者、出处和本声明,并保持内容完整
喜欢苹果 发表于 2014-4-9 14:35
非扯淡 ,实施困难不就是因为设计的问题,
如果设计说让1+1=3,即便你实施了,能是对的吗?
...

搞错了吧 设计一般只给大方向 比如这个地方需要用加减法 至于是1+1=2 还是=3这个是程序猿的工作

发表于 2014-4-16 09:27 |显示全部楼层
此文章由 joerkky 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 joerkky 所有!转贴必须注明作者、出处和本声明,并保持内容完整
我觉得吧,平均能有1/10时间敲代码就不错了。

花在讨论产品功能架构上的时间占了差不多1/4
花在跟QA一起peer testing的时间占了1/5
然后花在DevOps身上的时间占了1/5
吃饭散步看新闻处理杂事,又去了1/4

发表于 2014-4-17 16:41 |显示全部楼层
此文章由 ozlion 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 ozlion 所有!转贴必须注明作者、出处和本声明,并保持内容完整
NB的人不写代码了或者非常少的代码,他们专注于宏观的概念和软件架构

发表于 2014-4-17 16:57 |显示全部楼层
此文章由 无视 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 无视 所有!转贴必须注明作者、出处和本声明,并保持内容完整
现在安心的写两行代码就是奢望
Advertisement
Advertisement

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部