Por qué he acabado adorando la programación en grupo o Mob Programming

Julien Mege, primero por la derecha paracticando el mob programming

La pandemia de la COVID-19 ha hecho que muchos de nosotros estemos considerando su impacto en nuestras vidas personales y laborales a largo plazo. ¿Dar la mano a nuevos compañeros o clientes? ¿Comidas de trabajo? Recientemente me he planteado cómo afectará el distanciamiento social al Mob Programming, una práctica de desarrollo que implantamos en Bonitasoft a finales del año pasado.

¿Qué es el Mob Programming? Es un acercamiento al desarrollo de software, en el que un equipo entero se reúne en torno a un teclado y una pantalla, según la definición de la organización comunitaria Agile Alliance. Es una extensión de la idea de programación por parejas (Pair Programming), que involucra a dos miembros del equipo, que colaboran para completar una tarea de desarrollo en el mismo espacio.

En agosto de 2013 Marcus Hammarberg, encargado de Calidad y Currículum en la Escuela de Tecnología Aplicada de Suecia, equiparó el Mob programming a conducir. El conductor utiliza el teclado, escribiendo el código y siguiendo estándares de programación. Los otros miembros del equipo son navegadores, asesores e investigadores que apoyan al conductor y se centran en tareas de mayor nivel, como detectar si se está solucionando el problema adecuado. También se turnan para tomar el cargo del conductor.

“No digo que el mob programming sea para todo el mundo, como tampoco lo es el pair programming”, afirma Hammarberg. “Puede que tampoco sea para todos los tipos de tareas… pero creo que, al reunir a tu equipo en una sala, con un ordenador y una pantalla, todos trabajan juntos en una función -y no hay manera más efectiva para sacarla adelante-”.

Por supuesto, durante los últimos meses han cambiado muchas cosas, incluyendo el nivel de comodidad de las personas cuando están cerca unas de otras. Antes de que empiece con mis recomendaciones sobre cómo puede funcionar el mob programming en la situación actual, compartiré los motivos por lo que Bonitasoft lo ha adoptado en primer lugar y los beneficios que ha supuesto.

Por qué Bonitasoft ha adoptado el mob programming

Hace aproximadamente un año, asistí en el MixIT 2019 a una presentación del coach Woody Zuill titulada ‘Mob Programming: un enfoque de equipo completo’. Me intrigó lo que entendí como un acercamiento de desarrollo prometedor. No obstante, tuve mis dudas sobre su eficacia y la logística de reunir a cinco personas frente a una pantalla. También sospeché que no sería compatible con el teletrabajo -¿una premonición de la situación actual?-.

La ejecución de proyectos de desarrollo en sprints la convertía en una inversión de bajo riesgo, así que presenté el mob programming a los otros miembros de mi equipo compuesto por cinco personas -responsable del desarrollo del portal de la plataforma Bonita para la entrega de aplicaciones-, que es una mezcla de gente extrovertida e introvertida. El equipo utilizó esta técnica para diseñar y testar la página de una aplicación. Era un proyecto de complejidad media construido con Gradle, para el que utilizamos la herramienta de desarrollo de páginas web UI Designer y Cypress para los tests.

Después de debatir sobre el objetivo y la metodología del proyecto, el equipo trabajó con un portátil y una pantalla de tamaño estándar en un espacio abierto de la oficina. Ventajas: rápida finalización del desarrollo, mejor implementación y buena cobertura de los tests. Desventajas: una menor concentración debido a conversaciones largas y a las distracciones de notificaciones en los móviles, diferencias en los estilos de comunicación y temas transversales en las pausas.

A los miembros de mi equipo y a mí nos encantó el resultado del Mob programming, pero necesitábamos pulir el formato. También nos saltamos la primera etapa de agilidad en nuestro entusiasmo por probar la metodología -comenzando por un contexto marcado y normas básicas-. Esto incluye definir los roles del piloto, el navegador y los investigadores del equipo.

Entre otros ajustes, nos trasladamos a un espacio más tranquilo en la oficina. Cambiamos la pequeña pantalla por un proyector gigante y sustituimos el portátil por un ordenador de sobremesa con teclado y ratón. Programamos más descansos. Nos adherimos a las normas básicas. Rotamos los roles cada 15 minutos, lo que supuso que todos los miembros del equipo estuviesen más atentos e involucrados. Al detectar que era probable que los profesionales más tímidos no diesen su opinión, distribuimos los tiempos de habla de forma más equitativa. Y fuimos más selectivos a la hora de elegir los proyectos para el método del Mob programming (la corrección de errores, por ejemplo, se soluciona mejor mediante Pair programming).

Cómo nos hemos beneficiado del mob programming

El proceso requería unas pequeñas modificaciones al principio, pero merecía la pena. Hemos obtenido muchos beneficios de la metodología del Mob programming. Uno de ellos es todo el tiempo que ahorramos en proyectos de desarrollo. Esta técnica elimina conflictos en las fusiones, reduce el tiempo empleado en reuniones (daily) y revisiones de código (PRs) y las interrupciones externas (las personas están menos dispuestas a interrumpir a todo un grupo que a un solo desarrollador que trabaja de forma independiente). Aquí indico algunas ventajas más del Mob programming:

  • Intercambio de conocimiento global: todos los miembros de un equipo de Mob programming reciben el mismo nivel de conocimiento sobre los nuevos desarrollos. Los recién incorporados pueden ponerse al día rápidamente con el código heredado.
  • Soluciones de alta calidad: las soluciones fruto de los esfuerzos del Mob programming tienden a probarse mejor y a tener menos fallos en el producto final. Al construirse el código modularmente, es fácil modificarlo si se necesita.
  • Desarrollo del equipo: el Mob programming nos ha enseñado a comunicarnos de la forma que mejor funcione con cada miembro del equipo. Apreciamos la diversidad de mentalidades y personalidades entre los miembros del equipo, en lugar de verla como una desventaja.

¿Puede funcionar el Mob Programming durante una pandemia?

Ahora que sabes por qué recomiendo el Mob programming, veamos si es posible continuar usando esta metodología de forma segura durante la pandemia. Todos los desarrolladores de Bonitasoft están trabajando de forma remota, así que baso esta opinión en la experiencia. Aplicamos las normas básicas usando las herramientas de vídeoconferencia y duplicamos el entorno de desarrollo para todo el mundo. Comunicarse por videoconferencia requirió ajustes, pero funciona. Cada equipo puede adaptar el Mob programming a lo que funcione mejor para él, bien esté trabajando en el mismo espacio o de forma remota.

Aquí tienes algunos consejos para el Mob programming:

  • Define cuándo el Mob programming involucra teletrabajo y cuándo a todo el equipo unido en el mismo espacio (con medidas de distanciamiento social, por supuesto).
  • Aplica las normas básicas estrictamente, para que tengas una base sólida sobre la que construir una práctica de Mob programming.
  • Limita las posibles distracciones optando por una pantalla grande, con ratón y teclado en una localización tranquila.
  • Ten en cuenta el tiempo libre en tu horario de trabajo sin sprints para que los miembros del equipo puedan consultar su correo y trabajar en otros proyectos.
  • Define los descansos (la técnica Pomodoro puede ser una opción).

El mob programming merece la pena… ¡incluso ahora!

Durante los últimos meses, he aprendido mucho sobre el Mob programming y creo que tiene cierta magia. En Bonitasoft las implementaciones inteligentes han llegado desde el equipo de desarrollo, al interiorizar el valor de una inteligencia colectiva y el Mob programming. Ahora estamos lanzando proyectos a mayor velocidad y disfrutando de una mayor satisfacción en nuestras vidas laborales. Con algunas adaptaciones, es posible aprovechar el valor del Mob programming añadiéndolo a tus opciones de metodología de desarrollo.

Noticias Relacionadas
8 Comentarios
  1. Por qué he acabado adorando la programación en grupo o Mob Programming https://t.co/SHKHSAjl7X

  2. Por qué he acabado adorando la programación en grupo o Mob Programming https://t.co/4nBfBFYwQo

  3. ProsiNet (@prosinet) dice

    Por qué he acabado adorando la programación en grupo o Mob Programming https://t.co/yIjwitY0c8

  4. Por qué he acabado adorando la programación en grupo o Mob Programming https://t.co/OxNpQ63V7J #cloudcomputing https://t.co/ow6rwp3pON

  5. Por qué he acabado adorando la programación en grupo o Mob Programming https://t.co/xFB1Huklk4 https://t.co/5nZxQqsEgf

  6. Pablo Galindo (@pabglindo) dice

    Por qué he acabado adorando la programación en grupo o Mob Programming: https://t.co/iJqwpM6wU8. #Cloud #CloudComputing

  7. Jairo Iglesias (@Jairo_Church) dice

    Por qué he acabado adorando la programación en grupo o Mob Programming https://t.co/BMwlYuspfS https://t.co/FpgoDsbtv3

  8. RT @prosinet: Por qué he acabado adorando la programación en grupo o Mob Programming https://t.co/yIjwitY0c8

Deja tu comentario sobre esta noticia

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.