magnify
Home Metodología Diferencias entre programadores Junior, Semi Senior y Senior
formats

Diferencias entre programadores Junior, Semi Senior y Senior

¿Cuáles son las principales diferencias entre un programador junior, un semi senior y un senior?

Durante las últimas semanas recibí algunas consultas sobre este tema, lo que me motivó a escribir este artículo.

No es un tema de simple respuesta. Incluso buscando en Google no se encuentran respuestas maravillosas sobre el asunto.

Lo que sucede en realidad es que las diferencias entre los distintos “niveles” dependen de las necesidades y la cultura de cada organización y de cada equipo. En distintos entornos lo que diferencia a un senior de un junior puede variar.
En algunas organizaciones la diferencia solo está dada por la cantidad de años de experiencia laboral que la persona tenga, en otros casos depende del grado de conocimiento técnico y en otros está asociado a la capacidad de la persona de gestionar proactivamente su trabajo.

Lo que no tiene cuestionamientos es que se trata de una temática sumamente sensible. Habitualmente la remuneración del ingeniero de software se asocia a su nivel de seniority, así que seré lo más cuidadoso posible al presentar el tema.

En este artículo comparto algunos de los criterios que pueden ayudar a definir el nivel de seniority de una persona. Cada uno de los indicadores puede tener más o menos importancia de acuerdo a cada organización (al final del artículo incluiré una encuesta para conocer tu opinión).

Si el lector es el Gerente del equipo, podría asignar una ponderación a cada uno de los indicadores antes de aplicarlos.
Si en cambio es un programador, mi sugerencia es que intente dominar todos los aspectos, aprovechando las oportunidades que se le presenten para su desarrollo.
Si el lector es el Gerente de Recursos Humanos, mi consejo es que ayude a comunicar dentro de la compañía cuáles son los aspectos que más se valoran.

Experiencia laboral

Cantidad de años de experiencia laboral en informática.
No cuentan los trabajos prácticos realizados ni trabajos dentro de otras actividades.

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

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.

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.

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

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.

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 e inspira a otros…
El resultado de su trabajo en una situación de presión puede llegar a ser asombroso.

Relación interpersonal

(Gracias a Javier Scavino por mencionar este aspecto).

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

Vale la pena mencionar que la misma persona puede tener características de Senior en un aspecto y de Junior en otro.

Me interesaría saber cuáles de estos criterios te parecen los más importantes a la hora de determinar el nivel de seniority de un desarrollador. En la siguiente encuesta podrás marcar hasta 3 opciones.

¿Cuáles le parece que son los 3 criterios más importantes para diferenciar programadores Sr, SSr y Jr?

Ver Resultados

Loading ... Loading ...
 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn

93 de respuestas

  1. Saludos:

    Me encuentro en el desarrollo de tesis con el Tópico PERFIL DEL DESARROLLADOR CON EL USO DE GESTORES DE CONTENIDO
    y me surgen distintas variables:

    Cabe mencionar que esto me serviría para poder fundamentar mi trabajo de tesis
    ¿Con que fuentes de información te basaste?
    ¿Menciona alguna de las fuentes?

    Gracias que tengas buen día

  2. Marina

    Diego, Excelentee Post!!
    La verdad, Felicitaciones…
    Yo me dedico a RRHH con un amplio background y habiendo trabajado en IT y te puedo asegurar que tu acercamiento al tema es muy completo!

    De todos modos quisiera agregar una pequeña reflexión o aclaración.
    Creo que al introducir el tema de las competencias soft se pueden cometer algunos errores.
    En realidad, y esto lo puede demostrar la práctica, un Junior puede tener tanto o mejor Comunicación; Orientación a la calidad; Productividad; Cumplimiento de fechas o tolerancia a la presión que un SemiSenior o Senior.
    Lo que varía es que lo hace en un contexto de complejidad o exigencia menor… pero un Junior bien podría manejar la presión con total tranquilidad, seguridad y auto-confianza en la responsabilidad que a él respecta. Lo mismo podría manejar una calidad excelente en sus tareas, altísima productividad, cumplimiento de fechas y orientación a la calidad…

    Igualmente si no hacemos una discriminación tan fina, creo que el concepto se entiende y es mucho mas difícil proponer algo que criticar. Asi que nuevamente Felicitaciones y gracias por el aporte.

    Saludos

  3. Gracias Marina por tus comentarios, estoy de acuerdo con ellos.
    Saludos.
    Diego.

  4. Hola Jonathan. Puedes utilizar el contenido en tu tésis si lo deseas.
    Para escribir el post me basé en mi experiencia personal.
    Saludos y éxitos.
    Diego.

  5. juan

    Hola,
    entre a una empresa hace cuatro días y pues estoy entusiasmado y a la vez muy asustado ya que soy programador junior o tal ves muy junior. y lo que acabo de leer me ha ayudado a entender cual es mi posición dentro de la empresa y el recorrido que tengo por delante; por hacer lo posible para escalar cada dia mas y poder convertirme en programador senior.

  6. Millan

    Para mi la labor principal de un senior dev es “crecer” o educar al equipo, ya que el rendimiento de la gente junior esta directamente relacionado con la implicación de los senior devs

  7. Felipe

    Creo que el articulo tiene varios puntos rescatables pero provee una vision cesgada sobre los desarrolladores de software en los itemes respuesta bajo presion y relacion interpersonal.

    Por otra parte, el articulo se basa ampliamente en el criterio corporativo que utiliza anios de experiencia como indicador base para comparar. Este criterio puede dejar un amplio espacio para el error: Digamos que. la curva de aprendizaje para muchos stacks de tecnologias se ha vuelto cada vez mas corto, cada persona tiene metodologias cognitivas distintas y distintos grados de eficiencia a la hora de abordar un problema.

    Todas estas caracteristicas inherentes a los profesionales no encajan con este sistema cesgado de clasificacion.

  8. Ronald

    Muy bueno el blog ahora se donde estoy y que hacer para ir mejorando cada dia…

  9. Ariel

    Me encanto la descripcion de cada categoria, debido a mi confusion sobre el tema…yo soy programador java web bueno en mis conocimientos sobre la herramienta pero con poca experiencia en un ambiente corporativo de trabajo por lo tanto sigo siendo un Jr. como programador..

  10. Strelok!

    Hey genial! yo tengo 17años y programo hace 5 años, empece con HTML, luego me lanze con flash, javascript, CSS (Todo diseño web).
    Hace 3 años empece con PHP, ASP y Mysql. y hace 2 empece con C/C++ la verdad todavia soy un novato y me entusiasma mucho la programación, todavia soy un Junior ya que me siento identificado con muchas cosas del Junior, pero tambien con algunas del Semi-Senior.

  11. Lali

    Fenomenal! Al dedo para un TP!

  12. Francisco Benitez

    Diego,
    Soy nuevo en esto y tengo 33 años, comence con el tema de la programacion hace varios años con clipper 5.0, pero recien hace 2 años me dedique a hacer cursos con lenguajes mas nuevos. El problema es que, ahora con un poco de conocimiento no logro conseguir trabajo para poder empezar a adquirir conocimiento. Obviamente que lo que pretendo es ser Junior para empezar. Mas alla de las categorias que planteas te pido que me seas sincero y me digas si tengo alguna posibilidad, me quedo pensando si la edad puede ser un impedimento.
    Ademas, apelando a tus conocimientos te consulto si hay algun lugar donde tomen juniors para poder dejar mi CV.
    Sobre los niveles desarrollados en “bajo presion” me parecio muy interesante. Calculo que la apreciacion de la “presion” es muy subjetiva, segun las herramientas teoricas, practicas y psicologicas que uno tenga para resolver problemas.
    Realmente, gracias, y el articulo me sirvio de mucho para conocer el ambiente.
    Saludos
    Francisco

  13. WALTHER

    Interesante me ha ayudado mucho y a la ves reflexionar unas cositas…

    sobre la votacion pues solo dire esto:

    “La praxy hace el Maestro”

    No hay mejor aprendisaje que el Dia a Dia..

  14. Anónimo

    Francisco Benitez :
    Diego,
    Soy nuevo en esto y tengo 33 años, comence con el tema de la programacion hace varios años con clipper 5.0, pero recien hace 2 años me dedique a hacer cursos con lenguajes mas nuevos. El problema es que, ahora con un poco de conocimiento no logro conseguir trabajo para poder empezar a adquirir conocimiento. Obviamente que lo que pretendo es ser Junior para empezar. Mas alla de las categorias que planteas te pido que me seas sincero y me digas si tengo alguna posibilidad, me quedo pensando si la edad puede ser un impedimento.
    Ademas, apelando a tus conocimientos te consulto si hay algun lugar donde tomen juniors para poder dejar mi CV.
    Sobre los niveles desarrollados en “bajo presion” me parecio muy interesante. Calculo que la apreciacion de la “presion” es muy subjetiva, segun las herramientas teoricas, practicas y psicologicas que uno tenga para resolver problemas.
    Realmente, gracias, y el articulo me sirvio de mucho para conocer el ambiente.
    Saludos
    Francisco

  15. Chelín

    Me parece bueno el documento. Sin embargo, quiero destacar algunos aspectos a poner bajo lupa. En algunos casos, las empresas no tienen en cuenta la experiencia funcional que pueda poseer un postulante en programación si el lenguaje es distinto al que están utilizando para desarrollar o mantener sus aplicaciones.Vale decir, que si una persona era un excelente programador (senior o analista programador) en un lenguaje que por caducidad del mismo debió pasarse a otro, es mucho más probable que esa persona, con muy poca inversión sea más productiva que otro postulante con 1 ó 2 años de experiencia en programación del lenguaje que utiliza la empresa pero con poco conocimiento funcional del negocio.Desde el año 2000 al 2005 aproximadamente, las empresas que reestructuraron sus organizaciones creyeron que el cambio 2 x 1 (2 juniors por 1 senior) sería los ideal, pues pensaron que enseñar el negocio y todos sus vericuetos era tan fácil como aprender a programar. A la hora de la verdad, eso no resultó no resultó tan conveniente, pues los “juniors” eran justamente eso: “juniors”. Chicos que largaban un proyecto porque conseguían otra empresa que les aumentaban los luncheon tickets o que no aguantaban la presión o ya habían ahorrado dinero suficiente para irse 1 mes de vacaciones a Brasil. A la larga, esas empresas tuvieron importantes dolores de cabeza y muchas aspirinas que comprar.
    También he conocido juniors que la “descosen”. Pibes con responsabilidad y ganas de aprender. Sumamente entusiastas y con muy buena predisposición y por el contrario, Senior que creían saberlo todo haciendo lo que ellos quisieron pues creyeron que cantidad de años avalan calidad de trabajo.

  16. Mónica

    Excelente explicación, muchas gracias me sirvió mucho, saludos!!!!!

  17. Arturo

    Exelente articulo, ahora entiendo muy bien la diferencia. Aunque si descubri que en mi caso particular el nivel varia de acuerdo al tipo de clasificacion. Buen tabajo.

  18. Carlos

    Excelente artículo. Felicitaciones y gracias.

  19. Iván

    Muy bueno.. muchas gracias!!

  20. Ezequiel

    Todas esas variables son excelentes indicadores y debiera hacerse un promedio entre ellas.
    Me hubiera gustado poder votar por todas. Ya que también podríamos darle a cada una su peso en el análisis general.
    Me explico?

  21. Muy buen artículo!

  22. UnTrollCualquiera

    Buen articulo solo se me ocurre agregar que hay que tener cuidado con los abusadores que con el pretexto de trabajar bajo presión se la pasan menospreciando el trabajo con el fin de pagar menos.

    Para mi lo mas importante es el cumplimiento de fechas, pues es ahí donde se refleja la verdadera experiencia y conocimiento.

  23. Mauricio

    Los años de experiencia laboral (siempre utilizando las mismas tecnologia y dentro de dominios de problema similares) posiblemente sea uno de los mejores indicadores que exista hasta el momento para determinar la productividad. Entendiendo la productuvidad como capacidad para y resolver problemas tecnicos.

    Ahora bien, el exito dentro de una organizacion poco tiene que ver con la capacidad tecnica sino mas bien con las capacidades interpersonales para nadar dentro de una organizacion (politica; empatia; amiguismos; etc)

    Creo que en el articulos se estan mezclando comportamientos que son propios a diferentes roles dentro de un equipo y se asocian con el Seniority. Por ejemplo ‘Relación interpersonal’: es marcada la diferencia entre un lider de proyecto y un lider tecnico, el primero mas extrovertido (dispuesto a transmitir que es lo que pasa en el equipo a los stakeholders) y el segundo mas introvertido (orientado a entender problemas y soluciones).

    En la practica Junior; Semi Senior; Senior es puro bla bla que utiliza quien te contrata para pagarte menos.

  24. [...] más especificas que pueden ayudar a definir el Seniority nos las comparte Diego Salama -lean su articulo;  aunque él lo enfoca a la parte de un perfil de programador- vale la pena, se puede adecuar a [...]

  25. MiguelAngel MIniguano

    Excelente contenido, la experiencia es un factor fundamental que no se improvisa.

  26. El artículo me gustó, pero en varios de los criterios mencionas cuestiones que tienen que ver más con lo actitudinal que con la experiencia. Conozco muchos juniors que tienen la motivación que le falta a los seniors.

    La cuestión técnica de los puntos desarrollados me parece bastante acertada, estoy de acuerdo practicamente con todas.

    Gran trabajo, felicitaciones.

  27. En la encuesta, cuando seleccioné “Otro” era porque quería poner “Experiencia Laboral” pero aclarando ciertas cuestiones:

    La experiencia laboral no se determina simplemente por una cantidad de años trabajados, sino que hay por lo menos dos factores más:
    – La capacidad de capitalizar las experiencias (se ve a lo largo del trabajo)
    – El tiempo de trabajo real de una persona (en desarrollo web una persona puede trabajar un horario normal, puede ser freelancer o bien puede adoptar ambas modalidades y estar trabajando casi todo el tiempo, esto significa que, dependiendo del caudal de trabajo resuelto, puede tener “más/menos y/o mejor/peor” experiencia).

  28. Miguel

    Me parecio muy ilustrativo.

  29. Raúl González

    Muy buen blog.
    Precisamente ahora estoy tratando de incursionar en programación y me dió mucha información.

  30. Gisela Peña

    Es el peor documento de diferenciación de perfiles, me parece que un perfil no se puede definir como criterios de evaluación y orientado a las deficiencias que las personas puedan tener.

  31. Hola Gisela, gracias por compartir tu opinón. Cuando escribí el post en el 2008 la intensión fue ayudar a personas que preguntan que aspectos diferencian a un programador junior, semi senior o senior y simplemente traté de reflejar lo que mi experiencia me marcaba. Lamento si alguna cosa que escribí te ofendió, para nada intenté regodearme resaltando deficiencias que las personas puedan tener.
    Es más, considero que yo mismo tengo oportunidad de mejora en muchos de los puntos que he marcado.
    Saludos, Diego.

  32. HEVER IBM

    SERIA MUY IMPORTANTE TENER EN CUENTA ESTA INFORMACION PARA AQUELLOS QUE VAMOS POR EL CAMINO DE LA PROGRAMACION, E INCLUSIVE HACER UN TEST EN EL QUE PODAMOS SABER EN QUE NIVEL ESTAMOS, OBVIO RESPONDIENDO HONESTAMENTE LAS PREGUNTAS PARA SABERLO. SALUDOS, HEVER IBM

  33. rafa

    En mi opinión el término Junior sólo debería utilizarse para determinar los años de experiencia, nivel de conocimientos y rango salarial, aplicarlo a otros aspectos, como los que aquí se mencionan, es subjetivo y sólo aporta connotaciones peyorativas.

  34. Alfonso Mendieta

    Excelente, queda claro y te da una buena referencia de como es esta clasificación global.

    Gracias

  35. Me recordo un articulo que escribi hace 8 años.
    Muy bun articulo.

  36. Interesante guía. La más interesante, la de “no existe un punto desde el cual pasas de Junior a Senior”. Yo pensaba en comprarme el carnet en Rumanía.

    Por lo que veo y según estas descripciones, cualquiera se pué llamar Programador Junior.
    Yo creo que no se han mencionado las tecnologías mínimas que deberían conocerse, tales como POO, MVC, Ajax, las cuales ya requieren un cierto entendimiento y “ganas de hacer lo que haces”.

    Saludos.

  37. Andres

    Muy buen artículo muchas gracias

  38. Maxi

    Buen Dia Diego! Muchas gracias por tu artículo. Lo encuentro muy acertado, criterioso y cuidadoso también.

    Hace no mucho ingresé a una empresa como desarrollador y la verdad, como comenta Juan mas arriba, me siento un poco ansioso, nervioso y asustado. Pero a decir verdad por otro lado bastante entusiasmado por lo que voy a aprender en breve y con metas de poder seguir desarrollándome profesionalmente. Saludos y gracias de nuevo!

  39. Gracias por todos los comentarios. Mucha suerte en tu nuevo trabajo!

  40. Que buen articulo me aclaro muchas dudas, aunque soy Ingeniera Civil se enfoca mucho a los escalafones de la profesión!! es aplicable..

  41. Tic__Tak

    Esta bueno el Articulo.

    Quiero comentar algo.

    Bueno apenas voy para 2 años soy Consultor de Oracle.

    Pero bueno , en mi experiencia he cumplido con el tiempo asignado durante este tiempo porque como sabemos ponen colchon de tiempo para realizar algunas actividades y eso lo podemos usar para estudiar sobre el tema o investigar.
    Solamente 1 vez si no pude resolver algo que totalmente desconoci y no encontre informacion pero de ahi enfuera si he logrado responder bien.

    Tambien he visto compañeros de trabajo que si cumplen con tiempos , bueno no todos algunos si algunos no.
    Eso porque la empresa donde estoy absorben a los que no saben y aprenden sobre proyectos.

    En el Articulo me identifique en algunas cosas.

    En Respuesta bajo presió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.

    Pues yo como Junior (Se que somos diferentes todas las personas pero me gustaria compartir experiencia), No me bloqueo lo que hago es buscar , pensar en posibles soluciones, pero si me enojo conmigo mismo si pasa tiempo y no logro avanzar, si tambien a veces me resigno pero por un lapso corto (porque alguien tiene que terminarlo x,x y solamente uno), pero a pesar de todo a veces sale bien y a tiempo por alguna extraña razon el ultimo dia a la ultima hora x.x.

  42. Excelente post me gusto mucho porque a veces quisiera tener un feedback real y saber en que nivel me encuentro con respecto al desarrollo, en mi caso hace tiempo decidi renunciar a Java y enfocarme de lleno a iOS por ende leo, analizo, programo muy a menudo sobre esta plataforma que se ha convertido en mi forma de vida y vaya gracias a este post aprendi en donde estoy, hacia donde quiero ir, cuales son mis areas de oportunidad a mejorar por cierto indudablemente me senti identificado cuando al final mencionas que en algunos puntos eres junior pero en otras puedes ser senior…..eso precisamente me pasa a menudo.

    Saludos.