¿Es válido el concepto de ingeniero 10x? Específicamente, ¿es este multiplicador defendible? ¿Hay datos que sugieran que los mejores ingenieros son 10 veces mejores que los ingenieros normales, a diferencia de 3x o 100x?

Sí, el concepto es válido, pero no, los mejores no son 10 veces mejores que los ingenieros “normales”. Se ha descubierto que los mejores son 2x a 3x más rápidos que la mediana.

No tengo acceso a los estudios originales, pero aquí hay citas de algunos de los libros que tengo a mano:

El mes del hombre mítico (1975), Frederick P. Brooks, Jr .:

En uno de sus estudios, Sackman, Erikson y Grant midieron el desempeño de un grupo de programadores experimentados. ¡Solo dentro de este grupo, las relaciones entre el mejor y el peor desempeño promediaron alrededor de 10: 1 en mediciones de productividad y un sorprendente 5: 1 en velocidad de programa y mediciones de espacio!

Peopleware (1987), Tom DeMarco y Timothy Lister:

Parece que se aplican tres reglas generales cada vez que se miden las variaciones en el rendimiento en una muestra de individuos:

* Cuente con que las mejores personas superen a las peores en aproximadamente 10: 1.

* Cuente con que el mejor intérprete sea aproximadamente 2.5 veces mejor que el intérprete mediano.

* Cuente con la mitad que son mejores que la media, superando a la otra mitad en más de 2: 1

[…] Para el promedio [par de programadores probados], las dos actuaciones diferían solo en un 21 por ciento. Ahora, ¿por qué es eso importante? Porque [ellos] vinieron de la misma organización. Trabajaron en el mismo entorno físico y compartieron la misma cultura corporativa … Dos personas de la misma organización tienden a actuar de manera similar … Este es el efecto que Harlan Mills predijo en 1981:

“Si bien esta diferencia de productividad [10 a 1] entre los programadores es comprensible, también hay una diferencia de 10 a 1 en la productividad entre las organizaciones de software”.

Nuestro estudio encontró que había grandes diferencias entre las 92 organizaciones competidoras. En toda la muestra, la mejor organización (la que tiene el mejor desempeño promedio de sus representantes) trabajó 11.1 veces más rápido que la peor organización. Además de su velocidad, [su código era de calidad aceptable].

Desarrollo rápido (1996), Steve McConnell:

Desde finales de la década de 1960, estudio tras estudio ha encontrado que la productividad de los programadores individuales con niveles similares de experiencia varía de hecho por un factor de al menos 10 a 1 (Sackman, Erikson y Grant 1968, Curtis 1981, Mills 1983, DeMarco y Lister 1985, Curtis et al.1986, Card 1987, Valett y McGarry 1989).

Los estudios también han encontrado variaciones en el desempeño de equipos completos del orden de 3, 4 o 5 a 1 (Weinberg y Schulman 1974; Boehm 1981; Mills 1983; Boehm, Gray y Seewaldt 1984).

Debido a que es tan claro que los problemas de Peopleware influyen fuertemente en la productividad, ahora también es claro que cualquier organización que se tome en serio la mejora de la productividad debe considerar primero los temas de motivación, trabajo en equipo, selección de personal y capacitación de Peopleware.

Di citas más largas de las necesarias para abordar la pregunta porque creo que es importante enfatizar la variación en los equipos y en las personas.

Debido a que alguien hizo una pregunta broma 10x sobre Quora sobre Joel Spolsky, también me gustaría citarlo donde encontró resultados similares y los declaró bien:

http://www.joelonsoftware.com/ar…

Los estudiantes más rápidos terminaban tres o cuatro veces más rápido que los estudiantes promedio y hasta diez veces más rápido que los estudiantes más lentos.

[ACTUALIZACIÓN] La tesis principal del ensayo de Spolsky (enlace de arriba) echos punto de Amal:

El verdadero problema con el uso de muchos programadores mediocres en lugar de un par de buenos es que, sin importar cuánto tiempo trabajen, nunca producen algo tan bueno como lo que pueden producir los grandes programadores.

[…]

El talento mediocre nunca llega a las notas altas que el talento superior golpea todo el tiempo.

El multiplicador “10” es irrelevante, si eso es lo que quiere decir con su pregunta. Este es un marcador de posición para un concepto que una persona siente efectivamente un orden de magnitud más productivo y útil y valioso que el promedio. Es relativo y muy subjetivo a una situación: no se podría decir que generan 10 veces los ingresos, crean 10 veces la valoración por su presencia, escriben 10 veces las líneas de código, etc. analíticamente.

En otra publicación, he hablado sobre algunos desarrolladores “50x”, una vez más, los 50 son irrelevantes, solo me refiero a alguien que es aún más productivo que el promedio, pero no dos órdenes de magnitud más productivos (eso es una locura).

Si bien no estoy en desacuerdo con las conclusiones específicas de Tom 2-4x más rápidas, estos estudios son muy específicamente sobre la velocidad para completar tareas de programación individuales / discretas. En este contexto, 2-4x “más rápido” con aproximadamente la misma precisión es totalmente correcto. El orden de magnitud “10x” “mejor” o “más valor” no se trata solo de “más rápido” para tareas discretas. Se mide sobre una serie de tareas y proyectos.

Por ejemplo, la mayoría de los ingenieros “10x” con los que me he encontrado son “10x” porque en el transcurso de una serie de proyectos su código y diseños se superponen limpiamente y con acoplamiento flexible, y han sido diseñados para integrarse fácilmente con código abierto o productos o protocolos comerciales, para que su cofre de herramientas se profundice y haga que cada nueva tarea grande sea dramáticamente más rápida de completar. De hecho, algunas personas “10x” son más lentas en las primeras tareas, ya que sientan las bases de su arquitectura / herramienta de herramientas, luego aceleran y superan dramáticamente a otros ingenieros.

No, no es un concepto válido. He aquí por qué: hay muchos métodos diferentes para identificar “mejor” en ingeniería de software, sin embargo, ninguno es aceptado universalmente y, de hecho, la mayoría son completamente inconmensurables.

Por ejemplo, mucha gente bien intencionada pero mal informada habla de “productividad” en ingeniería de software. Si el ingeniero X puede hacer 10 veces “más” o resolver un problema en 1/10 del tiempo de un ingeniero “promedio”, entonces ese ingeniero es más productivo en un orden de magnitud. Sin embargo, no hay definiciones mensurables para nada de esto. Primero, no tenemos una definición de promedio o X. Segundo, no tenemos una definición de “más” (¿es más código, corrige más errores, crea más funciones?). Tampoco tenemos una definición de productividad que se aplique a la ingeniería de software. Luego está el concepto de análisis cualitativo. El hecho de que alguien haga “más” no significa que el “más” tenga un valor proporcional. No hay forma de valorar cualitativamente “más”.

Una cosa que tenemos es una explosión de personas que piensan que son 10X y empleadores que piensan que tienen un personal completo de 10X personas. Es genial ver que tal autoconfianza es una profesión que, hasta hace poco, se consideraba el dominio del tipo discreto y no auto promocional. Sin embargo, la construcción de “Rock Star” es algo elaborado y promovido por personas de RR. HH. Para demostrar que están haciendo un gran trabajo reclutando a los mejores talentos.

Para estar seguro, como en cualquier profesión, existen los mejores en ingeniería de software. Sin embargo, diría que las distribuciones de “Rock Stars” en tecnología son las mismas que en medicina, derecho, negocios o cualquier otra profesión. La probabilidad de que cualquier empleado haya capturado el mercado con los mejores talentos y desafiado una distribución normal es un reclamo difícil de validar.

More Interesting

¿Cuál es la diferencia entre un arquitecto de software y un arquitecto de soluciones?

¿Cuáles son las diferentes funciones de los sistemas operativos Windows 7, 8 y 10?

¿Cómo continúan desarrollándose los ingenieros localmente a medida que la pila crece en su producto?

Cómo saber si debo ser un desarrollador / ingeniero de software

¿QA alguna vez o debería proponer mejoras para los desarrolladores?

¿Cuáles son algunos parámetros únicos que se pueden usar para identificar de manera única los sistemas informáticos modernos ... parámetros que no se pueden alterar?

¿Sería esto en contra de los términos de la API de Facebook?

Sector de TI: en los EE. UU., Incluso personas no técnicas pueden unirse a empresas de TI y son totalmente bienvenidas. En la India, ¿no se valora a las personas con antecedentes técnicos?

¿Cuáles son algunas especificaciones típicas de computadora portátil para un ingeniero de software?

¿Cuál es la mejor manera de encontrar distribuidores, revendedores de software?

¿Cuáles son los factores que afectan la calidad del software?

¿Cómo se esfuerza un programador competitivo para desarrollar un software tan centrado como la programación competitiva?

¿Qué proyectos informáticos cooperativos mundiales se están realizando actualmente?

Si un grupo de desarrolladores dice que puede completar un proyecto en 8 semanas, ¿cuál es el número de semanas más realista que debo esperar?

¿Cuál es el diálogo más loco que has escuchado de tu jefe?