Es posible que hayas visto un hilo que circula por Twitter recientemente sobre los «ingenieros 10x». Si no lo has hecho, puedes leerlo en todo su esplendor:
Shekhar Kirani @Accel@skirani10x ingenieros
Fundadores si alguna vez os encontráis con esta rara raza de ingenieros, cogedlos. Si tienes un ingeniero 10x como parte de tus primeros ingenieros, aumentas las probabilidades de éxito de tu startup significativamente.
OK, aquí hay una pregunta difícil.
¿Cómo se detecta un ingeniero 10x?13:02 PM – 11 Jul 2019
El resumen es que, a menos que encajes en alguna visión súper estrecha y estereotipada de ser desarrollador, no eres un «ingeniero 10x».
Muchos dirán que un «ingeniero 10x» no existe, ya que ser 10 veces mejor en algo que alguien/la mayoría de la gente sería muy difícil. Incluso si la persona no quiere decir literalmente «10x», todavía está tratando de decir que hay alguien significativamente mejor en todo.
Personalmente odio el término «ingeniero 10x». Al igual que «rockstar developer», son pobres descripciones y definiciones de lo que son los grandes desarrolladores.
Sería poco sincero decir que todos los desarrolladores son iguales. Con sólo mirar unos minutos a diferentes desarrolladores en Twitter, ya puedo ver a muchos desarrolladores que saben muchísimo más que yo. Dicho esto, hablar de ese «ingeniero 10x» como si pudieran aumentar significativamente las probabilidades de que tu negocio tenga éxito es bastante ridículo.
Ya está bien de machacar ese terrible estereotipo de «ingeniero 10x», hablemos de las cosas que realmente hacen a los grandes desarrolladores (aka el verdadero «ingeniero 10x»).
- 1. Son inteligentes pero conocen sus límites
- 2. Fuerte de forma independiente, pero todavía hacer un equipo kick-ass
- 3. Ayudan a los demás con problemas
- 4. Son amables y comprensivos
- 5. Te desafían (de la manera correcta)
- 6. Entienden que lo «nuevo y brillante» no es la solución para todo
- 7. Saben que no importa cuándo programes y qué tema del editor utilices
- 8. No se desviven por hacer algo más complejo
- 9. No piensan en el «yo» de «equipo»
- 10. Realmente quieres trabajar con ellos
1. Son inteligentes pero conocen sus límites
A menos que se trate de alguna base de código trivialmente pequeña, no conocen cada línea de código que ha entrado en producción. Seguro que pueden resolver muchos problemas por sí mismos, pero saben cuando están atascados y saben cuándo pedir ayuda.
¡No hay nada malo en pedir ayuda, sin importar tu nivel de habilidad!
2. Fuerte de forma independiente, pero todavía hacer un equipo kick-ass
Hay momentos para la programación de forma independiente y hay momentos para la programación en un equipo. Estos desarrolladores no se limitan a tomar una tarea y correr a una esquina para trabajar en ella en silo a todos los demás. El desarrollo más allá de la escala más pequeña requiere la colaboración constante con un equipo – ya sea la programación por parejas, las revisiones de código, el rebote de ideas, la ayuda en la depuración, etc.
Eso no quiere decir que un gran desarrollador no se sienta más cómodo trabajando por sí mismo en ciertas tareas, pero el desarrollo a gran escala es prácticamente imposible sin una fuerte colaboración.
3. Ayudan a los demás con problemas
¿Alguna vez has pedido ayuda a un colega y lo han hecho? Enhorabuena, puede que sean un gran desarrollador. Puede que busquemos ayuda en la documentación o incluso en Stack Overflow, pero a veces realmente necesitamos ayuda de alguien que conozca nuestra base de código. Si eres un desarrollador que sabe algo que podría ayudar a un colega, ¡ayúdale!
4. Son amables y comprensivos
Ser un gran desarrollador no consiste en ser un listillo, en presumir de intelecto, en no hacer caso a las reuniones porque eres mejor que esas personas. Ser un gran desarrollador también consiste en ser bueno con las cosas no técnicas. Si estás «ayudando» a un colega gritándole y criticando su código, deja de hacerlo.
5. Te desafían (de la manera correcta)
Esto puede sonar controvertido pero un gran desarrollador no te va a dar las respuestas todo el tiempo. Esto puede sonar en contradicción con el #2 y el #3, sin embargo, esto no tiene la intención de sostener algo sobre usted. Un gran desarrollador es alguien que puede darte lo suficiente para que puedas resolverlo tú mismo. Estos pequeños retos te ayudan a ser un mejor desarrollador y te permiten entender qué cosas podrías necesitar aprender más.
6. Entienden que lo «nuevo y brillante» no es la solución para todo
No quiere decir que estos desarrolladores no estén comprobando nuevas herramientas y lenguajes (pueden hacer lo que quieran en ese sentido) pero sí entienden que las nuevas herramientas no van a resolver mágicamente todos los problemas.
James Hickey 🇨🇦👨💻@jamesmh_dev¡Estamos obsesionados con conocer más herramientas y lenguajes!
Si tu arquitectura es mala, estás resolviendo los problemas equivocados, tu cliente no entiende cuando le intentas explicar las cosas… entonces las herramientas brillantes no ayudan.
¡Y éstas son fundamentales para el éxito de tu negocio!18:54 PM – 27 Jun 2019
7. Saben que no importa cuándo programes y qué tema del editor utilices
Aparte de los estereotipos de los programadores, ¿por qué la hora en la que programes va a suponer realmente una diferencia? Programa a media noche si quieres/te permite la empresa y no lo hagas si no quieres. La única razón por la que la hora debería entrar en juego es cuando has estado programando durante demasiado tiempo y no has dormido. La hora real del día no importa a menos que afecte a tu equipo (por ejemplo, trabajas a medianoche programando para evitar intencionadamente a todo el mundo).
Lo mismo con los temas del editor, ¿por qué un tema oscuro te haría realmente mejor? Te voy a dar una pista, no lo hace. Los temas oscuros tienen su propósito pero seguro que no es ese.
8. No se desviven por hacer algo más complejo
Esto puede ser obvio pero la semana anterior hubo otro hilo en Twitter en el que se hablaba de programar algo de forma compleja como si fuera algo bueno. Cuándo hacer nuestro trabajo y el de nuestros compañeros más difícil ha sido algo bueno?
Definitivamente hay veces que podemos acabar programando una solución compleja como si quizás no entendiéramos (aún) del todo el problema. Esto puede ocurrir en nuestro primer intento de programar la solución, es entonces cuando se suele escuchar a la gente hablar de refactorizar código o de no estar «orgullosos» del código que escribieron la semana/mes/año anterior.
9. No piensan en el «yo» de «equipo»
A menos que realmente hayan escrito cada línea de código fuente ellos mismos desde el compilador hasta toda la lógica de negocio, saben que fue un esfuerzo de equipo. No intentan quitarle el protagonismo a ningún otro miembro del equipo, sino que destacan todas las contribuciones que han hecho que el proyecto sea un éxito.
Cuando un proyecto va mal, no se adelantan y culpan a todos. Los proyectos en equipo fracasan como equipo, no como individuo (a menos que sea con mala intención). Ayudan a todo el equipo a aprender de los errores y ayudan a evitar que se repitan.
10. Realmente quieres trabajar con ellos
Al final del día, estos grandes desarrolladores son personas con las que realmente disfrutas trabajando. Te presentas en el trabajo (o de forma remota) y estás feliz de trabajar con un equipo tan impresionante.
Si conoces a algún desarrollador que suene así, dile lo increíble que es y lo feliz que eres trabajando con él 🙂