¿Sabemos realmente si existe el programador 10x? (el 10x Engineer)

De entre los temas más polémicos (otro día te escribo un post con el «top ten de temas polémicos en la historia del desarrollo software»), y que más conversación y debate acalorado provocan, desde hace muchos años (pero muchos, ojo, que no es solo de ahora), es el de los programadores 10x. La afirmación de que los programadores realmente buenos pueden llegar a ser hasta 10 veces más productivos que los peores.

Últimamente, el tema, que en inglés lo leerás como el «10x Engineer», se ha vuelto a poner de moda, cosas del Twitter. Todo viene por un tipo que hace unos días se puso a dar su descripción de cómo son esos programadores 10x, y al que le han dado «cera» por todos los sitios (con razón), por cómo describe, según él, el comportamiento de esos programadores.

No voy a entrar a criticar cada una de las descripciones del Tweet de moda sobre el programador 10x, porque ya lo ha hecho mucha gente y sería repetir más de lo mismo. No obstante, te dejo el hilo de Tweets que, como respuesta, me parece más sensato de todos los que critican esta última polémica descripción del 10x.

¿Sabemos realmente si existe el programador 10x?

A lo que voy en este post, que en esta última polémica se ha tratado menos, es a… ¿pero sabemos realmente si existe el programador 10x? Digo que en esta última se ha tratado menos porque históricamente ha habido grandes debates sobre si este tema es cierto.

Uno de esos grandes debates fue sobre 2010 entre el gran McConnell (ya sabes, el del Code Complete, Rapid Development, etc.) y un tal Bossavit que criticó esta afirmación por parte de McConnnell (aquí te lo puedes leer, aviso, es largo y denso).

¿Sabemos si existe? La respuesta corta es que este es un tema sobre el que más estudios se han hecho pero no hay estudios concluyentes de cuánto mejor es un genial programador frente a uno no tan bueno (y esto es mi opinión, y no soy, obviamente, el único que opina así y mucha gente si respalda los estudios).

Hay muchos estudios sobre el programador 10x, muchos muy antiguos, ninguno es concluyente o generalizable

Y, ojo, dije estudios concluyentes, porque todos conocemos (a mi ya se me vienen como 3 programadores con los que trabajo en estos últimos años) que hay geniales programadores muy por encima de otros normalitos. Pero estudios estadísticos concluyentes no tenemos (hay muchos estudios pero no hay una conclusión final, como pasa, por cierto, con casi todos los estudios en desarrollo software).

Escrita la respuesta corta, ahora vamos con la densa, la que te puedes ahorrar si no quieres profundizar más.

Dudas sobre los estudios 10x

Lo primero es que no sabemos, «matemáticamente», calcular la productividad de un programador, a esto ya le dediqué hace años un post, no es cuestión de volver a escribirlo, pero el número de variables son tantas que es muy difícil saberlo (aunque cualitativamente todos podamos intuir que hay programadores más productivos).

Por otro lado, la mayoría de estudios sobre la productividad de unos programadores frente a otros, sacan datos, eso sí, pero los experimentos siempre son cuestionables. Uno de los primeros que cuestionó estos experimentos fue Sheil en el 81, en “The Psychological Study of Programming”, que revisó muchos estudios afirmando que no eran concluyentes. Entre otros, podemos cuestionar si la mayor productividad de un programador es por sus cualidades o por la «metodología» con la que trabaja la organización.

Esto de si era la «metodología» (buenas prácticas de uso, etc.) o eran los programadores fue algo de lo que se habló hace tiempo respecto a eXtreme Programming… ¿hacía más productivos a los programadores o era que se había estudiado eXtreme Programming con grandes programadores (que serían muy buenos con cualquier framework)? (No hay que olvidar que eXtreme Programming lo inician programadores del nivel de Kent Beck, Fowler, etc.).

De nuevo, es muy difícil, ¿imposible?, extraer capacidades de productividad individuales y, además, aislarlas del entorno.

Sackman, Erikson y Grant, del 68

De entre los muchos estudios a citar está el primer estudio sobre el programador 10x que conocemos, que es el de Sackman, H., WJ Erikson y EE Grant del 68. Importante por ser el primero, uno de los más citados, el que creó lo del 10x, etc. Pero, si profundizas… hay muchas dudas a su validez. 

Más allá de que las prácticas de programación de aquel estudio, de hace 50 años, son de difícil aplicación a los entornos de hoy en día.

Más estudios

Ha habido muchos más, todos muy antiguos, como los de Curtis del 81, el libro de Mills del 83, etc. Muchos los dan por válidos, pero otros tantos los cuestionan (no quiero extender el post, pero las dudas son del estílo a las antes mencionadas).

De entre muchos, quizá el más robusto es el de otros grandes, DeMarco y Lister, los del libro del Peopleware, que en 1985 publican “Programmer Performance and the Effects of the Workplace«. En este caso, el estudio es con profesionales (esta es otra de las críticas a los estudios, que muchos son con alumnos de Universidad, no con profesionales).

Si damos por válido el estudio de DeMarco y Lister, que, como digo es el que menos dudas ofrece, marca un máximo de un 5.6x entre los mejores y los peores programadores que llegaron a terminar el ejercicio del estudio (no un 10x), eso sí, con un 10% de programadores que no llegaron a terminarlo (lo que para algunos justifica el 10x).

Otro famoso es el de otro mítico (para que veas que muchos de los grandes nombres de la antigua ingeniería del software han tratado este tema), el del libro Software Engineering Economics, de Boehm, año 81, que saca diferencias de 4.81 a 1 (lejos del 10x) entre equipos, según los programadores que tuviera cada equipo. No llega al 10x ni habla de programadores en concreto.

Terminando

Hay muchos estudios más, la mayoría muy antiguos. Y el problema es lo que se llama «amenazas a la validez», que hay tantos factores que pueden influir que muchos de ellos dan indicios, sensaciones, pero no son concluyentes (eso sin contar que los más sólidos no llegan a hablar de un 10x).

Ahora, eso sí, como ya comenté, esto no quita que todos hayamos conocido programadores muy por encima de la media de otros, la sensación existe, el estudio concluyente… aún no.

Fuentes

Para hacer el post he tirado de artículos de ACM e IEEE y del debate de McConnell y Bossavit (que te recomiendo si quieres profundizar y del que yo he sacado mucha información) (referencia a McConnell aquí y a Bossavit, en francés, aquí). Bossavit crítico las afirmaciones de McConnell sobre el 10x, con argumentos, y McConnell le replicó con gran profundidad, se empleó a fondo, aunque (y eso que es de mis autores favoritos) no terminé de encontrar esa incuestionable robustez en los estudios (perdóname Steve).

jgarzas

Ph.D. en informática, Postdoctorado en la Carnegie Mellon (EE.UU) e Ingeniero en Informática.

Primera vez que me tocó hacer una gestión Ágil en una empresa... año 2001. Desde entonces he trabajado en, o para, más de 90. Y he formado a más de 2000 alumnos.

También soy profe de la Universidad Rey Juan Carlos.

1 comentario en “¿Sabemos realmente si existe el programador 10x? (el 10x Engineer)”

  1. Oí hablar por primera vez de los trabajadores estrella a Daniel Goleman en su libro sobre inteligencia emocional, Existir existen, no se si producen 10x, 5x o 20x, lo que tengo claro es que merece la pena contar con ellos, y que existen. Quizás todo conozcamos a alguno

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *