¿Qué caracteriza a los mejores ingenieros de software?
En el año 2019 se publicó un estudio de Microsoft en el que buscaban entender qué define a los mejores ingenieros de software.
Aplicable a ingenieros de software pero también a Data Scientists e ingenieros de ML.
Estos son los 5 atributos que les caracterizan:
- Escribir buen código. El código no es un fin en sí mismo, pero sí el medio a través del cual plasmamos nuestro trabajo. Los retornos son decrecientes a partir de un punto, pero hay que alcanzar ese nivel mínimo.
- Adaptar decisiones y trabajo al valor y costos futuros. Esto es tener una visión global y a largo plazo de las cosas para poder tomar decisiones que maximicen el valor futuro. Siempre hay que preguntarse: cómo se va a mantener esto y qué escenarios futuros pueden ocurrir, pero sin caer en «over-engineering». La virtud está en el medio.
- Tomar decisiones informadas. Mantener la mente abierta y ser continuamente crítico con el conocimiento establecido. Construir hipótesis y validarlas con datos. Pero también entender cuándo no hay suficientes datos y lo mejor que tienes es el «gut feeling«.
- Hacer el trabajo de los demás fácil. Esto es algo que salta a la vista cuando trabajas en un entorno profesional. Los ingenieros que facilitan la vida a los demás son altamente valorados y su impacto se multiplica. Ayudar a que otros tomen mejores decisiones de forma sencilla es clave.
- Curiosidad y aprendizaje continuo. En un mundo en el que todo avanza tan rápido, la curiosidad y la motivación intrínseca para aprender distancian a los mejores a lo largo del tiempo.
Como es lógico, programar es importante pero no lo es todo, ni mucho menos.
Los mejores ingenieros no son los mejores programadores, sino los mejores en entender las necesidades del negocio y de las personas con las que trabaja, y en adaptar sus comportamientos en consecuencia.
Información basada en el paper «What distinguishes great software engineers?«.