En dos artículos escritos por Steve McConnell se proporciona una descripción general y un análisis bastante exhaustivos de la investigación sobre las diferencias de productividad :
El primer artículo ( Variaciones de productividad ... ) establece:
... El estudio original que encontró grandes variaciones en la productividad de la programación individual fue realizado a fines de la década de 1960 por Sackman, Erikson y Grant (1968). Estudiaron programadores profesionales con un promedio de 7 años de experiencia y encontraron que la proporción del tiempo de codificación inicial entre los mejores y peores programadores era de aproximadamente 20 a 1; la relación de tiempos de depuración de más de 25 a 1; del tamaño del programa 5 a 1; y de la velocidad de ejecución del programa de aproximadamente 10 a 1. No encontraron relación entre la cantidad de experiencia de un programador y la calidad o productividad del código.
El examen detallado de los hallazgos de Sackman, Erickson y Grant muestra algunos defectos en su metodología ... Sin embargo, incluso después de tener en cuenta los defectos, sus datos aún muestran una diferencia de más de 10 veces entre los mejores programadores y los peores.
En años posteriores al estudio original, muchos otros estudios de programadores profesionales han confirmado el hallazgo general de que "Hay diferencias de orden de magnitud entre los programadores" (Curtis 1981, Mills 1983, DeMarco y Lister 1985, Curtis et al. 1986 , Card 1987, Boehm and Papaccio 1988, Valett and McGarry 1989, Boehm et al 2000) ...
Este artículo también tiene una nota al margen interesante:
Este grado de variación no es exclusivo del software. Un estudio realizado por Norm Augustine descubrió que en una variedad de profesiones (escritura, fútbol, invención, trabajo policial y otras ocupaciones), el 20 por ciento de las personas más importantes producían alrededor del 50 por ciento de la producción, ya sea la toma de contacto, patentes , casos resueltos o software (Augustine 1979).
El segundo artículo ( ... ¿Qué tan válida es la investigación subyacente? ) Se ha escrito principalmente para abordar la revisión crítica del primero por Laurent Bossavit :
En el segundo artículo, en la sección Una inmersión más profunda en la investigación que respalda "10x" McConnell vuelve a verificar con más detalles las referencias utilizadas en el primer artículo y concluye:
... Al revisar estas citas una vez más al escribir este artículo, concluí nuevamente que respaldan el hallazgo general de que hay 10 veces más diferencias de productividad entre los programadores. Los estudios han involucrado colectivamente a cientos de programadores profesionales en un espectro de actividades de programación.
... el cuerpo de investigación que respalda la afirmación 10x es tan sólido como cualquier investigación que se haya realizado en ingeniería de software. Los estudios que respaldan la afirmación 10x no están sujetos a la limitación metodológica descrita en la Figura 1, porque están estudiando la variabilidad individual en sí misma (es decir, solo el lado izquierdo de la figura). Bossavit no cita ni siquiera un estudio, defectuoso o de otro tipo, que contrarreste la afirmación 10x, y tampoco he visto ninguno de estos estudios. El hecho de que ningún estudio haya producido resultados que contradigan el reclamo 10x proporciona aún más confianza en el reclamo 10x. Cuando considero la cantidad de estudios que se han realizado, en conjunto encuentro que la investigación no solo es sugerente, sino concluyente, lo cual es raro en la investigación de ingeniería de software.
En aras de la exhaustividad, la lista de referencias utilizadas en las variaciones de productividad ... también se cita a continuación:
Referencias
Agustín, NR 1979. "Las leyes de Agustín y los principales programas de desarrollo del sistema". Revisión de la gestión de sistemas de defensa: 50-76.
Boehm, Barry W. y Philip N. Papaccio. 1988. "Comprensión y control de costos de software". Transacciones IEEE sobre Ingeniería de Software SE-14, no. 10 (octubre): 1462-77.
Boehm, Barry, et al, 2000. Estimación de costos de software con Cocomo II, Boston, Massachusetts: Addison Wesley, 2000.
Boehm, Barry W., TE Gray y T. Seewaldt. 1984. "Creación de prototipos versus especificación: un experimento multiproyecto". Transacciones IEEE sobre Ingeniería de Software SE-10, no. 3 (mayo): 290-303. También en Jones 1986b.
Card, David N. 1987. "Un programa de evaluación de tecnología de software". Tecnología de la información y el software 29, no. 6 (julio / agosto): 291-300.
Curtis, Bill. 1981. "Variabilidad sustancial del programador". Actas del IEEE 69, no. 7: 846.
Curtis, Bill y col. 1986. "Psicología del software: la necesidad de un programa interdisciplinario". Actas del IEEE 74, no. 8: 1092-1106.
DeMarco, Tom y Timothy Lister. 1985. "Rendimiento del programador y los efectos del lugar de trabajo". Actas de la 8ª Conferencia Internacional sobre Ingeniería de Software. Washington, DC: IEEE Computer Society Press, 268-72.
DeMarco, Tom y Timothy Lister, 1999. Peopleware: Proyectos y equipos productivos, 2ª ed. Nueva York: Dorset House, 1999.
Mills, Harlan D. 1983. Productividad del software. Boston, Massachusetts: Little Brown.
Sackman, H., WJ Erikson y EE Grant. 1968. "Estudios experimentales exploratorios que comparan el rendimiento de programación en línea y sin conexión" Comunicaciones de la ACM 11, no. 1 (enero): 3-11.
Valett, J. y FE McGarry. 1989. "Un resumen de las experiencias de medición de software en el laboratorio de ingeniería de software". Revista de Sistemas y Software 9, no. 2 (febrero): 137-48.
Weinberg, Gerald M. y Edward L. Schulman. 1974. "Objetivos y rendimiento en la programación de computadoras". Factores humanos 16, no. 1 (febrero): 70-77.