domingo, 29 de enero de 2012

¿Cómo diferenciar programadores Junior, Semi Senior y Senior?


Hace unos días me surgió esta duda, investigando por allí me encontré con un artículo del blog de Diego Salama que me pareció el mas completo  y que hoy lo comparto con ustedes.

La forma de categorizar esta muy ligada a la filosofia de la organización, pues en unas utilizan los años de experiencia, en otras en nivel técnico de conocimientos entre muchas otras variantes que veremos a continucación.

1.- Según Experiencia laboral 
Cantidad de años de experiencia laboral en informática.
No cuentan los trabajos prácticos realizados durante sus estudios. Tampoco suma si la persona trabajó 2 años atendiendo una agencia de viajes.

Junior: Menos de 2 años de experiencia.
Semi Senior: De 2 a 6 años de experiencia.
Senior: Más de 6 años de experiencia.

2.- Conocimientos técnicos 
Principalmente referido a las herramientas, tecnologías, lenguajes de programación, paradigmas de programación, base de datos, arquitecturas, etc. que deba utilizar para cumplir sus labores.

Junior: Para desempeñarse suele requerir acompañamiento. El código que genera puede presentar mayor cantidad de bugs de lo esperado. Probablemente no maneja todas las herramientas que se necesitan para la tarea.
Semi Senior: Técnicamente autosuficiente. Puede desarrollar funcionalidades más complejas y ejecutar proyectos de mayor envergadura. Pero no es un crack y todavía comete errores “evitables”.
Senior: Es referente técnico dentro del equipo. Su conocimiento le permite colaborar en definiciones arquitectónicas y desarrollar los proyectos más desafiantes. Su código funciona, es bueno y fácil de mantener.

3.- Conocimientos funcionales 
Relacionado a los procesos, metodologías, estándares, circuitos requeridos para cumplir sus labores.

Junior: Para desempeñarse suele requerir cierto nivel de acompañamiento. No conoce todos los procesos, ni los estándares. No es experto en los temas propios del negocio.
Semi Senior: Maneja los circuitos lo suficiente como para desempeñarse. Respeta los estándares y metodologías. Conoce buena parte de los procesos del negocio.
Senior: Ayuda a definir procesos, metodologías, estándares y circuitos. Por supuesto cumple los existentes. 

4.- Proactividad 
Indicando si la persona espera a que le asignen sus tarea o si por el contrario toma una actitud de mayor iniciativa.

Junior: Necesita que frecuentemente le definan su trabajo. Está a la espera del siguiente pedido. Cuando tiene tiempo libre no sabe con qué seguir. Depende de otros para avanzar con sus tareas.
Semi Senior: Se preocupa por aprovechar mejor su tiempo. Pide nuevas asignaciones cuando tiene tiempo disponible y es autosuficiente para llevar adelante una gran parte de sus tareas.
Senior: No solamente recibe requerimientos, sino que los busca y genera. En muchas oportunidades es él quien le genera asignaciones nuevas a su superior.

5.- Seguimiento requerido 
Atención que requiere de su superior inmediato.

Junior: Requiere seguimiento diario a nivel detallado.
Semi Senior: Requiere seguimiento semanal y a nivel general.
Senior: Proactivamente reporta el estado y avance de sus tareas.

6.- Indicadores de productividad 
Indicadores varios relacionados con el trabajo que realiza

Junior: Calidad: Baja/Media - Productividad: Baja/Media - Innovación: Poca o Nula
Semi Senior: Calidad: Media - Productividad: Media - Innovación: Poca
Senior: Calidad: Alta - Productividad: Alta - Innovación: Alta

7.- Cumplimiento de fechas 
Cumplimiento de las fechas de entrega pautadas. Se aplica a las tareas de análisis, desarrollos, documentación, reporting, etc.

Junior: La mayoría de las veces no cumple con sus estimaciones.
Semi Senior: A veces cumple, a veces no.
Senior: Siempre cumple. Cuando surge un desvío (inevitablemente) lo informa adecuadamente y con anticipación.

8.- Respuesta bajo presión 
Referido a situaciones extremas… no a la corrida semanal para cumplir con la fecha de entrega del siguiente release en producción.

Junior: Le pueden pasar alguna de las siguientes cosas: - Se bloquea - Se angustia - Se confunde - Se estresa El resultado de su trabajo en una situación de presión no es bueno.
Semi Senior: Le pueden pasar alguna de las siguientes cosas: - Se enoja - Se defiende - Se distancia (se borra) - Se resigna El resultado de su trabajo en una situación de presión a pesar de todo, es bueno.
Senior: Le pueden pasar alguna de las siguientes cosas: - Se entusiasma - Se compromete - Se hace cargo - Se inspira.  El resultado de su trabajo en una situación de presión puede llegar a ser asombroso.

9.- Relación interpersonal.
Más allá de los conocimientos y capacidades de una persona, la habilidad de comunicarse con su entorno es fundamental para su desarrollo profesional.

Junior: Puede tener dificultades para transmitir sus ideas con claridad. No logra arribar a conclusiones concretables. No siempre sabe interactuar con otras personas de forma colaborativa y profesional.
Semi Senior: Se hace entender pero no logra ganarse la simpatía ni despierta la vocación de sus colaboradores para acompañarlo en sus sugerencias. Se permite escuchar otros puntos de vista pero sigue intentando que sean sus ideas (buenas y malas) las que prevalecen.
Senior: Es bueno comunicando, pero principalmente escuchando. Puede participar en decisiones de alto nivel y colaborar si es necesario en actividades más operativas privilegiando el resultado y la calidad de las relaciones por sobre su autoría en las ideas.

Esto es un criterio que se podría tomar como referencia para la clasificación, aunque en mi opinión no debe ser considerado al pie de la letra, pues por ejemplo podemos ver que en el criterio 8 (Respuesta bajo presión) el programador Junior puede bloquearse, angustiarse o confundirse; tales situaciones le pueden pasar a cualquiera de los tres niveles dependiendo de las circunstancias.  El Cumplimiento de las Fechas es una cuestión de Responsabilidad y empleo de tiempo, características propias de la personalidad de la persona.

En fin cada organización es un mundo y podrá clarificarlo como mejor les parezca; para ello aquí va un adelanto.

¿y tu que opinas?

7 comentarios:

Anónimo dijo...

que interesante este post

Reinaldo Marin dijo...

Muy interesante .. gracias!!

Anónimo dijo...
Este comentario ha sido eliminado por un administrador del blog.
Anónimo dijo...

este post es identico a uno escrito por Diego Salama, que onda gato?

Unknown dijo...

muy buena información, sabes si alguna organizacion regula estos terminos como por decir la IEEE por ejemplo... "es un decir"... en fin, quiero saber si es un termino que se ha adoptado por los desarrolladores de software o es un termino establecido por alguna organizacion privada, publica o gubernamental

Unknown dijo...

Como te robas un artículo? xD http://www.diegosalama.com/2008/09/03/diferencias-entre-programadores-junior-semi-senior-y-senior/

Unknown dijo...

Saludos a todos, en las dos primeras lineas explico exactamente el origen de la información.

Publicar un comentario

Twitter Facebook Google Plus Favorites

 
Design by Free WordPress Themes | Distribuida por: Free Blogger templates