No hay dudas de que esta crisis del Coronavirus quedará para muchos equipos de software como “aquella vez que nos vimos obligados a teletrabajar” Pero, ¿Cómo se debe organizar el equipo de trabajo en entornos distribuidos? ¿Qué códigos de comunicación deberíamos tener en cuenta? ¿Qué tipos de distancia se deben tener en cuenta? Veamos algunas reflexiones.
Agilidad y teletrabajo no encajan naturalmente. Pongamos por ejemplo este pilar del Manifiesto Ágil:
“Promover a los individuos y su interacción, por encima de los procesos y las herramientas”
En sí representa un desafío en entornos distribuidos. Cuando la distancia es aplicada (cualquiera sea el tipo de distancia) a los proyectos distribuidos es muy difícil favorecer la interacción. En las siguientes secciones se resumen 20 años trabajando en diferentes modalidades de distribución, y una tesis doctoral sobre el tema.
Recomendación #1: La comunicación es la clave
En [W048] Alistair Cockburn presenta una interesante analogía entre el efecto de la distancia en la comunicación relacionándola con la dispersión del gas o el calor. Esta analogía sirve para visualizar la pérdida de calidad de la comunicación cuando dos personas se encuentran en la misma sala, en salas separadas, en edificios separados o en ciudades distantes. O lo que es lo mismo decir, como afecta la distancia (geográfica) a la comunicación. Cockburn se apoya en esta metáfora para presentar el concepto de “Comunicación Osmótica”, según el cual la proximidad física de las personas facilita el intercambio de información, incluso sin quererlo. En palabras del autor:
“En algunos casos, se registra lo suficiente acerca de una conversación para poder desarrollar lo que se necesita en memoria […] Esta recepción de información sin prestar atención es como el proceso de ósmosis, en la que se filtra la sustancia de un sistema.”
Para mejorar la comunicación en equipos de teletrabajo, es importante tener en cuenta los distintos tipos de comunicación, y seleccionar las mejores herramientas en cada caso:
- Sincronicidad: Sincrónica | Asincrónica
- Formalidad: Informal | Formal
- Apertura: Uno a Uno | Difusión
- Intrusividad: Intrusiva | No-intrusiva
- Persistencia: Persistente | Efímera
- Alcance: Interno | Externo
Sincronicidad
La sincronicidad de la comunicación permite configurar la “inmediatez de la información”. Siempre es mejor disponer de comunicaciones sincrónicas. Permiten retroalimentación y esto contribuye claramente a la agilidad y a cumplir con los principios ágiles. También es evidente que ante escenarios con amplia distancia temporal (equipos ubicados en distintos husos horarios) esta modalidad de comunicación puede ser difícil o imposible de llevar a cabo. El asincronismo de la comunicación siempre dilata los tiempos de resolución de dudas y en consecuencia los de desarrollo. Cuando se presentan escenario de comunicación predominantemente asincrónica, cobra especial importancia la especificación exhaustiva de requisitos. A pesar de que esto vaya en contra de los principios ágiles [W006].
Formalidad
La formalidad de la comunicación representa el grado de libertad que tienen los integrantes de un equipo para comunicar mensajes. La comunicación informal es fundamental en el ámbito de A-GSD y se analizan en detalle en la próxima sección.
Apertura
La apertura de la comunicación depende del canal de comunicación. Existen canales que permiten difusión (listas de correo electrónico, wikis, etc.) y canales que tienden a ser uno-a-uno (por ejemplo una llamada telefónica). Existen distintos enfoques sobre si es mejor la comunicación por difusión o el uso de canales más cerrados. Por un lado, la difusión facilita el hecho de que todo el equipo esté al corriente de las cuestiones y por el otro, una difusión constante de información puede llevar a la saturación del canal de comunicación (por ejemplo 20 desarrolladores enviando 10 correos electrónicos con dudas por duda a diferentes usuarios y poniendo en copia a todo el equipo). Un enfoque interesante es el de usar canales abiertos (difusión) pero no intrusivos. Las wikis o las redes sociales aplicadas a la elicitación de requisitos son un buen ejemplo de ello. La información está allí para todo el mundo y solo es consultada cuando es necesario.
Intrusividad
La intrusividad está relacionada con el respeto de la privacidad de las personas. Se considera que una comunicación es intrusiva cuando requiere su atención inmediata y excluyente. Por ejemplo una llamada telefónica es intrusiva (hay que responderla y deja de hacer lo que se está haciendo). Por otro lado, un correo electrónico no es intrusivo.
Persistencia
La persistencia se refiere a la posibilidad de consultar la información generada durante la comunicación con posterioridad a haberse producido el acto de la comunicación. En equipos distribuidos es muy importante disponer de medios persistentes de comunicación. También llevar a la persistencia a medios que no lo son. Por ejemplo, grabar una conversación telefónica para su posterior consulta.
Alcance
El alcance está relacionado al ámbito de la comunicación. Dentro o fuera de la organización. Está relacionado con la distancia institucional y las herramientas a utilizar dependen de ello.
Recomendación #2: ¿Cómo distribuimos el trabajo?
Otra importante característica de la distribución consiste en los elementos a distribuir. Como elementos se pueden entender sobre todo a las personas, pero no solo a éstas. También es importante definir cómo serán distribuidas las tareas a realizar. Estas definiciones afectarán a la estructura del equipo. Por ejemplo, es muy diferente dividir a los equipos por tareas de desarrollo (programación, QA, etc.) que por funcionalidades a construir. Estas decisiones afectarán sobre todo a la coordinación del equipo.
En lo referente a la distribución de tareas, se destaca la opinión de Larman [75], quién expresa la siguiente recomendación:
“Utilizar grupos de trabajo co-localizados. Evitar la dispersión de características. Evitar la organización de equipos por tipo de tarea. Evitar las disciplinas offshore”.
Recomendación #3: Ten en cuenta el tipo de distancia para seleccionar la práctica ágil
Cuando hablamos de equipos distribuidos, es importante entender cuál es el tipo de distancia que tenemos en cuenta. La distancia es el principal concepto a considerar dentro de las características de proyectos distribuidos. Veamos algunos de ellas:
- Distancia Temporal: Es una medida del desplazamiento en el tiempo experimentado por dos actores que deseen interactuar [5]. La distancia temporal puede ser vista como la reducción de las oportunidades de colaboración en tiempo real, y de como el tiempo de respuesta se incrementa cuando las horas de trabajo en lugares remotos que no se superponen.
- Distancia Geográfica: La distancia geográfica es una medida del esfuerzo requerido por un actor para visitar a otro y puede ser visto como la reducción de la intensidad de la comunicación [5], especialmente cuando la gente experimenta problemas con los medios de comunicación y tienen dificultades para encontrar un sustituto lo suficientemente buena a la interacción cara a cara [108].
- Distancia Cultural: Es una medida de la comprensión de un actor de los valores y las prácticas normativas del otro actor [5]. La distancia cultural puede tener un gran efecto en cómo las personas interpretan una determinada situación, y cómo reaccionan ante ella. Es una dimensión compleja, que involucra la cultura organizacional, la cultura nacional y el lenguaje, la política y las motivaciones individuales y la ética del trabajo. Es posible tener un bajo nivel de distancia socio-cultural entre dos actores de diferentes orígenes nacionales y culturales que comparten una cultura común de organización, pero a una distancia elevada entre dos individuos de la misma nacionalidad pero con antecedentes de compañías muy diferentes.
- Distancia Idiomática: Es un subconjunto de la distancia cultural [55].
- Distancia Organizacional: También llamada distancia institucional, se refiere a tener un equipo distribuido en diferentes empresas o departamentos de una empresa.
Recomendación #4: Selecciona las mejores prácticas y herramientas teniendo en cuenta lo mencionado anteriormente.
La selección de prácticas a utilizar dependerá de la comunicación y del tipo de distancia que tenga tu equipo. Por ejemplo, herramientas como Slack o Teams sirven para aliviar las distancias geográficas y mejorar la comunicación asincrónica. Los gestores de tareas y tableros kamban virtuales como Jira o Trello sirven para organizar equipos que tienen distancias temporales y organizacionales.
Por el lado de las prácticas, el envío de embajadores frecuente a los equipos remotos es una buena práctica para mejorar la confianza y aliviar la distancia cultural. También se puede practicar Pair Programming Remoto, trabajando con herramientas de escritorios compartidos o trabajar con Retrospectivas Asíncronas, si el equipo trabaja con Scrum en entornos distribuidos.
Como hemos visto en este breve artículo, existen prácticas y herramientas que, bien aplicadas, pueden ayudarnos a trabajar de manera ágil en entornos distribuidos.
En estos tiempos inciertos de COVID-19, cuarentena y pandemia global, el teletrabajo se ha convertido en una opción para continuar con la actividad empresarial, reduciendo las posibilidades de contagio y protegiendo a todos sus empleados.
Desde Hiberus, queremos ayudar a las empresas a afrontar esta situación de la mejor manera posible. Por este motivo hemos diseñado varios servicios orientados a optimizar el trabajo con equipos remotos y a tratar de evitar el descenso de la productividad. Conoce más sobre nuestra propuesta de tecnología para teletrabajo.
Aquí os dejamos algunas referencias para seguir leyendo:
[125] Woodward, E., Surdek, S., Ganis, M.: A Practical Guide to Distributed Scrum. IBM Press (2010)
[W048] Agile Software Development: The Cooperative Game, Second Edition. Alistair Cockburn; Addison-Wesley Professional; 2 edition (October 29, 2006); ISBN-10: 0321482751; ISBN-13: 978-0321482754
[75] Larman, C. and Vodde, B., “Practices for Scaling Lean & Agile Development”, Addision Wesley, 2010.
[55] Holmström, H., O Conchuir, E., Agerfalk, P.J., Fitzgerald, B., “Global Software Development Challenges: A Case Study on Temporal, Geographical and Socio-Cultural Distance”, Global Software Engineering, 2006. ICGSE ’06. International Conference on Digital Object Identifier: 10.1109/ICGSE.2006.261210, 2006, Page(s): 3 – 11
[5] Ågerfalk, P.J., Fitzgerald, G., Holmström, H., Lings, B., Lundell, B., Ó Conchuir, E., “A Framework for Considering Opportunities and Threats in Distributed Software Development”, InProceedings of the International Workshop on DistributedSoftware Development (DiSD 2005), Austrian ComputerSociety, 2005, pp. 47–61.
[108] Smith, P.G., Blanck, E.L. (2002). From experience: leading dispersed teams, The Journal of ProductInnovation Management, Vol. 19, No. 4, pp. 294-304.
[W006] Paul Prior, Frank Keenan: Requirements Management in a Distributed Agile Environment. WEC (2) 2005: 204-207
¿Quieres más información sobre nuestros servicios de teletrabajo?
Contacta con nuestro equipo de tecnología para teletrabajo
Muy buenos consejos para afrontar estas semanas de teletrabajo sin perder productividad ni capacidad de liderazgo.
¡Gracias por compartir!
Me encanta agregar valor a la gente y a las empresas a través de nuevas metodologías de trabajo