En general, es una mala idea llamar a su jefe un idiota, por lo que mis sugerencias comienzan con la comprensión y la discusión de las métricas, en lugar de rechazarlas.
Algunas personas que en realidad no se consideran idiotas han utilizado métricas basadas en líneas de código. Fred Brooks, Barry Boehm, Capers Jones, Watts Humphries, Michael Fagan y Steve McConnell los usaron. Probablemente los haya usado, aunque solo sea para decirle a un colega, este módulo de Dios tiene 4000 líneas, debe dividirse en clases más pequeñas.
Hay datos específicos relacionados con esta pregunta de una fuente que muchos de nosotros respetamos.
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
Sospecho que el mejor uso de la línea de código por hora de programador es mostrar que durante la vida del proyecto, este valor comenzará bastante alto, pero a medida que se encuentren y arreglen los defectos, se agregarán nuevas líneas de código para resolver problemas que no formaban parte de las estimaciones originales, y las líneas de código eliminadas para eliminar la duplicación y mejorar la eficiencia mostrarán que LOC / hr indica otras cosas además de la productividad.
- Cuando el código se escribe rápido, descuidado, hinchado y sin ningún intento de refactorización, la eficiencia aparente será máxima. La moraleja aquí será que debes tener cuidado con lo que mides.
- Para un desarrollador en particular, si está agregando o tocando una gran cantidad de código esta semana, la próxima semana puede haber una deuda técnica que pagar en términos de revisión de código, prueba, depuración y retrabajo.
- Algunos desarrolladores trabajarán a una tasa de producción más consistente que otros. Se puede descubrir que pasan la mayor parte del tiempo obteniendo buenas historias de usuarios, se dan la vuelta muy rápidamente y hacen las pruebas unitarias correspondientes, y luego se dan la vuelta y hacen rápidamente un código que se centra solo en las historias de los usuarios. La conclusión aquí es que los desarrolladores metódicos probablemente tendrán un cambio rápido, escribirán código compacto y tendrán un bajo nivel de retrabajo porque entienden el problema y la solución muy bien antes de comenzar a codificar. Parece razonable que codifiquen menos porque codifican solo después de pensarlo bien, en lugar de antes y después.
- Cuando se evalúa el código por su densidad de defectos, se encontrará que es menos que uniforme. Algún código explicará la mayoría de los problemas y defectos. Será un candidato para reescribir. Cuando eso suceda, se convertirá en el código más costoso debido a su alto grado de retrabajo. Tendrá las líneas brutas más altas de recuentos de código (agregados, eliminados, modificados, como se podría informar de una herramienta como CVS o SVN), pero las líneas netas más bajas de código por hora invertidas. Esto puede terminar siendo una combinación del código, ya sea implementando el problema más complejo o la solución más complicada.
Independientemente de cómo resulte el debate sobre la productividad del programador en líneas de código, encontrará que necesita más mano de obra de la que puede permitirse y el sistema nunca se completará a tiempo. Sus herramientas reales no son métricas. Son el uso de una metodología superior, los mejores desarrolladores que puede contratar o capacitar, y el control del alcance y el riesgo (probablemente con métodos ágiles).