Perfecto. Acabas de conseguir tu primer trabajo como ingeniero de software. Te damos algunos consejos para no perderlo ????. O aunque no estés empezando para tu mejora continua como ingeniero que siempre es importante. Y como siempre, estos consejos vienen de gente que sabe. Para este post nos basamos en este hilo de twitter y este blog post que se escribió como reacción al hilo.  Mi resumen personal de los consejos:

  1. Lee mucho. Busca y lee (y ¡estudia!) cada año un par de buenos libros sobre aspectos relacionados con la ingeniería de software
  2. Aprende a fondo algún lenguaje de programación. Da igual cuál. En tu vida vas a usar muchos pero es importante que alguna vez hayas dominado alguno y que no simplemente tengas nociones de varios. Está muy bien ser “generalista” pero hay que ser especialista también en alguna cosa, son dos fuentes de conocimiento diferentes.
  3. Acostúmbrate a escribir, y ejecutar como parte de un proceso de integración continua, tests unitarios. Nunca vas a encontrar el tiempo o la motivación para hacerlo. Esto es como el tener niños, nunca es un buen momento. Pero después lo agradecerás. Importante también que los tests utilicen datos muy parecidos a los reales. Escribir tests “facilones” no sirve de mucho.
  4. Busca también tiempo para el refactoring del código. Tampoco encontrarás el buen momento pero, igual que con los tests, tu yo futuro te lo agradecerá
  5. Guarda la documentación con el código. Ya sabemos que el código nunca miente pero los comentarios y la documentación a veces sí. Una sugerencia para intentar que estén más actualizados es que estén juntos en el mismo repo. Así es, por ejemplo, más fácil que como parte de la revisión de un pull request se pidan actualizaciones en la documentación.
  6. Pon en marcha un buen sistema de migración de datos. Creo que yo, personalmente, nunca he visto un proyecto donde el esquema de la base de datos, supuestamente intocable, no haya cambiado. Esto implica que todo proyecto tendrá que lidiar con la evolución de la base de datos. Y aquí lo peligroso no es tanto actualizar los datos para que se adapten al nuevo esquema si no el tener claro que partes del código habrá que tocar.
  7. Plantillas, plantillas, plantillas (a leer con la energía de Steve Ballmer). Como en todo proceso, si nos podemos ahorrar decisiones y reemplazarlas por buenas prácticas o, aún mejor, con plantillas pues mucho mejor. Ganamos tiempo y ahorramos errores. Plantillas para todo (estructura de los proyectos, estilo del código,…) incluyendo procesos. Así será también mucho  más fácil integrar nuevos miembros a tu equipo.
  8. Sal de tu zona de confort. No hagas siempre el mismo tipo de proyectos. Demuestra que eres capaz de trabajar en proyectos con diferentes tecnologías, en diferentes campos, con equipos diferentes. Así aprenderás más. Y también te protegerás de cambios en el negocio.
  9. Habla con otros ingenieros. No hace falta hacer pair-programming (que también) pero sí que es importante discutir con los demás de posibles alternativas (y del porqué una solución o diseño es mejor que otro en su opinión).
  10. Enseña a los demás. No hay mejor forma que aprender que sistematizando lo que sabes, compartiéndolo con los demás y viendo sus preguntas.

Y si quieres más consejos, sigue con estas 20 lecciones después de 20 años como ingeniero de software.