Qué deberías saber como Mid Developer

Publicado el 12 de mayo de 2023, por Borja Pérez

Cortita y al pie. Como Mid Developer esto es lo que esperan de ti:

  • Autonomía
  • Aprendizaje
  • Entiendes todo el CVDS
  • Empiezas a especializarte
  • Career path: posiciones de management vs IC

Si te encuentras en ese punto de tu carrera donde empiezas a dejar de ser junior, este post te puede ayudar. Empiezas a dominar las bases de programación y algunas de las tecnologías que más has utilizado. También te sientes con la confianza de afrontar nuevos retos, resuelves desarrollos sin problema y puedes empezar a asumir algunas responsabilidades. Podemos decir que en la mayoría de compañías ya no te considerarían junior. 

La seniority es un término complejo de definir y que en cada compañía se evalúa de diferente manera. Nosotros, desde Manfred, entendemos la seniority (junior, mid, senior) como una serie de habilidades adquiridas mediante la experiencia y que no necesariamente tiene que ver con los años que llevas en el sector. Y evangelizamos sobre ello siempre que podemos. 

Tener 5 o 10 años de experiencia no es garantía de ser mejor o peor desarrollando. Hay experiencias muy buenas de poco tiempo que te ayudan a crecer de manera muy rápida (porque has tenido alguien que te mentorice, por la autonomía que has tenido que tener o por el entorno en el que has trabajado), pero también hay experiencias muy largas donde el aprendizaje no es tan elevado. 

Por eso nos gusta entender la seniority de esta manera (independientemente de los años):

  • Junior: una persona que necesita mentorización y ayuda para llevar adelante sus tareas del día a día. 
  • Mid: alguien que domina las bases de la programación y tiene autonomía en su trabajo. Puede realizar tareas sin ayuda y resolver problemas. 
  • Senior: puede desarrollar cualquier tarea sin problema, tiene conocimientos de arquitectura de software, ayuda al crecimiento de los demás compañeros (juniors y mid) y puede mentorizar. Por lo tanto, ayuda al desarrollo del negocio.

¿Qué necesitas para pasar de junior a mid?

Esta pregunta la podemos resolver aplicando la fórmula de arriba. Necesitas principalmente autonomía, dominar los procesos y conocer bien el producto/ servicio que prestáis. 

Independientemente de si llevas año y medio, dos o tres en el desarrollo, el principal salto para que te consideren mid es que te puedas autogestionar. Esto no implica que no pidas ayuda, todos debemos pedirla en algún momento, sino que puedas desarrollar con libertad tu día a día porque ya conoces las herramientas, los procesos, el entorno y te anticipas a los problemas. 

Esta autonomía tardarás en adquirirla. No es habitual cogerla en los primeros meses de tu carrera porque todavía no tienes un conocimiento general de todo el ciclo de vida de desarrollo del software (CVDS), así que necesitarás algo de tiempo para sentirte con la confianza de hacer un buen trabajo sin levantar la mano. 

A cada persona le llevará un tiempo diferente. Si tienes la suerte de tener performance review en tu compañía, autoevalúate y pídele al manager del equipo que también lo haga. No se trata solamente de tu visión, sino de cómo te ven los demás miembros de tu equipo. 

Eso sí, todavía te quedarán muuuuchas cosas por aprender. Y tendrás que pedir ayuda en miles de tareas que se salen de tus responsabilidades y de tu “día a día”. Nunca pierdas ese espíritu de aprendizaje y la humildad de entender que el campo del desarrollo es tan vasto y evoluciona tan rápido que es muy difícil / imposible saberlo todo. 

Pero, ¿qué piden las empresas de un mid?

Aparte de esa autonomía de la que hablamos, hay dos puntos fundamentales que marcan la diferencia en un perfil medior: entender todo el ciclo de vida del desarrollo (todos los pasos por lo que pasa un programa) y tener cierta especialización (front, back, full-stack, sistemas, etc.).

Vamos por partes.

Qué es el Ciclo de Vida de Desarrollo de Software o Software Development Life Cycle

Desarrollar software es una disciplina compleja. Crear implica tener en cuenta muchas cosas. Una vez se pone una aplicación en producción existen muchos otros puntos a tener en cuenta: mantenimiento, nuevas funcionalidades, tolerancia a fallos, soporte, escalabilidad, métricas, etc. 

Normalmente, como junior, incluso como mid, no tendrás que participar en todo el ciclo. Pero, poco a poco, mientras aumentes tu conocimiento del producto que desarrolláis, comenzarás a conocer muchas otras áreas en las que se trabaja. 

Como mid dev no se te pide que controles todas las áreas, sino que las conozcas y hayas participado en algunas de ellas. 

En la imagen inferior verás un modelo de SDLC habitual: 

  1. Planificación
  2. Análisis funcional/ técnico
  3. Diseño
  4. Implementación (aquí es donde tú habrás empezado como junior y donde serás autónomo como mid)
  5. Testing e integración de nuevas funcionalidades y versiones
  6. Mantenimiento (fix de bugs, mejoras, optimización de base de datos, etc.)

Y el segundo punto: 

La especialización de los perfiles técnicos

Como junior has podido desarrollarte en uno o varios roles: backend, front, data o un rol híbrido de full-stack. Pero para poder tener esa autonomía de la que hablamos te habrás desarrollado durante mucho tiempo en el mismo rol. Esto te habrá permitido saber si es algo que te gusta y donde quieres seguir, o quieres cambiar hacia otra posición en un movimiento lateral. 

Ten en cuenta que los movimientos laterales son de los más normales en los equipos: hay backenders que se mueven a hacia operaciones / sistemas (SRE/ DevOps), full-stacks que prefieren trabajar en front o data engineers que se forman y trabajan como data scientists.

Ese momento de especializarte habrá llegado y podrás tomar una mejor decisión tras conocer todo el ciclo de desarrollo. 

No es algo que no puedas deshacer o que no te permita trabajar en otros roles. Es más, por tu autonomía en el rol que escojas, seguro que puedes conocer y apoyar en otras áreas. 

La especialización implica el dominio de tu rol y de ciertas tecnologías asociadas. Además, comenzarás a conocer y trabajar en otros puntos del ciclo de vida: por ejemplo, podrás participar en el diseño técnico de las funcionalidades, mejorar la cobertura de tests de la aplicación o ayudar en el sistema de integración continua y de despliegues que utilices.

Career path - Qué y cómo mejorar en el futuro

Que tengas autonomía en tu día a día y te sientas con confianza de resolver cualquier cosa no indica que lo sepas todo. El mundo del desarrollo es muy amplio, cada día más. Y el trabajo en equipo requiere fortalecer y mejorar una serie de habilidades blandas que se consiguen con la experiencia. Aún te queda camino por recorrer y es el momento de empezar a tomar algunas decisiones. 

A nivel técnico, es posible que domines un par de lenguajes, que sepas cómo construir y estructurar una API y empieces a tener conocimientos de arquitectura de software. 

Por supuesto, los lenguajes y las herramientas son muy amplios. Calma: tendrás margen de mejora. Construye tu pathing formativo pensando más en ampliar tu conocimiento transversal (conexiones con bases de datos, optimización, refactorización, performance, procesos multitenant, etc.), que en dominar un lenguaje al completo. Piensa que, durante tu carrera, cambiarás varias veces de lenguaje, sin duda. Y, a veces, tendrás que empezar de cero. Ese conocimiento transversal te ayudará a adaptarte de manera más ágil a cualquier contexto y a no depender de los cambios generales del sector en cuanto a lenguajes.  

En cuanto a roles, ya lo hemos visto arriba. Tienes un campo extenso para probar, conocer y ver qué te gusta o dónde puedes aportar más. Un producto o una aplicación son tan extensos que hay muchas posiciones chulas en las que desarrollarte. Coméntalo con tu lead o con tu persona de referencia en la performance review, dile que tienes curiosidad por tal o cual rol o tecnología y que te gustaría probar. Ahora tienes un conocimiento del negocio y del producto amplio, así que tu adaptación será rápida. 

Soft skills siendo mid

Y el punto más importante, las soft skills. Ahora mismo, como mid, se te presupone cierto conocimiento técnico. Pero aquello que marca realmente la diferencia son las habilidades blandas. La comunicación, el trabajo en equipo, la madurez emocional, la capacidad de ayuda o la curiosidad por conocer el negocio más allá de la programación son algunos de los puntos en los que puedes avanzar. 

  • Comunicación: poder comunicar tus avances, bloqueos o dar feedback a tus compañeros de manera asertiva es fundamental. Una buena forma de mejorar la comunicación es pedir feedback a la gente que te rodea. ¿Qué podrías mejorar? ¿Haces comentarios que pueden sentar mal? ¿Qué puntos débiles ven? Recoge ese feedback, procésalo con una mente abierta y úsalo para mejorar. 
  • Trabajo en equipo: fundamental. Ten en cuenta que todo el mundo aporta a la aplicación o al producto y que el equipo debe funcionar como una locomotora. Que un equipo funcione engrasado es complicado: cada persona es un mundo y hay gente que trabaja más rápido, otros con más calidad y poner todas las piezas al mismo nivel puede suponer un reto. No intentes individualismos. Lo mejor que puedes hacer es remar junto con los demás en la misma dirección. Y ayudar en todo lo posible a tus compañeros- 
  • Madurez emocional: nunca te tomes un feedback de manera personal, es trabajo y seguramente te lo comenten para que mejores. Igualmente, da feedback siempre pensando en cómo lo puede entender y recibir la otra persona. Ten empatía. 
  • Capacidad de ayuda: tú también fuiste junior en algún momento. Ayuda a tus compañeros de equipo, y si te gusta participar en la comunidad, ayuda y comparte en redes o eventos. Hay mucha gente que necesita mentorización 🙂
  • Entender el negocio: hay un punto de seniority en el que conoces también el negocio, lo que da dinero a la compañía, que eres capaz de priorizar en función de lo que mejor retorno puede tener. Tener esa comprensión del core te ayudará mucho y podrás aportar en áreas de producto más allá de la programación. 

Y, para terminar, ten en cuenta que asumir más responsabilidades o tener más autonomía debería ser un paso más en tu plan de carrera. Hay compañías que por su estado inicial o porque no se dedican al software exclusivamente no tienen un plan de carrera determinado. En tu perfil de Manfred, encontrarás la brújula salarial que te servirá de guía para entender los salarios del mercado con tu misma experiencia y tecnologías. Úsala como herramienta orientativa 😉

Publicado el 12 de mayo de 2023, por Borja Pérez
¡Súbeme!