La industria del software es relativamente joven. Constantemente está
redefiniendo a sí misma. Y por ello cometemos errores. Uno de los que
más daño hace a muchos productos de software es malinterpretar el valor
de una categoría tan importante en un equipo técnico como el del Programador Senior.
Basándose en las necesidades de la industria se ha ido entregando ese
título a la ligera. Debido, quizás, a la falta de gente con más
experiencia de valor y la propia autocomplacencia de
que al estar programando una cierta cantidad de años (a veces un par de
ellos), se pueda dar el salto de Junior a Senior. Un grave error.
Simplificando las etapas de un programador nos encontramos tres momentos profesionales: programador junior, intermedio y senior.
Cada uno de ellos representa una fase distinta en la que la mente de un
programador evoluciona y va a aprendiendo de gente con mayor
conocimiento y experiencia.
Programar es una tarea compleja y no debería medirse en años “picando
código”. Los años de experiencia son muy distintos entre diversos
programadores que han ido alcanzando metas y evolucionando en el camino
al de otros que han vivido una repetición constante del mismo año sin
evolucionar.
Programar es una tarea compleja y no debería medirse en años “picando código”
Existen distintos tipos de programadores: desde los más apasionados
hasta los que van a la oficina a pasar de la forma menos dolorosa el día
sin complicaciones. ¿A quién crees que deberías poner la etiqueta de
senior si todos tienen la misma experiencia en x años?
- El eterno junior. No es conflictivo pero se limita a aplicar lo que le funcionó con anterioridad.
- Los “francotiradores de tareas” que se limitan a sacar las tareas
sea como sea con la solución que menos esfuerzo implique. Abocando al
equipo a que acabe explotando el producto en el futuro sin remedio. No
quieren evolucionar ni se lo plantean.
- Los programadores gregarios, usando la terminología ciclista, están
enfocados en el código (pero ojo haciéndolo bien bien). Su foco es
plasmar en código los requisitos y cumplen los patrones marcados por la
gente de más experiencia o los líderes del equipo.
- Los programadores que empujan al equipo, motivados y con ganas de
hacerlo mejor. Estos son los más valiosos, los que cada día aprenden y
evolucionan ellos mismo y al equipo. Van superando etapas y adquiriendo
la etiqueta de senior con su trabajo diario.
¿Cómo dar el salto? ¿Cómo empujar a un programador Junior?
Un programador Junior sale de la universidad con la ideas muy claras,
pero se topa con un mundo profesional confuso y tarda en darse cuenta
que lo que ha aprendido en las aulas no vale de nada. Necesita un
mentor, idealmente alguien con mayor experiencia que él, que le guié y,
sobre todo, le ayude a apreciar el contexto de muchas decisiones de
diseño que tomará en su carrera.
La autocrítica y la inquietud de hacer cada vez mejor las cosas es
fundamental. ¿Alguna vez os ha pasado descubrir código que hicistéis
hace un par de años del que en su día estabáiis orgullosos y ahora mismo
simplemente apesta? Esas es una de las actitudes de mejora continua que
hacen evolucionar a los programadores y mejorar día a día.
La autocrítica y la inquietud de hacer cada vez mejor las cosas es fundamental.
No debes limitarte a aprender a picar código, si no a
tomar decisiones de programación. Limitarse a mirarse en el código es
un error. Por supuesto que hay que obtener la maestría en el lenguaje,
el framework o las herramientas que usas pero eso no te llevará a saltar
de nivel. Necesitas pensar menos en código y pensar en patrones,
arquitecturas y, en definitiva, en el contexto presente y futuro de lo
que estás desarrollando para equilibrar tus decisiones de programación.
¿Qué factores distinguen a un programador senior?
Algunos de los rasgos que distinguen a un senior frente a un junior o
un programador intermedio son varios, quizás haya muchos más, pero
algunos de los fundamentales son:
Lo importante es valorar la mejor actitud para el equipo
Simplificar estos conceptos nada triviales en los anteriores puntos
no debe limitar la elección del correcto programador senior para tu
equipo. Los años de experiencia son un buen punto de partida, pero como
comentábamos hay mucho detrás. Hay que dar oportunidades a todos de
demostrar su valía.
Puede que el chaval que lleva 3 años programando sea considerado mejor que lleva 10 años estancado o al revés. Repito: no es un ciencia cierta, lo importante es valorar las mejores actitudes para el equipo. Algunas de ellas las hemos dejado en este post pero podéis aportar las vuestras en los comentarios.
Foto | Flickr
Google+
@durbon
Editor en Genbetadev