En una de las entrevistas más caóticas y difíciles de mi carrera profesional como desarrollador de software me preguntaron: "Tu que te consideras: ¿junior, mid ó senior?" Al instante respondí lo que pensaba: "No creo en esos títulos. Soy desarrollador con más o menos experiencia en ciertos temas."

Pareció que les dije que se fueran al demonio. Se limitaron a observarme de mala manera y a explicarme que tendría que escoger un término por el salario y por las responsabilidades. Me parecía increíble. ¿No es contradictorio? ¿No se supone que las entrevistas son para conocer la experiencia y con ello brindarme responsabilidades y salario? En ese momento no lo creía, me parecía sorprendente.

Hoy, cinco años después las cosas no han cambiado mucho. Por desgracia, el mundo de la consultoría cree que un desarrollador senior tiene más de tres años de experiencia en determinada tecnología. Y ya. Pero, ¿porque tres años? ¿a caso no importa el negocio o el equipo? ¿son suficientes esos años para solventar, priorizar y dar soluciones acordes al negocio? ¿quién dijo que tres años era suficiente? No creo que este término tenga que ser respaldado solo por los años. Déjame explicarme.

El ejemplo incómodo

Desarrollador 1 trabaja como desarrollador desde hace 10 años en una empresa de transporte. Programa en java usando procedimientos almacenados en SQL Server y usando java server faces.

Desarrollador 2 trabaja desde hace 3 años. Ha estado en 3 empresas de diferentes giros, desarrollando en java y c#. Conoce varios motores de base de datos  y varias tecnologías frontend.

Diferentes años, diferentes experiencias. ¿Es acaso el desarrollador 1 mejor que el desarrollador 2 o viceversa? No. No lo creo. ¿Son capaces de hacer lo mismo? Tal vez. ¿Tienen el mismo seniority? No lo sé. Es cuestión de contexto.

Woman sitting at a desk in front of coding computer screen
Photo by Kelly Sikkema / Unsplash

Todo se basa en nuestra realidad como empresa

Cuando buscamos un desarrollador con experiencia deberíamos de preguntarnos qué necesitamos y enfocarnos en nada más que en eso.

¿Tiene experiencia en el giro de la empresa? Si soy un banco que usa java, vale mas la pena un desarrollador que tenga tres años de experiencia creando productos bancarios en c# que alguien que tenga 3 años de experiencia en java, pero haciendo cosas de marketing.

¿Tiene experiencia en la tecnología? Si soy una startup con un producto de alto rendimiento hecho en clojure, valdría más la pena alguien que tiene un año de experiencia resolviendo problemas de performance en dicho lenguaje que alguien que ha programado en otras herramientas los últimos diez años.

Inclusive, ¿es este desarrollador "senior", comparado con X? Donde X puede ser cualquiera que ya esté en tu equipo y demuestre tener habilidades técnicas y empresariales de alto nivel.

Mi conclusión

Para mí,  los roles y niveles en desarrollo son algo relativo y que debería de ser sustentado en el contexto empresarial, tecnológico y de equipo. Le doy más valor a la experiencia real basada en lo que necesito (negocio o tecnología) y a muchos otros factores, que solo a contar los años.

Ahí te la dejo, una reflexión más filosófica que técnica.