¿Qué porcentaje de programadores son 10x y qué porcentaje son 1x?

Lo que dice la literatura en esta área es que hay una diferencia (muy aproximada) de 5-10 veces en el tiempo para completar correctamente una tarea entre los mejores desarrolladores y el promedio. Los mismos estudios muestran una diferencia de 28 veces en el tiempo para terminar entre los mejores desarrolladores y los peores que completaron la tarea. Sin embargo, empeora porque en la mayoría de estos estudios alrededor del 10% de los desarrolladores no completaron la tarea asignada. Los estudios también muestran que la experiencia no está correlacionada con estos

Lo que esto implica es una distribución sesgada donde la mayoría de los desarrolladores tardan entre 5 y 10 veces más que la mejor, y luego hay una cola muy larga de personas que tardan hasta 30 veces más o nunca terminan. Para poner en términos de productividad, si el ingeniero más productivo es un “10Xer”, el ingeniero promedio está en algún lugar entre 1X y 2X, y el peor ingeniero está en algún lugar por debajo de 0.036X, posiblemente incluso negativo.

Los estudios implican que el 10% de los ingenieros están en el nivel de productividad más bajo. Esto implica que en realidad muchos más ingenieros están en la cola larga derecha de la distribución, por debajo de la productividad 1X, que en la cola izquierda, por encima de la productividad 2X. Esto implica además que el número de verdaderos ingenieros 10X está muy por debajo del 5% de la población de programación, probablemente menos del 2%.

La formulación de su pregunta no encaja bien con estos hechos, sin embargo, para responder aproximadamente sus subpreguntas lo mejor posible:

1. Muy pocos, probablemente menos del 2% de los programadores son 10 veces más productivos que el promedio.
2. 1X no es malo. Está ligeramente por debajo de la media. Dado el sesgo correcto de la distribución que implica el hecho de que el 10% nunca termina, los programadores 1X están en todas partes, y deberíamos estar agradecidos de que no sean peores.
3. La gran mayoría de los programadores tendrá una productividad entre 1X y 2X, con la mayoría del resto por debajo de 1X. Si decimos que aproximadamente el 30% está por debajo de 1X (incluida la productividad negativa del 10% o casi cero), aproximadamente el 68% estará entre 1X y 2X,
3. No. El trabajo realizado sobre este tema indica que la productividad no está correlacionada con la experiencia o la calificación laboral.

Finalmente, es importante tener en cuenta que el trabajo realizado en esta área en realidad no respalda firmemente la idea de que la productividad es una propiedad del ingeniero individual. Al menos un estudio mostró que el único factor bien correlacionado con la productividad era en realidad bastante y la falta de interrupciones. Esto implica, aunque obviamente es bastante difícil de confirmar, que muchos ingenieros que aparecen como 1X o menos en estos estudios podrían ser ingenieros 10X si se les diera un entorno de trabajo diferente. Entonces, la idea misma de que hay “10Xers” puede ser un malentendido.

La respuesta de Simon definitivamente es acertada. Una nota adicional es que en la ingeniería de software (y en la mayoría de las otras ingenierías), la “productividad” es una medida de calidad , no una cantidad . Este es un punto que muy pocos tipos de emprendedores del lado comercial entienden (aunque todos dicen que sí).

No es como, digamos, cavar zanjas donde si alguien cava 10 veces más rápido, el hoyo se completa en 1/10 del tiempo. El tiempo generalmente no es la medida correcta. Es más como donde el múltiplo 10x proviene de los ahorros geométricos que se combinan en dinero, recursos, escalabilidad, elegancia / compartibilidad del código, mantenimiento de errores, etc. Honestamente, el impacto general a menudo puede ser un múltiplo casi inconmensurable para el éxito de una empresa (es a menudo 50x, 100x, 1000x, en realidad). Y en ese sentido, siempre opino que un 10x’er motivado es mejor que 10 clientes habituales aburridos.

Y en cuanto a encontrar a esas personas, eso es aún más difícil. Nunca he visto que se correlacione con universidades, títulos o cualquier métrica fácilmente cuantificable, más bien, parece ser gente que generalmente tiene curiosidad e interés en una gama muy amplia de temas. Muchos de ellos son artistas tanto como ingenieros. La mayoría de las personas protegen el acceso a estas personas como si fueran un secreto comercial.

El medio ambiente es un gran factor. Muchos desarrolladores están esposados ​​por muchas cosas diferentes que incluyen pero no se limitan a:

  • Falta de derechos de administrador.
  • Falta de liderazgo calificado.
  • Falta de desafíos.
  • Falta de recursos de hardware.
  • Tediosas y lentas directivas.
  • Restricciones de hardware.
  • Software y licencias de datos.
  • Lenguajes y entornos obligatorios.

Al final del día, todo esto podría superarse a nivel personal, pero ciertamente ayuda si se emplea en un entorno donde ninguno de estos son obstáculos.

Además, es inconcebible para mí cómo la experiencia no podría considerarse un factor. Es inevitable que cuantos más problemas resuelva un desarrollador, más problemas sabrá evitar en primer lugar y más patrones conocerán para su uso futuro.

¿Hay alguna diferencia en la rapidez con la que alguien puede resolver problemas, aprender patrones y teniques, absolutamente, y alguien que trabaja durante 5 o 10 años podría ser mucho mejor que algunos desarrolladores más experimentados, pero alguien recién salido de la escuela secundaria o la escuela secundaria? El pirata informático casi siempre debería ser menos valioso que alguien codificando durante 5 o 10 años.

Ya comienzas en el camino equivocado asumiendo que los programadores 1x son malos programadores. Si trata a los programadores normales como malos, ¿por qué alguien querría trabajar con usted, dada la opción de trabajar con otra persona?

Todos los que podrían ser programadores 10x tienen otras opciones además de trabajar con usted.

Si comienza de esa manera, puede dejar de buscar programadores 10x de inmediato.