En la larga historia de la humanidad (y del mundo animal también), aquellos que aprendieron a colaborar e improvisar de la forma más efectiva han prevalecido.
Tercer post de 55, ¡vaya que será un año largo! En esta ocasión escribiré un poco de un tema que me encanta: la colaboración como parte del proceso de desarrollo de software. En sí, el ser humano está destinado a pertenecer a un grupo de personas. Es muy difícil que alguien logre la magnificencia por sí solo, sino que requiere un grupo que lo apoye.
Un ejemplo burdo, pero que ilustra bien el punto: el Rayo McQueen, en la carrera que nos introduce a Cars, no ganó la Copa Piston debido a que despreció a su equipo y dijo “soy un espectáculo de un solo hombre”. Luego, como es habitual en las películas de Pixar, se nos muestra la redención del Rayo, con amigos de Radiador Springs y siendo respetuoso con el Rey.
Es por eso que hoy, ahondaré en qué significa colaborar, los desafíos y las ventajas que tenemos al colaborar con las personas en el desarrollo de software.
La colaboración en el desarrollo de software
Siempre que comenzamos una nueva tarea, idea o proyecto, nos encontramos con la necesidad de compartir con alguien más nuestros pensamientos para comprobar que estamos en lo correcto. Esto nos permite confirmar, desmentir o descartar una idea preconcebida por nuestro cerebro.
La colaboración es la forma en que encontramos para trabajar juntos con el fin de lograr una determinada tarea. Desde las parejas que recién están viviendo juntas hasta milicias con miles de efectivos, todos constituyen equipos de trabajo. Estos equipos deben contar con algunos principios rectores:
- Identificar la tarea por hacer y cómo se logra el éxito: ¿Qué hay que hacer?
- Contar con una persona que funja de líder o cabecilla del grupo: ¿Con quién coordinamos los esfuerzos?
- Contar con una estrategia para abarcar la problemática: ¿Cómo lo haremos?
Desde luego, existen otros principios rectores de la colaboración, pero estos son los más básicos. Nos permiten identificar qué tipo de trabajo y sus objetivos. La colaboración, por lo tanto, consta de una problemática, personas y objetivos.
Cómo lo hacemos en el software
La colaboración en el software no dista mucho de la colaboración en otros ambientes laborales, sino que considera ritmos distintos y formas diversas de ponerse de acuerdo. En general, hay diversas metodologías que ponen diversos liderazgos en las conversaciones o roles. Para sintetizar, siempre hay un líder por parte de los clientes, así como un líder por la parte del equipo de desarrollo. Ambos liderazgos son encargados de poder representar los intereses de ambas partes.
Hace un par de semanas, escribía acerca de la importancia de tener una comunicación fluida entre ambas partes y la posibilidad de la colaboración para lograr que el proceso informático llegue a buen puerto. La colaboración es el puente que nos permite idear y centrar nuestras ideas en pos del bien común: la solución del problema a cambio de dinero.[1]
En el software no podemos pensar en que todos somos partícipes de las mismas discusiones o las mismas decisiones, sino que hay diversos niveles y mecanismos de colaboración, ya que cada persona tiene una responsabilidad distinta con el equipo y para el equipo de trabajo.
Lo importante es que cada persona conozca bien su rol, su deber y responsabilidad con el resto de los pares del proyecto, grupo o equipo: nadie debe estar a la deriva o sin asignación por falta de coordinación.
¿Cuáles son los desafíos en la colaboración?
Como elaboraba en el primer post, existen desafíos de comunicación, gestión de conflictos y creación de una cultura organizacional que nos permita aportar con libertad y confianza al propósito común.
- La comunicación: La comunicación es esencial para la colaboración eficaz. Los equipos colaborativos deben establecer canales de comunicación claros y eficaces para compartir información y resolver problemas.
- La gestión de conflictos: Los conflictos pueden surgir en cualquier equipo, pero pueden ser especialmente problemáticos en los equipos colaborativos. Los equipos colaborativos deben tener un proceso para gestionar los conflictos de manera constructiva.
- La cultura organizacional: La cultura organizacional puede influir en la capacidad de los equipos para colaborar eficazmente. Los equipos colaborativos deben tener una cultura que fomente la colaboración y el trabajo en equipo.
Estos desafíos deben ser abordados por las personas que interactúan entre sí, y no deben darse necesariamente por estructuras externas. Es decir, casi la autoorganización que nos deja entrever los principios del Manifiesto Ágil, donde cada equipo y participante del grupo es partícipe activo en la gestión de tareas y del cambio en función del objetivo que se necesita lograr.
No existen equipos que no colaboran, sino que colaboradores que no se sienten parte del equipo
En general, como la mayoría de los posts de esta primera parte, apunto a la persona: cada una es única e irrepetible, por lo cual debemos ser conscientes de que cada una es un mundo y posee diversos valores, principios, problemas y virtudes.
Así como existen personas que se entregan por los demás en forma gratuita, abren caminos ante los problemas y están atentos a las necesidades de los demás, también hay personas que solo se dedican a su trabajo, sin compartir más allá de lo que sea necesario. Son verdaderas islas de conocimiento. Ambas formas de trabajar son valoradas y respetadas, ya que hay personas que son celosas en cómo se muestran a sus colegas, como personas que son muy abiertas en sus relaciones laborales y personales.
Hay que considerar que el llamado a colaborar debe ser en tonos inclusivos para todas las personas. Se debe dar la libertad de compartir y expresar ideas sin recriminación y sin objeto de burlas, por muy mala idea que parezca. A veces, dos ideas malas pueden formar una gran idea. Aquí la invitación a mantener el respeto y a dar el espacio para que todas las voces puedan ser escuchadas y representadas en función de la pertinencia de la discusión.
El sentirse parte de un equipo no significa que uno deba inmolarse por el equipo, pero sí debe manifestarse en el compromiso y el acuerdo común de lograr alcanzar el objetivo que se ha puesto en común. Si no, se pierde la necesidad de contar con un equipo.
Por último, no olvidar que hay personas que son introvertidas. Por lo tanto, brindar ese espacio de discusión en ocasiones puede ser hasta muy molesto para este tipo de personas. Debemos contar con más mecanismos para poder manifestar nuestras ideas con tranquilidad. Quizás en un foro común, una anotación en una tarjeta de un tablero Kanban o buzón de ideas. Hay que buscar ese medio.
¿Cómo podemos colaborar mejor o practicar la colaboración en nuestros espacios?
Este tema nunca es fácil de plantearnos, ya que antes debe existir un momento base o momento cero sobre el cual debemos partir haciendo pequeñas mejoras progresivas para ir evaluando cómo mejorar, qué cambiar y qué no repetir a futuro.
Lo que tenemos que tener claro es realizar un diagnóstico de nuestra situación actual, situando métricas cualitativas y cuantitativas de cómo es nuestra colaboración. Esto permitirá saber qué podremos priorizar en el corto, mediano y largo plazo, así como fijarnos en cómo podemos medir nuevamente en un plazo razonable (por ejemplo, 3 meses).
Tras el diagnóstico podrían salir algunas de estas ideas…
- Invertir en formación: La formación puede ayudar a los equipos a desarrollar las habilidades necesarias para colaborar eficazmente, no solo usando mejores herramientas, sino también en la formación de habilidades conductuales (blandas o soft skills) para mejorar nuestra expresividad de ideas o conexión de las mismas.
- Revisar los ciclos de reuniones de equipo: Comprobar si es necesario menos reuniones, pero de más calidad en lugar de pocas reuniones pero sin fundamento del porqué hacerlas.
- Utilizar las herramientas y técnicas adecuadas: Los equipos deben utilizar las herramientas y técnicas adecuadas para apoyar la colaboración, no solo para resolver problemas, sino también para generar confianza entre los participantes del equipo. No podemos confiar en desconocidos.
Resumen (por Bard)
- La colaboración es esencial para el éxito en el desarrollo de software. Permite a los equipos compartir ideas, conocimientos y recursos para crear soluciones de alta calidad.
- Existen tres desafíos principales a la colaboración en el desarrollo de software: la comunicación, la gestión de conflictos y la cultura organizacional.
- Los equipos colaborativos deben tener canales de comunicación claros y eficaces para compartir información y resolver problemas. También deben tener un proceso para gestionar los conflictos de manera constructiva.
- La cultura organizacional debe fomentar la colaboración y el trabajo en equipo. Esto significa crear un entorno de confianza y respeto donde todos los miembros del equipo se sientan valorados y escuchados.
- Para mejorar la colaboración en el desarrollo de software, los equipos deben realizar un diagnóstico de su situación actual y desarrollar un plan de acción. Este plan puede incluir medidas como la formación, la revisión de los ciclos de reuniones y el uso de herramientas y técnicas adecuadas.
Consejos concretos
- Destina un viernes en la tarde a hacer un ejercicio de revisión de la semana: no sacas mucho reunirte para delegar trabajo, sino que úsalo para cerrarlo.
- Lleven un registro común de tareas que deben realizar, aunque no sean del mismo proyecto, así podrán saber qué está haciendo cada uno (Tablero Kanban es el ejercicio visual simple que podemos obtener)
- Da tiempo para que todas las personas puedan opinar en un tema o consulta concreta, así como dejar abierto un canal secundario en caso de necesitar privacidad o un medio para compartir ideas más complejas.
Notas
[1] Y satisfacción personal, obvio 😅
[2] Sino, recordemos a la persona que vendió piedras como mascotas, una idea tonta que le dio US$ 2 millones… vendiendo piedras
[3] Método Kaizen, por Asana, lectura recomendada si quieres mejorar un poco en un plazo fijo, por ejemplo, el nacimiento de esto se debe a la reflexión interna y cómo ir mejorando un poco más la habilidad comunicativa de escribir 💓