Indice de contenidos
¿Qué es el Mob Programming?
Mob Programming es un enfoque de desarrollo de software en el cual, los desarrolladores en Scrum (para nuestro ejemplo, podría ser eXtreme Programming, Kanban o cualquier otro método o marco de trabajo ágil) trabaja en una única tarea (WIP = 1), al mismo tiempo, en el mismo espacio y en un único ordenador, por lo menos cuando se hace en presencial, si es en modo online, es posible que encontremos variaciones, aunque en este artículo hablaremos del Mob Programming como lo hemos conocido y experimentado: en presencial.
Este enfoque lleva el concepto de Pair Programming a otro nivel aún más extremo, si eres de las personas que piensa que el pair programming no es productivo y no aporta en desarrollo de software, este artículo no es para ti 😉. El mob Programming va más allá de la programación, tiene muchos beneficios al trabajar juntos como: definir las historias de usuarios, comunicación, asertividad, colaboración, trabajar con stakeholders, diseñar, probar, desplegar, entregar, etc.
¿Cómo funciona el Mob Programming?
Principalmente hay dos roles: Driver (o conductor) y Navigator (o pasajero), cuando la persona es Driver, tiene el poder del teclado y es quien escribe y teclea las partes del código. Los Navigators debaten la idea que luego pasarán y guiarán al conductor para crear las partes de código necesarias. Es verdad que el Driver parece realizar un trabajo más mecánico, pero cuidado, debe de estar atento y realizar escucha activa constantemente.
Al expresar verbalmente las ideas por parte de los Navigators, nos aseguramos que todo el equipo entienda la idea, retos, solución, etc. Esto permite florecer la inteligencia colectiva de todo el equipo, mejorar la comunicación y expandir el conocimiento.
Para que una persona no se haga control total del teclado, se suele utilizar un sistema de rotación de entre 10 a 15 minutos, donde, cada 15 minutos por ejemplo, otra persona de entre los Navigators pasa a ser el Driver y el anterior Driver pasa a ser un Navigator.
En nuestro caso nos funcionó mejor 15 minutos que 5 o 10 y para mayor agilidad, habíamos creado una lista en google sheet con un Google Script que nos avisa de la siguiente persona a ser Driver.
¿Beneficios del Mop Programming en equipos Scrum?
Mob Programming tiene muchos beneficios, aquí van unos ejemplos:
- Expandir el conocimiento sobre el desarrollo de producto
- Impulsar una cultura de feedback
- Comunicación cara a cara
- Escucha activa
- Se reducen o se eliminar los cambios de contexto
- Alineamiento a nivel de codificación y estilos de programación
- Aumento de la calidad
- Reducir el Cycle Time
- Mejorar la colaboración
Nuestra experiencia y retos con Mop Programming
En nuestra experiencia utilizando Mob Programming nos hemos encontrado con los siguiente retos:
- Personas con diferentes estilos de programación o creación de productos
- En relación al punto anterior: Mucho ego, no había ni intención de colaborar ni ver lado o lados buenos de otros compañeros.
- Personas en el Scrum Team que no son programadores, donde no se sentían cómodos cuando les tocaba ser Drivers.
- Mucho rechazo a la idea de introducir Mob Programming, ya que supone salir de la zona de confort de muchos: no intentes forzarles, vendeles la idea y los beneficios de Mob Programming, para ello realiza un Workshop sobre cómo funciona Mob Programming
Para acabar, solo quiero matizar que Mob Programming no está ligado a Scrum, Kanban, eXtreme Programming, Sprints o Iteraciones, es un enfoque de trabajo en equipo para crear soluciones impulsando la inteligencia colectiva.