preloader

Mob programming


Tiempo de lectura: 3 minutos
  • Thursday, 28 de Apr 2022

¿Qué es?

Como afirma mobprgramming.org:

“MobProgramming es: Un grupo de gente brillante trabajando en lo mismo, al mismo tiempo, en el mismo lugar y en la misma computadora”

Y como sugiere el nombre, Mob Programming es un enfoque en el desarrollo de software donde todo el equipo trabaja en lo mismo. Esto es similar a la programación en pareja donde dos personas se sientan en la misma computadora y trabajan en una tarea o problema al mismo tiempo. Uno suele programar ‘driver’ y el otro guiar ‘navigator'.

El mob programming no está restringido a ningún tipo de trabajo, puede usarse para:

  • Historias de usuarios 📄
  • Requisitos 📃
  • Pruebas 🧪
  • Diseño 💄
  • Corrección de errores 🐛
  • Solución de problemas 🪲

Esto puede significar que un equipo de mob típico diseñará, desarrollará, probará e implementará todo junto.

Beneficios del mob programming

  • Mayor aprendizaje y comunicación 📖
  • Mayor capacidad para crear 💭
  • Mayor calidad de código ✅
  • Equipo más feliz y más cohesionado 😊

Roles en el mob programming

  • El conductor (driver) 🧑🏻‍💻
  • El navegante (navigator) 🧑🏻‍🏫
  • El mob (los demás integrantes que no son ni driver ni navigator) 🧔🏻🧑🏾‍🦱🧑🏻‍🦰🧑🏻‍🦱👱🏻🧑🏾‍🦲
  • El facilitador (usualmente el technical coach) 🙎🏼

Combinación de estilo fuerte

“Para que una idea pase de tu cabeza a la computadora, debe pasar por las manos de otra persona”.

a.k.a. “¡no pensar en el teclado!”

Flujo de programación del MOB

  • Temporizador de 10 minutos ⏱️
  • El navigator se une al mob 🧑🏻‍🏫 -> 🧑🏻‍🦱🧑🏻‍🦰🧑🏻‍🦱👱🏻🧑🏾‍🦲
  • El driver se convierte en navigator 🧑🏻‍🏫 -> 🧑🏻‍💻

Buenas prácticas

  • Indicar un objetivo
    • Asegúrese de que el equipo esté en la misma página y trabaje hacia el mismo objetivo
  • Si y…
    • Continúe con lo que tiene, no deshaga el trabajo de navegadores anteriores
  • Haz commit cada vez que estes en un punto seguro
    • No estes más de 2 minutos sin hacer commit y moverte al siguiente paso
  • Confía en el navigator
    • Sin pensar en el teclado
  • Expresa al driver tus intenciones
    • Escribir el código para que el siguiente paso a realizar sea obvio.
  • Código intencional
    • Explica primero su intención en un lenguaje sencillo, luego tradúzcalo a código
  • Feedback constante
    • Los comentarios nos permiten saber que estamos progresando
  • Centrarse en el aprendizaje
    • No te preocupes demasiado por no ser productivo desde el principio

Reglas para trabajar juntos

  • Amabilidad 🧡
  • Consideración 🙏
  • Respeto 🤝

Respeto

“Siempre asumimos que la persona que escribió el código antes que nosotros hizo lo mejor que pudo. Lo hicieron con el conocimiento y las circunstancias en las que se encontraban en aquel momento”.

¿Cómo configurarlo físicamente?

Entonces, el concepto es que todo el equipo se sienta alrededor de una (o dos) pantallas, se turnan para sentarse frente al teclado y todos trabajan juntos para resolver un problema.

Entonces, en cuanto a la configuración, la mayoría de los equipos implementarán algo como esto:

Y, ¿Cómo funciona de forma remota?

Obviamente trabajando en la misma sala con todo el equipo, las experiencias son muy diferentes, sobre todo por la sinergia que se genera.

¡¡Pero!! podemos trabajar también de manera remota y para obtener una experiencia similar, simplemente se necesita un poco más de paciencia.

En CodeScouts utilizamos esta herramienta para coordinar los turnos de rotación

🔧 https://mobti.me/

Shall we chat?


If you prefer, schedule a call directly with us