通常称呼你的老板是个白痴是个坏主意,所以我的建议从理解和讨论指标开始,而不是拒绝它们。
一些实际上不被认为是白痴的人使用了基于代码行的指标。Fred Brooks,Barry Boehm,Capers Jones,Watts Humphries,Michael Fagan和Steve McConnell都使用了它们。即使您只是想和一位同事说,您可能已经使用了它们,这个上帝模块是4000行,需要分成更小的类。
我们中许多人都尊重来自这个问题的具体数据。
http://www.codinghorror.com/blog/2006/07/diseconomies-of-scale-and-lines-of-code.html
http://www.codinghorror.com/blog/2005/08/are-all-programming-languages-the-same.html
http://discuss.joelonsoftware.com/default.asp?joel.3.286106.22
我怀疑每个程序员小时的代码行的最佳用途是表明,在项目的整个生命周期中,这个值会很高,但是随着发现并修复缺陷,将添加新的代码行来解决那些并非原始估算的一部分,因此删除代码行以消除重复并提高效率将显示LOC / hr表示生产力以外的其他信息。
- 如果快速,草率,肿地编写代码,并且不进行任何重构尝试,则视在效率将达到最高。这里的道义是,您必须谨慎对待自己测量的内容。
- 对于特定的开发人员而言,如果他们本周要添加或修改大量代码,那么下周在代码审查,测试,调试和返工方面可能要付出技术上的债务。
- 一些开发人员将以比其他开发人员更稳定的产出率工作。可以发现,他们花费最多的时间来获取良好的用户故事,非常快速地转向并进行相应的单元测试,然后转向并快速生成仅专注于用户故事的代码。这里的收获是,有条不紊的开发人员可能会快速周转,编写紧凑的代码并减少返工,因为他们在开始编写代码之前就非常了解问题和解决方案。减少代码的数量似乎是合理的,因为它们仅在经过深思熟虑之后才进行编码,而不是之前和之后进行编码。
- 当评估代码的缺陷密度时,会发现它不均匀。一些代码将解决大多数麻烦和缺陷。它将是重写的候选人。发生这种情况时,它将成为最昂贵的代码,因为它具有高度的返工率。它具有最高的总代码行数(可以通过CVS或SVN之类的工具报告,添加,删除,修改的总行数),但每小时投资的净代码行数最低。这最终可能是实现最复杂问题或最复杂解决方案的代码的组合。
无论如何在代码行中对程序员的生产力进行辩论,结果都会发现,您需要的人力资源超出了您的承受能力,而且该系统永远无法及时完成。您真正的工具不是指标。他们使用的是卓越的方法论,可以雇用或培训的最佳开发人员以及对范围和风险的控制(可能是敏捷方法)。