La colaboración remota de equipos es una de esas cosas que parecen fáciles y por lo tanto en muchos casos no se les suele prestar suficiente atención.
Pero nada más lejos de la realidad, es un aspecto del trabajo en equipo que requiere compromiso, honestidad y transparencia.
Índice de contenidos
1. Introducción
Este tutorial se centra en métodos, herramientas y buenas prácticas que a mí me han funcionado para conseguir una buena colaboración remota.
No voy a enumerar los retos y dificultades a los que se enfrenta un equipo deslocalizado ni tampoco sus beneficios, se supone que eso ya lo has descubierto por otros medios.
También hay que tener en cuenta que cada equipo tiene sus peculiaridades y lo que en unos casos funciona puede que en otros no sea lo más adecuado.
Por descontado, nada de lo que proponga aquí servirá si en el equipo no hay confianza, buena voluntad y una genuina intención de colaborar.
Así que si no estás seguro de esto, el primer paso es apuntalar bien estos principios junto con los valores de compromiso, honestidad y transparencia.
1.1. Aspectos de la colaboración
Para este tutorial he considerado tres aspectos fundamentales: la comunicación (en el sentido de intercambio de mensajes), la coordinación (sincronización) y la entrega colectiva (en el sentido de producir un resultado tangible).
2. Comunicación
La comunicación digital remota se puede conseguir por tres tipos de canales diferentes: texto, voz y vídeo.
Sin embargo, en vez de dividir esta sección según esa clasificación voy a utilizar la siguiente:
- Mensajería, tanto mensajes directos como chats grupales.
- Conversación uno a uno.
- Conversación en grupo (reuniones).
Las principales razones para hacerlo así son:
- No recomiendo la comunicación basada únicamente en la voz, especialmente para reuniones de grupo.
La parte remota puede sentirse desconectada y adoptar un rol de oyente sin participación activa en la reunión. - Un canal de voz no transmite el lenguaje corporal y la comunicación no-verbal en general, empobreciendo la interacción.
- Las restricciones y propiedades de las conversaciones uno a uno y en grupo son muy diferentes tanto en los canales de voz como en vídeo, así que clasificar por voz vs vídeo no ayuda mucho.
2.1. Mensajería
La mensajería es recomendable en los siguientes casos:
- Si no necesitas una respuesta inmediata en tiempo real, es decir, si la comunicación puede ser asíncrona.
- La intención es comunicar un mensaje simple y/o corto rápidamente.
- Para difundir una comunicación a un grupo de personas.
- Si deseas invitar a otras personas a unirse a una conversación o debate pero sin forzar un horario en los participantes.
Esto es aplicable tanto a comunicaciones uno a uno como a reuniones grupales.
2.1.1. Textos largos
Si el mensaje que se quiere enviar es largo y/o complejo, es mejor documentarlo en la herramienta de conocimiento compartido (explicada más abajo) y entonces enviar solamente un enlace al documento.
2.1.2. Identificando a las personas
Para un colaborador remoto no es sencillo poner caras a los nombres de los usuarios con los que se tiene que comunicar.
La manera de facilitar esta labor es seguir estas sencillas normas:
- Evita nombres de usuario complicados y oscuros.
Por ejemplo, si mi nombre es «José María Sánchez García», en vez de llamar a mi usuario «jmsg» o «jomar-saga», lo podría llamar «jose-maria-sanchez» o algo similar. - Evita nicks y apodos de cuando eras un adolescente o de tus otras vidas (privadas).
Después de todo ya somos profesionales adultos, ¿verdad?
Ejemplos de nombres muy poco apropiados: «Th3L1z4rd», «amo-mi-mascota», «FavDaddy» - Utiliza una fotografía real para tu perfil de usuario.
Ya sabes lo que dicen de que una imagen vale más que mil palabras. Tu interlocutor también agradecerá poder reconocerte cuando os veáis en persona.
2.1.3. Herramientas
Las herramientas que recomiendo aquí son Slack y el viejo e-mail, por supuesto que sí.
Pero, ¿cuándo elegir la una sobre la otra? Aquí van unas reglas efectivas:
- Obviamente, si tienes que contactar con personas que están fuera del mundo Slack entonces utiliza el e-mail, al fin y al cabo es el canal de mensajería más universal.
- Aunque la mensajería es asíncrona por naturaleza, diferentes mensajes tienen diferentes requisitos temporales:
- Si el tiempo es importante, usa Slack.
- Si no, usa el e-mail.
- Los e-mails distraen menos que los mensajes directos de Slack.
- Los e-mails pueden ser clasificados, archivados y posteriormente buscados por parte de las personas que los reciben.
Por otro lado, los mensajes de Slack se pierden en el historial del chat e incluso acaban siendo eliminados si usamos el plan gratuito.
2.2. Conversación uno a uno
Este tipo de comunicación es apropiado cuando deseas mantener una convesación informal con un colaborador y necesitas feedback inmediato.
La mayor limitación de este método es que es síncrono por naturaleza: la otra persona debe estar disponible en el momento de la comunicación.
Aunque pueden utilizarse llamadas de voz, la vídeoconferencia es el medio preferido para estas comunicaciones. Ver la cara de la persona con la que estás hablando supone una diferencia importante en empatía y entendimiento.
2.2.1. Herramientas
Estas son las herramientas recomendadas por orden de preferencia:
- ZoomUs, que requiere una aplicación cliente o extensión de navegador.
En Mac se puede instalar con Homebrew Cask:brew cask install zoomus
La cuenta gratuita no tiene ninguna limitación para comunicaciones uno a uno.
Esta herramienta tiene todo lo que necesitas y mucho más y además con muy buena calidad.
Se puede crear una «sala de reuniones» con un enlace permanente en la que cualquiera que tenga el enlace puede contactarte. - Slack dispone de vídeollamada uno a uno en su plan gratuito.
Esta función está disponible en el icono del teléfono tras seleccionar la persona con la que queremos contactar. - Hangouts tiene el inconveniente de que requiere una cuenta de Google para funcionar.
Dispone de llamadas de voz, vídeo y compartición de pantalla.
En mi opinión los codecs no son precisamente eficientes en cuanto a la calidad de la transmisión y el consumo de CPU.
2.3. Conversación en grupo
Una conversación de grupo es una reunión de 3 o más personas que ocurre a una hora determinada y en un lugar concreto.
Las reuniones tienen el inconveniente de que consumen mucho tiempo de muchas personas, lo que puede llegar a ser un verdadero desperdicio de dinero.
Hay muchas otras consideraciones que deben tenerse en cuenta antes de involucrar a varias personas en una reunión, pero eso queda fuera del alcance de este tutorial.
En definitiva, hay que limitar las reuniones a las mínimas imprescindibles, con los participantes justos para aportar el valor necesario y asegurar que tienen un objetivo muy claro y acotado.
En lo referente a la comunicación remota, sigue estos consejos para implicar a los colaboradores remotos:
- Evita las llamadas telefónicas siempre que sea posible.
Entre los muchos inconvenientes destacan: baja calidad del audio, dificultad de entender o incluso escuchar a las personas físicamente presentes en la sala (incluso en manos libres) y dificultad de explicar las ideas propias a todo el mundo sólo con la voz. - Idealmente, utiliza una sala de reuniones virtual en la que todo el mundo participe remotamente con su propio portátil.
Incluso si 2 o más participantes están físicamente juntos en el mismo lugar, cada uno se conecta a la sala virtual, así que nadie se siente desplazado o fuera de lugar. - Si eso no es posible, intenta utilizar una sala de reuniones con una pantalla grande, cámara y micrófono ambiente.
- Si eso tampoco es posible, usa un portátil con un micrófono ambiente y altavoz Bluetooth o USB.
Posiciona el portátil en un lugar desde el que los colaboradores remotos puedan tener una imagen lo más completa posible de la sala.
El micrófono y altavoz debería estar en el centro para poder llegar a todo el mundo. - Los participantes deben hablar por turnos.
Quien quiera hablar debe levantar la mano y el facilitador de la reunión (o el propio grupo) asegurar que se van pasando los turnos de palabra de manera ordenada. - Evita los susurros y las conversaciones paralelas. Lo peor es tener que escuchar varias conversaciones a la vez.
2.3.1. Scrum daily
Las dailies de Scrum tienen una estructura y protocolo que hacen viable el uso de una llamada de voz para integrar a un colaborador remoto.
Cada miembro va cogiendo el teléfono cuando le toca su turno. En cualquier caso, para evitar malentendidos:
- Di tu nombre cuando comienza tu turno.
- Evita referenciar post-its, historias y tareas con términos genéricos como «esta tarjeta» o «esa tarea». ¿¿¿Qué es esto y qué es eso???
- Respeta los turnos y no interrumpas.
2.3.2. Herramientas
De las tres herramientas de videoconferencia disponibles para comunicaciones uno a uno sólo Hangouts soporta múltiples participantes durante un tiempo ilimitado.
ZoomUs permite salas de reuniones virtuales con múltiples participantes en su versión gratuita, pero la duración de la reunión está limitada a 40 minutos.
3. Coordinación
El objetivo de la coordinación en remoto es fomentar la transparencia, compartir objetivos y situación actual y hacer explícito todo el conocimiento (en contra de tener conocimiento tácito).
La información tácita, ya esté en tu cabeza o en la mente colectiva del equipo físicamente unido, es un gran enemigo de la colaboración remota.
Por ejemplo, no está mal charlar un rato con algunos compañeros junto a la máquina del café o en el ascensor.
Lo que es verdaderamente importante es que las decisiones y resultados de esas charlas queden documentadas e informadas a todos los miembros del equipo.
Obviamente sólo las cosas pertinentes al trabajo, cotilleos no…
3.1. Planificación de tareas
Para coordinar la planificación y ejecución de tareas dentro del equipo, los aspectos que tienen un impacto más grande en la colaboración remota son:
- El nivel de detalle y especificación de las tareas e historias de usuario (más adelante doy algunos consejos).
- Mantener el estado de las tareas sincronizado con el trabajo real. Es decir, tu tarea actual debería estar «in progress» y debería pasarse a «done» en cuanto la termines.
- Mantener los paneles de tareas digitales sincronizados con los paneles físicos.
No sincronizar paneles digitales y físicos puede llegar a ser incluso peor que no tener paneles: la información falsa o contradictoria es incluso peor que la falta de información.
3.1.1. Mejores prácticas
A la hora de especificar tus tareas, sigue estos consejos:
- Utiliza un título corto y autoexplicativo. Evita los detalles y céntrate en el objetivo que pretende conseguirse con esta tarea, no los medios.
- Incluye todos los detalles relevantes de la tarea en su descripción:
- Detalles acerca de lo que se tiene que conseguir (el objetivo).
- Cualquier información útil sobre cómo debería hacerse.
- Dependencias y personas implicadas.
- Si la tarea está relacionada con la resolución de un fallo, explica cómo reproducirlo y los efectos del bug.
- Organiza tu backlog en versiones o releases de modo que sea sencillo tener una imagen completa de hacia dónde se dirige el proyecto en el futuro.
Aunque tu equipo haga entrega continua, es bueno establecer estos hitos como un ejercicio de planificación más a largo plazo.
Por ejemplo, a cada sprint se le puede poner un nombre que refleje el objetivo de ese sprint.
Pero sobre todo, no utilices títulos de tarea sin sentido que sólo tú puedes entender. Por ejemplo, poner un par de palabras que te recuerden a ti de qué iba esa tarea.
No voy a hablar aquí sobre cómo especificar historias de usuario. Es material suficiente para un curso completo y de una importancia crítica para que el equipo (remoto o no) realice el trabajo correcto.
3.1.2. Herramientas
Normalmente las herramientas de gestión de tareas suelen elegirse a nivel corporativo, así que un desarrollador no tendrá mucho margen para opinar.
Habitualmente, la seleccionada es JIRA a pesar de todos sus grandes defectos.
Si puedes elegir, Pivotal Tracker es una opción excelente que va al grano y elimina toda la paja.
Taiga también puede ser una buena opción con un plan gratuito para proyectos pequeños.
3.2. Compartición de conocimiento
El otro pilar de la coordinación de equipos deslocalizados es la compartición del conocimiento.
Los equipos que están físicamente juntos conviven en un terreno común en el que el conocimiento tácito se asienta y se difunde:
- Hay conversaciones por todas partes en las que varias personas escuchan y obtienen conocimiento.
- Pizarras, paneles y posters.
- Charlas antes o después de las reuniones, en los pasillos, cafeterías, etc…
- Sentarse junto a un compañero para pedir consejo o preguntar algo.
Hay tantas cosas ocurriendo a tu alrededor que tu cerebro está siempre recogiendo y almacenando trozos de información nuevos.
Los trabajadores remotos se pierden todo eso, por lo tanto es extremadamente importante hacer explícito todo el conocimiento que tiene algún impacto en el proyecto.
La mejor manera de conseguir esto es organizando el conocimiento en un Gestor Documental con control de versiones, colaboración online, autorización, metadatos, comentarios y otras funciones relacionadas.
Y de lejos la herramienta más sencilla y potente de este tipo es ¡un wiki!
3.2.1. Herramientas
Si en tu organización usan JIRA para las tareas, no hay duda de que la herramienta de documentación será Confluence.
Una alternativa para usuarios de Google es Google Docs, que además permite interacción en tiempo real.
Hay cientos de opciones más como Nuclino.
En cualquier caso recomiendo alejarse de los portales y CMS más tradicionales y centrarse en los wikis.
También hay propuestas más innovadoras que giran alrededor de las conversaciones. Según mi experiencia, estas herramientas pueden llevar a una situación de conocimiento desperdigado y desestructurado donde no es fácil encontrar lo que se busca.
4. Entrega colectiva
Cuando hablo de «entrega colectiva» me refiero al esfuerzo conjunto de varias personas para llevar a cabo una tarea cuyo resultado es un tangible.
En este sentido, voy a considerar dos tipos de tareas: diseño/brainstorming y desarrollo de software.
4.1. Diseño y brainstorming
Cuando un grupo de personas se juntan en una sesión creativa de brainstorming es normal producir diagramas, esquemas o dibujos para representar mejor las ideas.
Si todo el mundo está sentado alrededor de la misma mesa esta forma de trabajo es muy sencilla y natural: papel y boli es todo lo que hace falta.
¿Pero qué podemos hacer si uno o varios participantes están en remoto?
Obviamente, para hablar se pueden aplicar los mismos principios de comunicación explicados en la sección sobre conversaciones muchos a muchos: usar videoconferencia.
En lo referente a esquemas y dibujos podríamos simplemente mostrar nuestras obras de arte en la webcam, pero afortunadamente hay otras opciones para la colaboración creativa en remoto: pizarras electrónicas virtuales, post-its online, canvas online y artilugios similares.
Hay otras herramientas más orientadas a modelos (wireframes, diagramas, layouts) dejando fuera la parte de interacción en tiempo real y centrándose en una experiencia más estructurada y a largo plazo a través del concepto de «proyectos».
Estas herramientas no las voy a tratar en este tutorial.
Por lo tanto, los consejos más importantes en este tipo de colaboración son:
- Aprovecha las herramientas online disponibles.
- Utiliza la herramienta adecuada según el tipo de colaboración:
- Las pizarras electrónicas virtuales son el mejor reemplazo para el papel y el boli.
Sólo hace falta coger un poco de destreza con el ratón o el trackpad. - Si necesitas organizar conceptos de alguna manera (tiempo, categoría o lo que sea) puedes usar post-its o tarjetas online.
- Otras herramientas te permiten escribir un esquema o dibujar un diagrama de manera interactiva en tiempo real.
- Las pizarras electrónicas virtuales son el mejor reemplazo para el papel y el boli.
4.1.1. Herramientas
Para hacer dibujos esquemáticos, RealtimeBoard funciona muy bien y es muy fácil de usar.
ZoomUs también dispone de pizarra electrónica pero recuerda que el plan gratuito tiene un límite de 40 minutos para reuniones multi-usuario.
Trello es la herramienta preferida para organizar ideas mediante tarjetas.
Y la mejor opción para escribir un documento, esquema o presentación interactuando en tiempo real es Google Docs.
4.2. Desarrollo de software
Incluso para equipos que trabajan físicamente juntos, el desarrollo de software hace muchos años que aprovecha a fondo las herramientas de colaboración online.
Además, el desarrollo de software colaborativo es un tema con mucha miga, desde arquitecturas que facilitan la colaboración sin roces hasta las estrategias de ramas pasando por reglas de estilo.
Por lo tanto, este tutorial sólo se va a centrar en una práctica en la que estar físicamente presentes supone una gran diferencia: pair programming.
Por desgracia la mayoría de los desarrolladores no han experimentado los beneficios del pair programming y no son conscientes de la enorme mejora de productividad y aprendizaje que supone.
Si aún no lo has probado, aprende cómo debe ser una buena sesión de pair programming
y búscate un compañero siempre que creas que va a ser beneficioso para el proyecto.
4.2.1. Herramientas
Sin ninguna duda, la mejor herramienta para hacer pair programming remoto es ZoomUs.
Podrás ver y hablar con tu compañero a través de la webcam al mismo tiempo que compartes cualquier ventana o tu escritorio completo.
Incluso con una conexión regulera la pantalla se ve nítida, así que no tendrás dificultades para leer el texto y seguir el cursor y el ratón.
VS Code por su parte dispone del plugin Live Share.
Floobits es otro plugin disponible para varios IDEs como IntelliJ aunque no es gratuito.
5. Conclusiones
Termino más o menos igual que empecé.
Las herramientas y buenas prácticas facilitan el trabajo, pero lo fundamental y verdaderamente importante son los principios y los valores que vuelvo a repetir una vez más: confianza, buena voluntad, genuina intención de colaborar, compromiso, honestidad y transparencia.
Sin ellos no hay mucho que hacer porque nada va a funcionar del todo bien.
6. Referencias
- Rian van der Merwe, «How not to run a remote team», https://medium.com/@rianvdm/how-not-to-run-a-remote-team-93f5e757461d
- Business News Daily, «Want to create a fully remote team? What leaders need to know», https://www.businessnewsdaily.com/10547-advantages-challenges-fully-remote-workforce.html
- Trello, «How to embrace remote work», https://info.trello.com/hubfs/How_To_Embrace_Remote_Work_Trello_Ultimate_Guide.pdf
- Slack, https://slack.com
- ZoomUs, https://zoom.us/
- Hangouts, https://hangouts.google.com
- JIRA, https://es.atlassian.com/software/jira
- Pivotal Tracker, https://www.pivotaltracker.com/
- Taiga, https://taiga.io/
- Confluence, https://es.atlassian.com/software/confluence
- Google Docs, https://www.google.es/intl/es/docs/about/
- Nuclino, https://www.nuclino.com/
- Miro RealtimeBoard, https://realtimeboard.com/
- Trello, https://trello.com/
- VS Code Live Share, https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare
- Floobits, https://floobits.com/