En cualquier campo, la experiencia es un factor decisivo para elegir al candidato adecuado. El concepto de «seniority» y la forma en la que se accede a este categoría es distinto en cada sector. Incluso cada empresa tiene un criterio distinto para considerar a un trabajador (o candidato) como senior o no.
¿Qué es un desarrollador senior?
En general, la antigüedad es solo una parte de lo que hace que un desarrollador sea excelente, por lo que juzgar a alguien solo por la cantidad de experiencia es, a veces, una forma equivocada de medir el talento.
En el mundo del desarrollo web, podemos encontrarnos que un programador es considerado «experto» con cinco años de experiencia como desarrollador de software, pero también hay empresas que, más que la experiencia contada en tiempo, buscan exposición a uno o varios ciclos de vida completos del software (desde la conceptualización hasta la puesta en producción).
Algunas empresas tienden a enfocarse en candidatos que tienen experiencia y prestan menos atención a los desarrolladores con menos experiencia que optan a posiciones de desarrolladores junior. Algunas empresas alrededor de ISDI Coders tienen sus estructuras preparadas para incorporar buenos perfiles junior a sus equipos y forma parte de su ADN el mentoring de estos perfiles para poder ser competitivos y estar menos expuestos a las fluctuaciones del mercado.
Contratar desarrolladores con experiencia tiene ventajas obvias a veces: pueden aportar sus muchos años de experiencia, y pueden prever y sortear problemas con una agilidad que un junior aún no tiene. Sin embargo, la contratación de programadores senior supone algunas dificultades que el proceso para incorporar un programador junior no presenta.
Beneficios de contratar a programadores junior
Disponibilidad en el mercado
Los desarrolladores senior tienen una demanda mucho mayor que los desarrolladores junior. Desde hace décadas resulta muy complicado para las empresas encontrar desarrolladores con experiencia y ha sido un freno en el crecimiento de empresas e incluso ciudades. Hay muchos más desarrolladores junior que desarrolladores senior, y es mucho más fácil encontrar y negociar una posición y un salario para un buen desarrollador junior que para un desarrollador senior. Ante esta situación, algunas empresas nos han comentado «un equipo con un buen senior y dos buenos juniors es más productivo que un senior que no encontramos en el mercado» y optan por adaptar su estructura para que esta situación no les bloquee.
Fidelización de los senior con un plan de carrera
Históricamente, un buen desarrollador senior siempre ha tenido una gran variedad de puestos para escoger y la demanda del mercado ha hecho que su precio aumente. Por muy convincentes que sean el trabajo diario y el salario, muchos desarrolladores quieren poder progresar.
Muchas empresas, viendo que el sector ha sobrevivido a la escasez de talento solo a base de talonario, han optado por trabajar el aspecto de la retención de talento. La creación de roles de mentor para los desarrolladores senior hace que sientan que se valora su conocimiento y vean una progresión dentro de la empresa (sobre todo trabajando habilidades de liderazgo) reduciendo la rotación en estas posiciones.
Con el tiempo, muchos de los programadores juniors que han sido mentorizados ocupan este rol para las nuevas incorporaciones. A día de hoy, estudiantes de los cursos de programación de ISDI Coders con dos o tres años de experiencia corrigen pruebas técnicas, realizan entrevistas, o mentorizan a las nuevas hornadas de programadores junior en grandes empresas como Rakuten, Promofarma o Coches.net.
Fidelización de la cantera
Es muy difícil encontrar personas que tengan exactamente la combinación correcta de habilidades técnicas y personalidad. Contratando desarrolladores junior con la actitud correcta y formándoles con los miembros experimentados del equipo se generan dinámicas de trabajo que pronto dan sus frutos. Un buen desarrollador junior es consciente de su falta de experiencia. Por lo tanto, tiende a apreciar la oportunidad que una empresa le ofrece, y el tiempo y la atención que se invierte en ellos. Estar expuestos a proyectos interesantes, rodeados por personas con más experiencia y conocimiento les permite poder entregar todo su conocimiento y aprender a pasos agigantados.
Históricamente las empresas nos comentan que esto genera una rotación muy baja en perfiles que han crecido dentro de la compañía.
Reordenación de las tareas
La incorporación de perfiles junior puede liberar tiempo para que los desarrolladores senior trabajen en problemas en los que la experiencia supone un grado.
En cierto sentido, esta es una compensación justa: los desarrolladores junior necesitan práctica y están ansiosos por aprender a escribir un código mejor y más limpio. Pueden ayudar a liberar a los «veteranos» de una posible monotonía y reenfocarlos en lo que es estratégicamente importante. Corregir errores menores, trabajar en aspectos no significativos del código, realizar tareas concretas y predefinidas: un junior que trabaja duro y motivado puede manejar todo esto.
Nuevas formas de pensar y hacer
Es fácil quedarse atascado en formas establecidas de resolver ciertos problemas. Los desarrolladores junior no habrán resuelto algunos de esos problemas antes y no tienen ideas preconcebidas sobre cómo deberían funcionar las cosas, por lo que sus dudas pueden generar debates interesantes.
Crear equipos con developers con experiencia y sin ella fomenta la programación en parejas (pair programming) y la resolución conjunta de problemas. Un programador junior con una buena formación de base, puede incorporar al equipo paradigmas modernos, técnicas de testing, buenas prácticas de código, etc. Es muy habitual que nuestros estudiantes nos comenten que les han pedido que introduzcan técnicas de testeo (unit testing) en sus equipos.
Implica una determinada cultura
Finalmente, hay un aspecto cultural muy importante. Una empresa en la que se incorporan perfiles junior, se les guía, se les corrige, etc. transmite una cultura que no penaliza el error. Hacia afuera y hacia adentro se transmite una determinada mentalidad y que existe la confianza necesaria para minimizar los errores y solucionarlos en equipo (sabiendo que existen los mecanismos adecuados para que los errores de cualquiera se detecten mucho antes que el código llegue a producción).
¿Qué hace ISDI Coders para formar a buenos programadores junior?
Los alumnos de los cursos de programación de ISDI Coders aprenden las tecnologías, formas de pensar y metodologías más modernas. Nuestro contacto con la industria y con los antiguos estudiantes hace que podamos ir adaptando el temario y la forma de transmitir los conocimientos a lo que el mercado va demandando.
Quizás no tienen experiencia profesional, pero su conocimiento en buenas prácticas de programación (SOLID, DRY), testing unitario o github les permiten, con la guía de un programador más experto, desarrollar en la dirección que se necesite y superar los procesos de revisión de código dentro de un equipo.
De nuevo, a diferencia de caminos como la formación profesional o la universidad, en nuestros cursos de programación web en Madrid o Barcelona el testing es una pieza fundamental para profundizar en el aprendizaje y asegurar que los alumnos entregan código robusto, mantenible y escalable.