Grandes diferencias entre Programadores Junior, Semi Senior y Senior

Hace un tiempo que vengo trabajando con muchos programadores y creo que hay mucha variación entre las calificaciones de expertise que hace la misma población de programadores y las empresa que los contratan. Por eso es que voy a hacer un no breve resumen con las grandes diferencias que hay entre Programadores Junior, Programadores Semi Senior y Programadores Senior.

Según informes de Mi Carrera Laboral en IT, el 79,7% de las ofertas de empleo requieren a sus candidatos tener experiencia laboral previa y el perfil más demandado es el de candidatos con una experiencia de entre tres y cinco años, los que representan aproximadamente un 24% dentro del total de la oferta. Por eso todo depende de la empresa de recursos humanos o reclutador, de la empresa donde vaya a trabajar el programador y de la persona que contratemos.

La empresa puede estar muy achatada en sus bases (o tener un CEO a sólo un escalón) y eso hace que se logren pocos seniorities en muchos años. O puede pasar que la empresa tenga muchos diferentes niveles y que algunos logren seniorities muy fácilmente. En ambos casos los seniorities no son reales, en mi punto de vista, y sólo hacen que las personas tengan una visión distorsionada de su entorno y de (lo más importante) la competencia que hay entre otros programadores en el mercado.

En lo referente a la persona, la mejor forma de evaluar su expertise es por el grado de conocimiento técnico, por su propia capacidad para gestionar proactivamente su trabajo, y en algunos casos poder funcionar autónomamente, por la curva de aprendizaje de las nuevas tecnologías o entornos, o por la experiencia laboral de sus últimos años (no importa la totalidad de la experiencia, sólo los últimos 3-5 años, ya ven, yo programé cosas grossas en COBOL entre el año 1987 y el 1990, cuando mi hermano, un ahora Senior, tenía entre 7 y 10 años!). Es importante mantener actualizado el perfíl en LinkedIn por esto mismo, vale más el último año, que el primero luego de la universidad.

Ahora voy a detallar, con ayuda de otros posts que hablaron del tema, la forma conveniente para discriminar correctamente el seniority de cada tipo de Programador que nos encontramos en el ámbito laboral y conocer las grandes diferencias entre Programadores Junior, Semi Senior y Senior (y recuerden, para los lectores programadores, que sirve para conocer algo más sobre la remuneración a la que deben aspirar, pero también habla de las exigencias y responsabilidades):

Experiencia laboral. Cantidad de años de experiencia laboral en desarrollo de sistemas, programación, análisis funcional, diseño, etc. No cuentan los trabajos prácticos realizados durante sus estudios o lo realizado hace más de 10 años (yo hoy escribiría algo así: “DATA DIVISION – STORAGE SECTION – 01-CURRENT-SALARY PIC $99,999″, algo inútil realmente) Tampoco suma si la persona trabajó 2 años atendiendo una agencia de viajes o un cibercafé.

  • 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.

Conocimientos técnicos (Principalmente referido a las herramientas, tecnologías, lenguajes de programación, paradigmas de programación, base de datos, arquitecturas, web2.0, 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.

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. Tiene mucho de Planificación Estrategica, Inteligencia de Negocios y bastante de datamining.

Proactividad y Autonomía (Lo relativo sobre si el programador espera a que le asignen sus tareas o si, por el contrario, toma una actitud de mayor iniciativa y autonomía)

  • Junior: Es dependiente. 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.

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. En definitiva, 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, se esfuerza más. En definitiva, 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. En definitiva, el resultado de su trabajo en una situación de presión puede llegar a ser asombroso.

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 : No transmite claramente sus ideas por más brillantes que estas parezcan y por más conocimiento del negocio, no logra cerrar o arribar a una conclusión. Su relación con el entorno es débil y siempre quiere demostrar que tiene la razón.
  • Semi-Senior: Comprende el negocio, tiene buenas ideas pero su comunicación es pobre y desestructurada y suele perderse la idea en el transcurso de ella. Su relación con el entorno es mas proactiva y se permite escuchar diversos puntos de vista, aunque sigue pensando que el tiene razón.
  • Senior: Comunica, entiende el negocio y participa activamente en las decisiones de alto nivel, en el entorno es tomado como referente y sabiendo que tiene razón da el lugar a que otros opinen diferente permitiéndose el caso de modificar su postura si las diferentes opiniones lo justifican.

Seguimiento requerido (Es lo relacionado con el grado de atención que requiere de su superior inmediato, muy relacionado con lo anterior)

  • 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.

Indicadores de calidad, productividad e innovación (Indicadores varios relacionados con el trabajo que realizan y determinantes de las necesidades del proyecto)

  • Junior: Calidad: Baja o Media – Productividad: Baja o Media – Innovación: Poca o Nula
  • Semi Senior: Calidad: Media – Productividad: Media – Innovación: Poca o Media
  • Senior: Calidad: Alta – Productividad: Alta – Innovación: Alta

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.

Cómo bien aclara Diego Salama, de donde tomé mucho de este post, la misma persona puede tener características de Senior en un aspecto y de Junior en otro, o de Senior en una empresa y Junior en la siguiente, por lo que habrá que hacer un análisis 360 sobre la experiencia real y práctica del programador para ajustar su sueldo, encontra la mejor posición o presentarlo como candidato ante una búsqueda.

Creo que con todas estas herramientas podemos empezar a calificar, discriminar, ponderar y ordenar los CVs que hemos recibido y así priorizar nuestras entrevistas… las empresas de recursos humanos de tecnología deberían hacer más explícitas estas diferencias?

Comentarios

16 Comentarios en “Grandes diferencias entre Programadores Junior, Semi Senior y Senior”

  1. Kike on March 22nd, 2009 7:18 pm

    Hace bastante que no leia un articulo tan interesante en un blog
    Ademas de la controversia y “discusiones” que genera
    Saludos…

  2. Sergio on March 22nd, 2009 10:45 pm

    El MEJOR detalle que noté en el post es que aclarás que se pueden encontrar aspectos de Junior y otros de Senior en el mismo caso al mismo tiempo. Creo que es la base del entendimiento de los seniority: entender que puede no haber valores absolutos para clasificar al nivel.

    A su vez, este post me mete bastante presión para no trancarme en junior absoluto y tratar de pellizcar más alto en algunas ramas.

  3. pablotossi on March 23rd, 2009 8:45 am

    Kike, gracias y espero que las discusiones sean controlables, ya tuve que borrar dos comments donde se contaban aspectos de algunas empresas y empleados…

    Sergio, el gran desafío es siempre crecer, en lo profesional y en lo personal. Si hoy te calificás JR debés hacer lo posible, en todos los aspectos, para ser SSR o SR en algún tiempo. Pero no te apures, conozco más de 5 que dicen ser SSR o SR y luego demuestran no estar a la altura de las exigencias ;) (seguro vas a conocer a varios en los próximos años)

  4. Human Camp, una conferencia de Recursos Humanos innovadora | LatamTech.Biz on March 25th, 2009 8:00 pm

    [...] Además podremos hacer énfasis en la integración de las nuevas generaciones (en especial la generación Y) al ámbito laboral, pues cada día es más frecuente encontrar Juniors que son “Juniors con mucha experiencia” y no SSR. [...]

  5. Martín Vivas on March 28th, 2009 1:35 am

    Pablo muy buen articulo, pone en caja muchas estimaciones a veces relativizadas.
    Me lo habia salteado, por esto de tu nota de arriba.
    Mas de uno hara autoanalisis, y mas de un jefe se enterará porque paga lo que paga y obtiene lo que obtiene. O en criollo “¿que quere con tus 5 pesos?” decia un amigo.

    Abrazo

  6. Agustin Viñao on April 5th, 2009 11:07 am

    Solo un detalle a resaltar, en la Argentina, nunca pero nunca te van a modificar el sueldo por mas bueno que uno sea como programador, mas exactamente:

    “…habrá que hacer un análisis 360 sobre la experiencia real y práctica del programador para ajustar su sueldo, encontra la mejor posición o presentarlo como candidato ante una búsqueda…”

    Ningun empleador te va a dar mas plata de la que se arreglo por mas bueno que le resulte a la empresa, solo lo pueden llegar a hacer cuando uno plantea irse por una mejor oferta. Y lamentablemente siempre uno esta mal pago; mas si no recide en Capital Federal.

    Saludos

  7. emmanuel on April 7th, 2009 9:44 pm

    yo todavia me considero junior a pesar de tener mas de 4 años de experiencia.

  8. Jezabel Eljuri on April 18th, 2009 4:37 pm

    Muy buen articulo… justo buscaba algo exactamente asi. No son los años solamente lo que te da el rango que se tiene en la profesión… tambien influyen otros elementos como los explicados en este articulo. En Venezuela, de acuerdo a empresas y a las funciones que ejerces como tu rendimiento te dan el rango que ocupas.. para unos puedes ser Junior pero quizas tus conocimientos en un TODO te ubican en un SENIOR. Muy bueno!!!

  9. Jezabel Eljuri on April 18th, 2009 4:42 pm

    Muy buen articulo… justo buscaba algo exactamente asi. No son los años solamente lo que te da el rango que se tiene en la profesión… tambien influyen otros elementos como los explicados en este articulo. En Venezuela, de acuerdo a empresas y a las funciones que ejerces como tu rendimiento te dan el rango que ocupas.. para unos puedes ser Junior pero quizas tus conocimientos en un TODO te ubican en un SENIOR.

  10. Marcelo Mendoza on April 20th, 2009 12:52 pm

    Lindo trabajo, muy interesante. Entendía una clasificación por nivel de conocimientos, pero esto significa para mi una vuelta de tuerca. En buenahora. Muchas gracias.

  11. Matias on April 27th, 2009 8:04 pm

    Excelente el artículo, muy claro y detallado. Saludos!

  12. Mercedes on June 25th, 2009 8:05 pm

    Excelente Trabajo.
    Podría comentar que diariamente me pasan estos casos, que en una primera entrevista los tomamos como Semi Sr o Senior; y realmente por más de la experiencia laboral no rinden un buen examen de conocimientos, o luego en el puesto demuestran no estar capacitados para las tareas en cuestión.
    Otra cosa, hay personas muy inteligentes que no pueden medirse por años de experiencia, por ello se consideran mucho las competencias, como mencionas en tu trabajo, proactividad, calidad, innovacion, etc.

  13. Akashiya Moka on October 6th, 2009 12:43 am

    Buen post, tenía mis dudas sobre los signficados de Junior, Semi Senior y Senior, ahora ya sé k significan :) Gracias.

    Ahora mi dilema será encontrar el modo de lograr las cosas, el motivo es que tengo el conocimiento pero no lo he aplicado de forma laboral.

    Tengo parte de lo llamado Semi-senior y senior, pero por la falta de experiencia laboral soy Junior :((.

  14. Javi on October 10th, 2009 3:30 pm

    Me parece excelente, muy buena información, creo que aclara muy bien las diferencias entre los diferentes niveles referidos al desarrollo de software.

  15. Mkt Armando GaLa on November 9th, 2009 10:47 pm

    enhorabuena por el post,
    consideras que la diferenciacion de niveles, es aplicable en grandes rasgos al area de marketing??

  16. Johanna on March 10th, 2010 5:38 pm

    Que bien, tu post, te felicito por sacarnos de dudas a muchos, cuando apenas me doy paso a junior, y lucho por ser SSR..

    Gracias!!

Dejar un Comentario