Piensa globalmente, programa localmente: El secreto de los equipos distribuidos

Los equipos distribuidos y las oficinas remotas no van a desaparecer. La cuestión es si pueden formar parte de una cultura ágil creciente. Nosotros creemos que sí.

Dan Radigan De Dan Radigan
Buscar temas

El desarrollo ágil se pensó originalmente para equipos agrupados, o equipos ubicados físicamente juntos en la misma oficina. Siguiendo la idea de que "el método más eficiente y efectivo de comunicar información al equipo de desarrollo y entre sus miembros es la conversación cara a cara", los primeros equipos ágiles estaban orientados a trabajar juntos en proximidad.

Pero, hoy en día, la mayoría de empresas tienen algunos, o varios, equipos distribuidos. No se trata de una simple tendencia: es de sentido común. Los equipos distribuidos pueden trabajar sin descanso en proyectos, y los buenos talentos se pueden encontrar en mercados menos competitivos. (Por no mencionar que el talento se conserva fácilmente si no exige un traslado no deseado). Sin embargo, las ventajas de los equipos distribuidos presentan algunas concesiones. A muchos equipos distribuidos les cuesta adoptar la práctica ágil de las interacciones cara a cara.

Estos son otros retos para los equipos de software distribuidos:

  • Coordinación en varias zonas horarias
  • Crear confianza cuando no todo el mundo se encuentra en la misma oficina
  • Colaborar entre varias culturas de desarrollo diferentes
  • Planificar reuniones o conversaciones informales cuando ambos equipos están conectados al mismo tiempo únicamente durante unas horas (o menos)

Estos son problemas reales, pero no irresolubles. Veamos algunas estrategias para reducir la distancia entre las oficinas locales y remotas, e ideas para mitigar otros posibles problemas.

Cómo estructurar equipos globales

Una buena arquitectura de software dicta el diseño modular, así que estructura tus equipos del mismo modo. Las oficinas deberían ser autosuficientes en el desarrollo de una sola pieza de tecnología, lo cual reduce la cantidad de colaboración necesaria con los equipos de otros husos horarios y les da una mayor autonomía en general. Cuando un proyecto requiere la colaboración de equipos de distintos lugares, se pueden centrar en sus puntos de integración y sus API.

El papel de las revisiones del código también es importante. Dado que las personas están conectadas a horas diferentes, la distribución del conocimiento del código entre oficinas simplifica la asistencia y el mantenimiento. Si surge un tique de producción cuando el equipo no está conectado, otra oficina puede entrar en juego para ayudar y resolver el tique, gracias al conocimiento obtenido en las revisiones del código entre equipos o entre ubicaciones.

Crear confianza

Es importante en cualquier programa, sobre todo en programas ágiles, para que haya un buen entendimiento en el equipo. Las relaciones personales generan confianza, minimizan las expectativas fallidas, facilitan la autoorganización y suben la moral. En la oficina, dedica un tiempo a conocer a todos los miembros del equipo. Y, en la mayor medida posible, haz lo propio con las personas de oficinas remotas con las que trabajas. Las relaciones personales son importantes. Cuanto más se fortalecen, más posibilidades hay de ver a esos compañeros como iguales, en lugar de como a trabajadores lejanos de no sé dónde, sin una buena relación.

Consejo de experto:

En Atlassian, todos los nuevos empleados escriben un blog de introducción en nuestra instancia interna de Confluence, la herramienta de colaboración de contenido de Atlassian. El blog introduce al nuevo empleado profesional y personalmente (aficiones, intereses, familia, etc.), lo que ayuda a acortar la distancia entre oficinas. Cuanto más nos conozcamos como personas, más sólidamente trabajaremos como equipo.

Por encima de todo, nada sustituye a una reunión cara a cara. Los miembros del equipo de cada oficina sacarán provecho de estas conversaciones, ya sea mediante videoconferencias o visitas a las oficinas remotas.

Las herramientas de videollamada como Zoom tienden un puente entre los equipos, sobre todo los equipos ágiles distribuidos. Sin embargo, los equipos que recurren a este sistema deben ser conscientes de sus limitaciones.

  • Las videollamadas a menudo permiten una pequeña ventana de comunicación, mientras que trabajar en la misma oficina da mucha visibilidad del mundo de los demás: retos, logros y oportunidades.
  • Zoom lo ha hecho bien con los contratiempos de la red. Sin embargo, puede que haya incidencias de red entre oficinas que originan vídeos o audio entrecortados o difíciles de entender.
  • La mayoría de las personas sigue pensando en las videoconferencias de Zoom como momentos programados. Lleva tiempo instaurar la mentalidad de utilizar las videollamadas para conversaciones informales espontáneas. También es buena idea utilizar las herramientas de mensajería instantánea como Slack para preguntas rápidas.

Para paliar algunas incidencias de las videoconferencias, anima a los miembros del equipo a que mantengan sesiones semanales de videollamada de tú a tú. Pueden ser menos formales y ayudan a compartir conocimientos fácilmente de manera informal. Los compañeros de equipo pueden usar estas oportunidades para afianzar relaciones y trabajar mejor juntos.

Recuerda: el tono, la voz y los gestos son una parte importante de la comunicación. El tiempo dedicado al cara a cara ayuda al equipo a conocer más fielmente a sus colegas remotos, lo cual en el futuro hace que las videoconferencias sean más eficaces.

Ya sea una casa o un producto, tienes que definir la visión y perfilar los temas estratégicos. Piensa en los temas como áreas prioritarias para toda la organización. ¿En qué quieres centrarte el próximo trimestre, los próximos 6 meses y el próximo año? ¿Dónde quieres dedicar tiempo y emplear recursos? ¿Rendimiento, experiencia del usuario, seguridad, nuevas funcionalidades competitivas —¿jacuzzi alguien?— o en una combinación de todo ello?

Cómo lo hacemos:

Los traslados son misiones temporales en un cargo o ubicación nuevos que duran desde unas semanas hasta un año. No solo son una forma eficaz de afianzar relaciones y transmitir el espíritu en el equipo, sino también de conseguir que los empleados conozcan otra cultura.

Crea una cultura de desarrollo unida

Hay cuatro maneras sencillas con las que los equipos pueden trabajar en varias zonas geográficas más fácilmente y compartir una cultura de desarrollo conjunto:

  • Sobrecomunicar decisiones en todas las zonas geográficas
  • Minimizar la fricción para configurar un entorno de desarrollo
  • Definir claramente qué se considera finalizado
  • Crear directrices para rellenar informes eficaces de bugs

Entremos en detalle.

Al principio, al pasar de una oficina en una misma ubicación a una cultura distribuida, la comunicación es mucho más difícil. El primer reto es formar al equipo para entender, que cuando se toman decisiones, hay que comunicarlas. Parece obvio, pero es fácil olvidarse de ello. A menudo, se toman decisiones importantes en conversaciones en el pasillo, reuniones informales del equipo local o de manera personal. Además, puede ser fácil descartar las decisiones pequeñas como poco importantes.

Comunica incluso los detalles más insignificantes hasta que ambas oficinas encuentren un clima saludable.

Cuando se tomen decisiones, todo el mundo en todas las oficinas debe entender la decisión e, idealmente, por qué se ha tomado. No uses el correo electrónico. En ese medio es fácil perder información importante. Usa un sistema de gestión de contenido, como una wiki, donde los miembros del equipo pueden buscar actualizaciones de todo el equipo fácilmente (y recibir notificaciones de actualizaciones a través del correo electrónico o en la herramienta de chat de grupo Slack). También puedes usar Slack para crear canales para que las personas y los equipos se comuniquen y vean actualizaciones. Los retrasos debidos a que los miembros del equipo trabajen con información desfasada, se encuentren con un callejón sin salida y empiecen a preguntar cuestan al equipo mucho más tiempo que compartir la información proactivamente.

Consejo de experto:

En Atlassian, utilizamos Atlas para compartir actualizaciones sobre proyectos y objetivos con todos los equipos. Recibimos notificaciones de las actualizaciones a través de un correo electrónico de resumen semanal o a través de Slack. Esto ayuda a nuestros equipos a comunicarse abiertamente y conocer el contexto de su trabajo, lo que responde a las siguientes preguntas:

  • ¿Qué vamos a hacer?
  • ¿Por qué?
  • ¿QUIÉN ESTÁ TRABAJANDO EN ELLO?
  • Progreso del trabajo

En segundo lugar, los entornos de desarrollo coherentes para todo el equipo simplifican el trabajo conjunto y el seguimiento de incidencias. Dedica tiempo a crear una sencilla guía de introducción y evita las fricciones del primer día automatizando la configuración todo lo posible.

En tercer lugar, cuando se trabaja entre oficinas, tener unos criterios claros en torno a la definición de "hecho" facilita la gestión de las expectativas y afianza las relaciones entre equipos. Una definición precisa de "finalizado" elimina la ambigüedad en el trabajo. Por ejemplo, cuando se lanza una publicación en la que participan varios equipos, deja claro qué significa que esté completa: el código escrito, la solicitud de extracción creada y el código revisado, probado y fusionado en la rama adecuada.

Por último, un desarrollo distribuido significa que no todo el mundo está conectado cuando surgen problemas. Tener directrices claras para los informes de errores y la solución de problemas logra que el seguimiento de incidencias sea fácil para cualquier miembro del equipo. La revisión del código y unas buenas pruebas automatizadas también comparten conocimiento sobre la base de código y permiten al equipo implicado realizar la corrección y comprobar que el cambio no tiene efectos inesperados. Por ello, ningún equipo se convierte en un impedimento.

Maximiza las horas doradas

Todos los fotógrafos saben que las horas doradas (justo antes y después del amanecer y del anochecer) son unas de las mejores horas para fotografiar el paisaje. Las horas doradas de los equipos de software distribuido son cuando los equipos local y remoto están en sus respectivas oficinas al mismo tiempo. Cuando todos los equipos se encuentran en la oficina, es un buen momento para las reuniones rápidas.

Para los equipos que compartan trabajo en diferentes zonas horarias, una reunión rápida es una buena manera de pasar el testigo para que el equipo que se conecta en ese momento pueda retomar el trabajo del otro. Tener reuniones rápidas por videoconferencia simplifica el proceso de preguntas y respuestas y logra la rapidez necesaria para que todo el mundo vuelva al trabajo en cuanto termine la reunión.

En el caso de oficinas que se encuentren a mucha distancia, estas reuniones pueden causar algún tipo de dificultad para uno de los equipos. (¿Levantarse a las cinco de la mañana para reunirse con el otro equipo? No, gracias). Alterna las horas de la reunión para que sea una carga compartida en lugar de someter continuamente al mismo equipo a unas horas intempestivas, lo que sería un método seguro de minar su moral. Supervisa atentamente la interacción de todo el equipo en las reuniones rápidas. Si hay presión innecesaria o no está siendo muy útil para el equipo, los miembros empezarán a desconectar hasta dejar de escuchar y participar. No es necesario celebrar una reunión rápida al día sí o sí. Reúnete con el equipo remoto unas cuantas veces a la semana y usa el resto de los días para una reunión rápida local. Asimismo, las reuniones rápidas tampoco tienen que ser una rutina matutina. La hora que sea más conveniente para todos los implicados es la mejor hora del día.

Todos los equipos están distribuidos

En una organización distribuida, la realidad es que todos los equipos son remotos. Todos los equipos tienen que adaptarse y aprender a compartir trabajo entre oficinas, comunicarse eficazmente y crear una cultura coherente en todas las zonas geográficas. Los equipos más eficaces no aplican a la oficina remota la cultura de la sede central, porque entienden que todas las oficinas pueden aprender algo de las demás. Intentan encontrar y compartir prácticas de éxito en todas las ubicaciones. También adoptan una cultura centrada en el "todos nosotros" en lugar de "nosotros contra ellos".

De hecho, la realidad es que se encontrarán distribuidos de vez en cuando. Los viajes de trabajo sacan a miembros del equipo de la oficina y trabajar en casa ocasionalmente puede ayudar a los empleados a conciliar mejor la vida laboral y personal. Los equipos que adoptan estructura y transparencia se escalan más eficazmente. Cuando tu proyecto se escala más allá de la oficina, la cultura estará preparada para actuar adecuadamente de manera natural.