Simyl
simylflow
Inicio del curso
Módulo 4: Prácticas de Equipo
Lección 5 de 5
11 min

Mob Programming

Todo el equipo, una computadora, resolviendo problemas juntos.

1¿Qué es Mob Programming?

Mob programming extiende la programación en pareja a todo el equipo. En lugar de dos personas en una computadora, tienes de tres a seis personas en una computadora.

  • Una persona escribe (el conductor)
  • Todos los demás piensan, discuten y dirigen (navegadores)
  • Los roles rotan frecuentemente (cada 5-15 minutos)

Esto suena absurdamente ineficiente. ¿Cinco personas haciendo el trabajo de escritura de una persona? Pero los equipos que lo prueban a menudo reportan beneficios sorprendentes.

Cuando el mobbing funciona bien, el equipo:

  • Resuelve problemas complejos más rápido que los individuos
  • Difunde conocimiento a todos simultáneamente
  • Toma mejores decisiones a través de perspectivas diversas
  • Se mantiene enfocado (sin cambio de contexto)
  • Construye comprensión compartida del código

Observación de Woody Zuill

El pionero del mob programming Woody Zuill dice: 'Todas las personas brillantes trabajando juntas en lo mismo, al mismo tiempo, en el mismo espacio, en la misma computadora.'

2Cuándo hacer Mobbing

El mobbing no es para todo. Úsalo para:

Problemas complejos: Cuando ninguna persona tiene todo el conocimiento necesario. La experiencia combinada del mob supera a cualquier individuo.

Decisiones de alto riesgo: Elecciones de arquitectura, código sensible a seguridad, cosas que afectan todo el sistema. El mobbing reduce el riesgo de que una persona cometa un error.

Transferencia de conocimiento: Cuando quieres que todos aprendan algo simultáneamente. Una nueva tecnología, un dominio complejo, código desconocido.

Incorporación: Los nuevos miembros del equipo aprenden la base de código, los patrones y la cultura—todo a la vez.

Romper bloqueos: Cuando algo está atascado, las perspectivas frescas lo desbloquean.

No hagas mobbing en:

  • Trabajo rutinario y bien entendido
  • Tareas que requieren concentración individual
  • Cuando el equipo es demasiado grande (>6 personas se vuelve caótico)
Buen uso de Mobbing

El equipo necesita diseñar un nuevo sistema de autenticación. Hacen mobbing por un día: explorando opciones, tomando decisiones, implementando el núcleo. Todos entienden el resultado.

Mobbing desperdiciado

El equipo hace mobbing para actualizar archivos de configuración y corregir errores tipográficos en la documentación. Nadie está aprendiendo nada. El trabajo individual sería más rápido.

3Mecánica del Mobbing

Roles:

  • Conductor: Manos en el teclado. Escribe lo que dicen los navegadores. No toma decisiones.
  • Navegadores: Piensan, discuten, dirigen. Un navegador habla a la vez para evitar el caos.
  • (Algunos equipos agregan un facilitador para mantener las cosas en movimiento.)

Rotación:

  • Cada 5-15 minutos, rota el conductor
  • Usa un temporizador para hacer cumplir la rotación
  • Todos toman un turno conduciendo

Navegación de estilo fuerte:

  • "Para que una idea vaya de tu cabeza a la computadora, debe pasar por las manos de otra persona."
  • Los navegadores explican la intención; el conductor descubre las pulsaciones de teclas
  • Esto evita que una persona domine

Configuración:

  • Una computadora, pantalla grande (o proyector)
  • Todos pueden ver la pantalla
  • Asientos cómodos para sesiones extendidas
  • Remoto: compartir pantalla con todos los participantes, una persona tiene control del teclado a la vez

4Mobbing Remoto

El mobbing funciona remotamente con las herramientas correctas:

Compartir pantalla: Una persona comparte; todos miran. VS Code Live Share o similar para edición compartida.

Video encendido: Ver caras ayuda con la comunicación.

Audio claro: Todos deberían poder escuchar y hablar.

Transferencias explícitas: "Bien, estoy pasando el control del teclado a Alice."

Más descansos: El mobbing remoto es aún más intenso que el presencial. Toma descansos cada 45-60 minutos.

Barra lateral escrita: Un canal de chat para enlaces, notas o preguntas secundarias sin interrumpir al hablante.

El mobbing remoto puede funcionar sorprendentemente bien. La estructura forzada (transferencias claras, comunicación explícita) a veces lo hace mejor que el mobbing presencial casual.

Para mobs remotos, usa VS Code Live Share o JetBrains Code With Me. Compartir pantalla estándar es demasiado lento para edición colaborativa.

5Enfoques Híbridos

No tienes que hacer mobbing todo el tiempo o nunca. La mayoría de los equipos usan mobbing selectivamente:

Mob para inicios: Comienza nuevas funcionalidades como un mob para establecer dirección, luego divide en parejas o solo.

Mob para revisiones: En lugar de revisión de código asíncrona, revisa como un mob—todos ven el código, lo discuten y lo mejoran juntos.

Mob para aprender: Al adoptar nueva tecnología, haz mobbing en el primer uso. El conocimiento se difunde inmediatamente.

Solo o en pareja para implementación: Una vez que la dirección está clara, los individuos o parejas pueden ejecutar más rápido.

Piensa en el mobbing como una herramienta, no un compromiso. Úsalo cuando agregue valor; usa otros enfoques cuando sean más apropiados.

La pregunta clave: ¿Este problema se resuelve mejor con muchas mentes o con enfoque individual? Deja que la respuesta guíe tu enfoque.

Conclusiones clave
  • Mob programming: todo el equipo, una computadora, conductor rotativo
  • Mejor para problemas complejos, decisiones de alto riesgo y transferencia de conocimiento
  • El conductor escribe; los navegadores piensan y dirigen (uno a la vez)
  • Rota frecuentemente (5-15 minutos) para mantener a todos comprometidos
  • Usa mobbing selectivamente—es una herramienta, no una religión
Errores comunes a evitar
  • Hacer mobbing en trabajo rutinario (capacidad desperdiciada)
  • Una persona dominando la discusión
  • No rotar roles (algunas personas nunca conducen)
  • Hacer mobbing por demasiado tiempo sin descansos

Ejercicios prácticos