您总是看到他们在他们的办公桌旁打字; 他们为会议结束而烦恼,这样他们可以回到办公桌上进行编码 。 当被问及时,他们会说没有足够的时间来生成代码 ,并且他们越早可以开始编码,就越早完成它们。
因此,编写代码必须是最重要的事情,对吗?
如果普通程序员每天写大约50行生产代码。 50,000条生产线的程序将花费1,000个工作日。 程序员每天可以输入大约10,000行或大约50个工作日来输入50,000行列表。
那么,其他950天的开发者
在解决该问题之前,先进行简单的观察。 Capers Jones比较了数千种项目中的许多方法 (RUP,XP,Agile,Waterfall等)和编程语言 ,并确定程序员每月编写325至750行代码(LOC),少于每行1,000条LOC。建议1个月以上。 即使程序员每天不平均使用50行代码,以下内容也很清楚2 。
- 方法论不能解释明显的生产率差距
- 没有语言能解决明显的生产力差距
实际情况是,实际上只有一小部分开发人员的时间花在编写生产代码上。 如果开发人员一直在输入代码,那么他们实际上是在尝试不同的代码组合,直到最终找到有效的代码组合。
或更正确的说,直到质量检查人员或业务分析师返回并让他们知道存在问题之前,这种组合似乎一直符合要求。
这就是为什么在使用键盘之前计划其代码的开发人员往往会胜过其他开发人员。 不仅少数开发人员在编码之前真正地计划了他们的代码,而且多年的经验也没有教会开发人员学习计划。 实际上,超过40年的研究表明,开发人员的生产力不会随着多年的经验而改变。 (请参阅不需要经验! )
多年的经验并不能提高生产率
有趣的是,有很长一段时间都在强调计划代码的方法论。 Watts Humphrey是个人软件过程(PSP) 3的创建 。 使用PSP已被测量为:
PSP可以将生产率提高21.2%,将质量提高31.2%
如果您有兴趣,还有许多其他不常用的提高代码质量的行之有效的方法(请参阅《 不为失败者计划》 )。
如果您的开发人员在使用键盘而不是在白板上进行规划,那么很可能您的生产率没有达到应有的水平。
参考书目
- The Mythical Man Month更为悲观,暗示程序员每天生产10条代码生产线
- 琼斯(Jones),刺山柑(Capers)和邦尼古(Bonsignour),奥利维尔(Olivier)。 软件质量经济学 。 艾迪生·韦斯利(Addison Wesley)。 2011年
- 瓦特,汉弗莱。 个人软件过程简介 ,Addison Wesley Longman。 1997年
没错,我是所有人中最大的“失败者”。 我相信我在这本书中至少犯了一次错误!
翻译自: https://www.javacodegeeks.com/2014/03/the-programmer-productivity-paradox.html