Es un tema recurrente y un error que siempre se repite (y probablemente siempre se repita), principalmente entre los juniors y middles pero también entre “seniors” que no terminan de entender bien las reglas del juego. ¿Qué es lo que te hace ser un buen Ingeniero de Software? y sobretodo ¿qué es lo que te hace ser valorado en una empresa?
¿Qué valoran las empresas?
Es probable que a cualquier persona del sector que le preguntes la primera respuesta que le venga sea algo del estilo: alguien que es un crack a nivel técnico. Y si eso es cierto, alguien que domina sus herramientas técnicas es alguien que puede resolver problemas, ahorrar tiempo y dinero. Por supuesto una empresa valora a alguien que es bueno técnicamente pero no solo valora eso y en este punto es donde, sobretodo, los juniors y middles suelen herrar y donde muchos seniors se estancan:
Las empresas valoran tu capacidad de aportar valor al negocio.
La semana pasada leí un artículo de Addy Osmani (Ingeniero de Software en Google) donde comentaba alguinas de las lecciones que había aprendido tras 14 años en la empresa y, sorpresa, los softskills y tu capacidad de entender el negocio para aportar a él son puntos claves.
También Emilio Carrión (Software Engineer en Mercadona Tech) y, del cual escribí un artículo recientemente reaccionando a un vídeo suyo, destaca el mismo problema: obcecarnos en la excelencia técnica y ser software factories y olvidarnos del negocio, del producto y las relaciones que debemos tejer dentro de la empresa.
¿Qué te hace un buen Ingeniero de Software valorado por tu empresa?
A continuación te resumo, agrupado por categorías, algunos de los puntos más importantes que podrás aprender a lo largo de tu carrera profesional.
1. El Enfoque en el Usuario y la Acción
Obsesión por el usuario: No te enamores de la tecnología; enamórate del problema del usuario. Las soluciones elegantes suelen ser más simples cuando entiendes profundamente el problema de quien usa tu producto.
Prioriza la acción (Ship it!): La perfección paraliza. Es mejor lanzar un prototipo “feo” y aprender del contacto con la realidad que debatir teorías durante meses. El impulso genera claridad. Hablar es facil: “enseñame tu código”.
El mejor código es el que no se escribe: A veces, la mejor solución es no construir nada. Menos código significa menos errores, menos mantenimiento y menos deuda técnica.
2. Comunicación y “Soft Skills” (Que no son tan blandas)
Tener razón no es suficiente: Puedes ganar una discusión técnica y perder el proyecto. El verdadero trabajo es llegar a la solución correcta juntos, creando espacio para los demás.
Tu código no habla por ti: En organizaciones grandes, las decisiones se toman en reuniones donde no estás por personas con el tiempo justo. Debes hacer que tu impacto en tus proyectos sea legible y visible para estas personas, de forma que te valoren en las reuniones; de lo contrario no vas a existir para ellos porque tu código no habla por ti, tienes que hablar tu.
Admitir que no sabes genera seguridad: Los ingenieros senior que dicen “no lo sé” crean un entorno seguro para que otros pregunten y aprendan. La curiosidad es más valiosa que la superioridad fingida (cosa que se detecta fácilmente).
La red de contactos sobrevive a los empleos: Las relaciones que construyes hoy son las que te abrirán puertas mañana o te traerán socios para emprender en el futuro. Sé generoso con tu red.
3. Simplicidad y Diseño de Sistemas
La claridad es veteranía, el ingenio excesivo puede ser un lastre: Escribe código pensando en el extraño que tendrá que mantenerlo a las 2 de la mañana durante una caída del sistema. Optimiza para la comprensión, no para el ego. Evita las lineas mágicas de friki que al resto de mortales le llevarán horas entender. Programar solo es fácil. Ingenieria de Software es lo que pasa cuanod trabajas con más gente y aquí es donde escribir enfocado a claridad reduce riesgos.
Las innovaciones tienen un costo: Trata las tecnologías nuevas como “dinero” limitado. Úsalo solo donde realmente aporte un valor diferencial; para lo demás, lo “aburrido” funciona mejor porque sus fallos son conocidos.
Las abstracciones no eliminan la complejidad, la mueven: Una abstracción es una apuesta. Cuando falla (y fallará), necesitas entender qué hay debajo. Nunca dejes de aprender los fundamentos.
4. Cultura, Métricas y Procesos
Céntrate sobre lo que tienes control: Principalmente en grandes empresas existen un monton de variables que se escapan a tu control: decisiones de los manager, cambios de producto, decisiones de marketing, etc. Esto puede llevar a agobios y ansiedad. Los buenos ingenieros saben centrarse en su esfera de control saben delimitar las cosas sobre las que tienen control y las que no. En estos casos enfócate en la calidad de tu codigo, en cómo respondes en este ambiente y en aprender lo máximo. No inviertas energía en aquello que sabes que no puedes cambiar.
Equipos lentos = Equipos desalineados: La lentitud suele ser un fallo de coordinación, no de ejecución. Los ingenieros senior pasan más tiempo aclarando la dirección que escribiendo código más rápido.
Cuidado con las métricas: Cuando una métrica se convierte en un objetivo, deja de ser una buena métrica. Los humanos optimizamos lo que se mide, a veces a costa de la calidad real.
5. El Factor Humano y la Carrera Profesional
El “trabajo pegamento” (glue work) es vital pero invisible: Documentar, coordinar equipos y mejorar procesos es esencial. Si lo haces, asegúrate de que sea visible y valorado o te arriesgas a que sea un trabajo invisible y te estanques en tu carrera.
Escribir y enseñar son hacks de aprendizaje: Nada te obliga a entender mejor un concepto que intentar explicárselo a otro de forma sencilla.
El tiempo vale más que el dinero: Inicialmente queremos ser valorados y para ello estamos dispuestos a invertir ingentes cantidades de tiempo trabajando. Con el tiempo, llegará un momento en el que prefieras tener tiempo a conseguir tu siguiente ascenso o un pequeño aumento. Eso no compensa lo que sacrificas. Decide tus intercambios de forma consciente.
No hay atajos, solo interés compuesto: La experiencia y veteranía vienen de con la práctica y de acumular “cicatrices” en forma de experiencias. Trata tu carrera como una inversión a largo plazo.
Conclusión
Según el punto de tu carrega en el que te encuentres y del tipo de empresas en la que trabajes (si una pequeña startup o una gran empresa) es probable que te sientas identificado con unos puntos u otros. Estos puntos son un breve resumen no exhaustivo de todo lo que te vas a poder encontrar a lo largo de los años.