Sobre como ser mejor developer

En abril pasado mi amigo Froilan Irizarry publicó un blog post hablando de sobre como convertirse en un “senior developer” y hace unos días en Facebook me encontré con un post preguntando “¿Cuál ha sido su estrategia para sobresalir en el campo laboral?”

Ambas publicaciones me hicieron pensar en cual es mi respuesta a esta pregunta de sobre como mejorar y sobresalir en la industria de desarrollo de software.

A continuación los factores que considero más importantes para lograr ser un mejor developer y con suerte sobresalir.

Enfocarse en el usuario y su experiencia
Todos mis proyectos comienzan con dibujos detallados de lo que será la solución final y de ahí trabajo para determinar cuales son los requisitos técnicos para lograr la solución. El diseño define los requisitos técnicos. Al cliente no le importa si usas C#, Haskell, PHP, VBScript o “whatever” para solucionar el problema. Lo que importa es la solución y en eso hay que enfocarse.

Los “soft skills” son tanto o más importantes que las capacidades técnicas
Entender el problema que quiere resolver el cliente, poderlo explicar a otros, poder plantear posibles soluciones, escuchar otros puntos de vista con respeto y empatía, ponerse en los zapatos de otros y ser tolerante.

Saber de lo que estás hablando
Ningún argumento le gana a una experiencia del mundo real en un escenario similar. Hacer muchos proyecto es la mejor forma de tener éxito. Todos los proyectos tendrán problemas y serán difíciles de completar pero si tienes muchos por lo menos algunos serán buenos y poco a poco con el tiempo aprenderás a reconocer y utilizar los patrones que te llevan a lograr proyectos exitosos.

Compartir lo que has aprendido
Para mi la mejor forma de aprender y aclarar ideas es tratando de compartirlas. Trato de compartir lo que aprendo con todo el que le interese. Para esto escribo blog posts, hago presentaciones en “meetups” y conferencias y recientemente rants en Twitter.

“Under promise and over deliver”
Ser conservador en cuanto a estimados de tiempo y “features”. Luego si el tiempo permite, sorprender al cliente con una experiencia mejor a la esperada. Este funciona todas las veces.