La pandemia y el consecuente interés en descentralizar las grandes ciudades y tener un mejor work/life balance potenciaron un problema ya existente para las empresas: encontrar devs calificados y lo bastante cerca para ir presencialmente a la oficina. Esto ha causado una evolución supply-initiated de la forma en que gestionamos equipos de desarrollo, los cuales son ya predominantemente remotos.
Sin embargo, este cambio ha traído consigo un lado muy positivo, ya que el trabajo remoto en combinación con un management bien consciente de los nuevos retos que implica puede traducirse en una gran eficiencia: colaboradores más satisfechos, mayor productividad y una inversión económica menor tanto en contrataciones como en gestión.
Para obtener todos estos beneficios necesitamos resolver dos challenges principales:
- El ya conocido problema de oferta aparentemente inferior a la demanda a la hora de conseguir desarrolladores calificados.
- Los cambios que hay que hacer en el management para garantizar que los equipos de dev remotos sean exitosos.
Estos no son propios de PyMEs y StartUps, sino también de las FAANG.
En Workana nos encargamos de resolver al 100% el primer problema ayudándote a armar tu dream team con devs certificados y altamente comprometidos, con un proceso de curación que incluye validación de perfil, certificación técnica y entrevista.
El segundo problema pertenece al terreno de la cultura organizacional y estilos de liderazgo internos. Hay tres factores clave que debes tomar en cuenta. Veámoslos:
3 claves para un cambio exitoso en la gestión de equipos de talento remoto IT
1- Prioridades claras
Tanto para equipos en formación y equipos ya existentes, el conocimiento de las prioridades debe ser la prioridad máxima (intencionalmente redundante). Es muy común menospreciar su importancia, o bien, no tener buenas prácticas para sostener esa claridad a lo largo del tiempo.
En ningún momento, ningún miembro debería tener dudas de con qué seguir. Ningún miembro debería tener dudas de por qué seguir con lo que hay que seguir. Obviamente, puede haber discusiones al respecto, challenges sobre por qué las prioridades son las que son, pero al final del día todos tienen que tener esa claridad, idealmente, sin la necesidad de ir a preguntar.
Esto puede tomar varias formas, y si bien no hay una sola solución one size fits all, es importante encararlo a dos niveles. En un nivel granular:
- En Scrum: Sostener un backlog ya preparado para el siguiente sprint.
- En Kanban: Mantener el top of the queue priorizado al menos en las siguientes 20 tareas (el número depende del tamaño del equipo y la velocidad).
- Para cualquier otra metodología esto mismo es trasladable.
Y en un nivel menos granular, más hacia mid term, con Team level OKRs que el equipo entienda, que haya participado en su definición y compartan el sentido de prioridad acerca de ellos. Hay muchos frameworks disponibles para ello: Radical focus OKRs, V2MOM, entre muchos otros. Lo importante es que el equipo pueda priorizar sus tareas granulares a partir de objetivos más claros.
2- Comunicación
La comunicación no se trata simplemente de que la gente hable, sepa romper el hielo, hable de cosas personales y listo *team bonding achieved*. La comunicación se trata de cómo están dispuestas las dinámicas del equipo y alrededor del equipo para favorecer ejecuciones claras, sin bloqueos, sin malos entendidos y logrando un engagement que sea sostenible en el tiempo y que no sea costoso de mantener (no en términos económicos, sino que sea algo natural y no forzado o que represente mucho trabajo extra).
Algunos aspectos clave a resolver son:
- Disponibilidad: Que el equipo sepa quiénes están disponibles y cuándo (o más simple: cuándo alguien no está disponible). Esto se puede resolver muy fácilmente manteniendo los calendarios de cada miembro actualizados y utilizando los estados en el sistema de mensajería (Slack, Microsoft Teams, Skype, etc) para avisar que alguien sale a almorzar, a algún trámite, al médico, etc.
- Estimaciones: Que el equipo hable el mismo idioma en términos de estimaciones. Se utiliza T-shirt sizing, fibonacci poker planning, story points de otro tipo, se estima en tiempo y se conoce cuáles son las tareas de referencia para estimación por complejidad. Todo miembro del equipo tiene que tener la respuesta a estas preguntas.
- Asignaciones: Que todos sepan en qué está trabajando cada uno. Esto es importante para que exista una dinámica de equipo, que el equipo mismo pueda determinar impactos cruzados a tiempo, y para que los managers de estos equipos no sientan la necesidad de atosigar a los miembros preguntando en qué está invirtiendo su tiempo.
- Bloqueos y aceleración: Algunas dinámicas, como reuniones diarias de 15 minutos (estrictos), backlog grooming sessions, planning sessions y retrospectivas, ayudan a pulir el día a día del equipo e identificar problemas recurrentes que se pueden solucionar.
- Balance: Más videollamadas o comunicación sincrónica no es directamente proporcional a la efectividad del equipo. Todo tiempo sincrónico que tomamos del equipo es tiempo que le quitamos al foco sobre las prioridades actuales. Mantener un balance entre actividad sincrónica y asincrónica es clave para darle al equipo más tiempo de foco efectivo.
3- Colaboración
La colaboración nos ayuda a resolver 3 problemas en 1:
- Lograr engagement
- Producir entregables de mayor calidad
- Reducir el riesgo de silos y distribuir el conocimiento de forma que todos conozcan un poco de todo
No es necesario buscar una solución para cada uno de estos problemas, pero sí es importante que las cosas que hagamos aborden un poco de las 3. Un ejemplo de colaboración es el pair programming; pero realizarlo remotamente puede ser bastante estresante y contraproducente.
Sin embargo tener un proceso de Pull Request obligatorio para todo cambio y con approval requerido, puede forzar por proceso las discusiones que buscamos. Estos Pull Requests existen en todo sistema de versionado actual, a veces con otros nombres (Merge Request, por ejemplo), pero refieren a lo mismo. Quien hizo el cambio discute con otro que lo revisa, para acordar qué cambios hacer para que el código sea de calidad y resuelva el problema que debe resolver.
Si bien esto resuelve el factor de colaboración del día a día, es importante incorporar otros eventos en el SDLC (Software Development Lifecycle) que introduzcan otras oportunidades. Realizar revisiones de arquitectura, sesiones de trabajo para diseñar una solución antes de comenzar a programarla, discutir problemas reales de clientes, entre otras, son formas muy efectivas de lograr engagement, crear un sentido de priorización y reducir los silos.
Dentro de esta colaboración hay que considerar y analizar correctamente la estructura del equipo y diversidad de seniority. La diversidad de seniority tiene que garantizar que las habilidades del equipo crecen sostenidamente, que todos tienen un desafío para llevar adelante, que siempre habrá alguien con capacidad de corregir o mejorar el código fuente de otros. Una correcta distribución de seniority no abusa de roles Junior ni de roles Lead. Tener 10 lead no te vuelve más rápido. Tener 10 Juniors no te reduce costos.
En resumen…
Esto conforma una lista un poco extensa de cosas a considerar, pero muchas de estas se resuelven con prácticas que se vuelven cotidianas y, en consecuencia, el costo de llevarlas a cabo baja drásticamente.
Es importante considerar que estamos asumiendo, de inicio, que todo el equipo cuenta con los medios tecnológicos apropiadamente resueltos: computadora de especificaciones adecuadas para el trabajo a realizar, conexión a internet que soporte las necesidades, un espacio adecuado en las casas de cada uno, etc.
Siempre es un gran aliciente que la empresa ayude con el setup de estas necesidades, para garantizar que las preocupaciones de los profesionales quedan netamente orientadas a las prioridades.
**Nota escrita por Ezequiel Fariña, CTO de Workana—
También te puede interesar:
- Beneficios de contratar talentos remotos en tu empresa o emprendimiento
- ¿Cuáles son los procesos de reclutamiento más efectivos para atraer talento IT?
- ¿Qué son los OKRs? ¿Cómo usarlos para incrementar la eficiencia del trabajo remoto?
- Metodología Agile: nueva forma de trabajar con equipos flexibles enfocados en objetivos comunes
- Todo lo que tienes que saber si tu primera experiencia con un freelancer no fue lo que esperabas
- Reclutamiento de personal y talento independiente: ¿Cómo encontrar el match perfecto?