Cuando me uní, sabía que iba a ser un tipo de empresa diferente. Ya estaban practicando cosas que había estado aprendiendo y luchando por implementar en mi empresa anterior, como TDD y entrega continua. Pero no me di cuenta de lo diferente que sería mi trabajo diario hasta que descubrí que mi equipo estaba haciendo algo llamado programación mob .
Todos los días venía a trabajar, me sentaba cerca de otros cuatro desarrolladores y trabajábamos juntos en un solo ordenador conectado a dos televisores de 80 pulgadas en la pared. Juntos discutíamos en qué trabajábamos, cómo debíamos hacerlo y nos turnábamos en el teclado.
Como nuevo miembro del equipo, aprecié mucho que esta forma de trabajar me permitiera aprender sobre la marcha. No estaba en un cubículo separado, me daban una tarea y esperaba resolverla por mí mismo. Mis compañeros de equipo me explicaban lo que necesitaba saber, respondían a las preguntas y esperaban que contribuyera más a medida que pasaba el tiempo. Pero también aprendí rápidamente que había muchos más beneficios en la programación de la mafia que sólo poner al día a los nuevos contratados.
¿Qué es la programación Mob?
Woody Zuill describe la programación de la mafia como una práctica en la que se consigue «toda la gente brillante, trabajando en la misma cosa, al mismo tiempo, en el mismo espacio y en el mismo ordenador». Puedes pensar en ello como tomar la programación de pares y marcar hasta 11; especialmente si puedes conseguir que un equipo multifuncional se involucre en el proceso.
En esta entrada del blog, quiero centrarme en mi propia experiencia con el mobbing, por lo que no pasaré mucho tiempo explicando cómo se hace el mobbing. Pero así es como lo hace mi equipo ahora, después de mucha experimentación:
- Tenemos dos televisores de 55 pulgadas en soportes, conectados a un único ordenador con especificaciones de desarrollo
- Frente a los televisores hay un escritorio ajustable de pie/sentado con al menos un ratón y un teclado (a veces varios, dependiendo de las preferencias individuales)
- Usamos un temporizador de la mafia que creamos y lo usamos para hacer turnos de 10 minutos en el teclado
- La persona que está en el teclado es el conductor y actúa como un «teclado inteligente»; no debe escribir lo que quiera, sino que interpreta la dirección del grupo en código
- Los miembros del equipo que no están en el teclado discuten lo que se debe hacer y le dan dirección al conductor en el nivel más alto de abstracción que pueden manejar
- Empezamos el mobbing por la mañana, tomamos un descanso para comer desde el mediodía hasta la 1pm, y moblamos toda la tarde
- Los miembros del equipo son bienvenidos a desconectarse de la multitud para manejar correos electrónicos, reuniones, descansos para ir al baño, etc. Su turno de teclado se salta si no están presentes cuando el temporizador muestra su nombre
¿Hablas en serio?
Cuando hablo con la gente sobre el mobbing en conferencias o reuniones locales, la gente suele sorprenderse o mostrarse escéptica sobre la práctica, pero cuando les pregunto si alguna vez hacen algún tipo de programación en pareja, suelen admitir que se reúnen con otras personas para «problemas difíciles». El truco está en ver el valor de hacer de la colaboración su estado normal en lugar de reservarla para problemas «más meritorios».
Básicamente, la preocupación es que el mobbing no es productivo. La gente se pregunta: «¿Cómo conseguiste que tu manager se lo creyera?» como si hubiera algún truco porque obviamente no puede ser un uso eficiente del tiempo de los desarrolladores. Si tenemos dos desarrolladores, deberíamos ponerlos en tareas separadas para que hagan el doble, ¿no?
El problema con esa línea de pensamiento es que tendemos a imaginar que todo irá bien. Olvidamos cuánto tiempo dedicamos a cosas como la comunicación, la integración y las pruebas. Olvidamos que el desarrollo de software tiene un aspecto fuertemente creativo que es impredecible. Y olvidamos que las cosas llevarán una cantidad de tiempo diferente dependiendo de quién esté trabajando en ello.
La programación Mob naturalmente favorece el concepto Lean de eficiencia de flujo en lugar de eficiencia de recursos. Así que si valoras hacer las cosas y entregarlas a tus clientes, entonces sí, el mobbing es muy productivo. En mi propia experiencia, he observado que mi equipo suele hacer más en una semana determinada que cualquier otro equipo en el que he trabajado.
Beneficios
Hay muchas razones por las que nos gusta la programación de la mafia.En primer lugar, conseguir lo mejor del equipo es mejor que conseguir lo mejor del equipo (según esta gran animación).Nos centramos en conseguir lo más importante en lugar de mantener a todo el mundo ocupado al máximo.
Debido a que discutimos nuestro trabajo todo el día, la comunicación se mejora dentro del equipo y hay menos necesidad de reuniones. La calidad de nuestro código se mejora porque obtenemos las mejores ideas de todo el equipo, y revisamos continuamente nuestro trabajo. Esto conduce naturalmente a la propiedad colectiva del código.
Dado que todo el mundo está en la misma página, evitamos los retrasos causados por la falta de disponibilidad de los miembros del equipo (ya sea por reuniones, enfermedad, vacaciones u otros motivos).no nos frenan los conflictos de fusión de otros miembros de nuestro mismo equipo.y generalmente no nos quedamos atascados en un problema porque hay muchos ojos y mentes trabajando en el problema.todo esto conduce a una mayor coherencia tanto en la velocidad de entrega como en la forma en que escribimos el código.
El mobbing nos permite aprender unos de otros todo el tiempo.Los nuevos o jóvenes desarrolladores son capaces de ponerse al día rápidamente porque siempre hay alguien que les ayuda. Si hay necesidad de investigar o experimentar, un individuo puede desentenderse del mobiliario durante un tiempo para aprender.
La flexibilidad para que alguien se aleje de la mafia también proporciona un tiempo libre para ocuparse de otras preocupaciones (como el correo electrónico), o simplemente para tomar un descanso. La codificación social puede ser agotadora, especialmente cuando eres nuevo en ella y no has desarrollado las habilidades asociadas. Esto puede ayudar especialmente a los miembros más introvertidos del equipo.
Si tienes un equipo con el que disfrutas, la programación de la mafia también puede ser muy divertida.
Desventajas
La programación de la mafia es la forma en que mi equipo prefiere trabajar. Creemos que es la mejor forma de que nuestro equipo haga el trabajo. Pero no funcionará para todos en todas las situaciones.
Junto con la cuestión de la productividad de la programación de la mafia, algunas personas creen que la mafia es una exageración para las tareas triviales.
El mobbing es una codificación social y requiere algunas habilidades adicionales para ser eficaz en ella. Puede haber algunas personas cuyas personalidades chocan o simplemente no se respetan. Algunos codificadores prefieren trabajar en solitario (tal vez en la cueva de su cubículo con los auriculares puestos). En estos casos el mobbing puede no ser viable.
A algunas personas les preocupa que a los introvertidos no les guste el mobbing. En mi experiencia, eso no ha sido un problema, incluso para algunas personas muy introvertidas. Trabajar con un equipo en el que confías en los problemas para el trabajo es muy diferente a ir a una fiesta u otro tipo de eventos sociales. Las personas introvertidas normalmente no tienen problemas para hablar de las cosas que les apasionan, pero tu kilometraje variará dependiendo de las personas de tu equipo.
Otro problema potencial en torno a la codificación colaborativa es que los individuos pueden no obtener tanta profundidad de conocimiento. A veces la lucha por resolver un problema ayuda a solidificar su comprensión. Por lo tanto, si otro compañero de equipo ya conoce una solución, puede que no aprendas realmente mucho sobre el problema o la solución. Se necesita energía extra (y a veces valor) para hablar cuando no entiendes.
La co-ubicación hace que el mobbing sea mucho más fácil. Hay algunas herramientas que pueden ayudar con el mobbing remoto, pero aún así puede ser un reto. Además, como se trabaja «a la misma hora» es más difícil cambiar los horarios para tener en cuenta las zonas horarias o los empleados que quieren trabajar a diferentes horas del día.
Y finalmente, el tamaño del equipo importa. Dos personas son sólo un par, no una multitud. Tres personas está bien, pero a menudo se emparejan en lugar de hacer un mobiliario porque alguien tiene que alejarse. Mi equipo ha encontrado que el punto dulce para el tamaño del equipo es alrededor de 4-6 desarrolladores (además de los miembros del equipo multifuncional, según sea necesario). Hemos trabajado con más que eso, pero la gente tiende a desentenderse; hemos encontrado que es mejor dividirse en dos mobs en ese momento.
Una forma natural de trabajar
Después de hacer la programación de la mafia por un tiempo, me di cuenta de que se sentía natural. En uno de mis antiguos trabajos, para los problemas difíciles trabajábamos juntos en una sala de conferencias. La llamábamos «la sala de guerra» y era tan efectiva que experimentamos con ella más a menudo. No creo que la llamaría programación de la mafia, pero se acercaba a ella.
Creo que si hubiéramos tenido más tiempo, menos nociones preconcebidas, y tal vez un poco de orientación podríamos haber ido por el mobbing. Sabiendo lo que sé ahora, puedo ver dónde habría resuelto una serie de problemas que tenía mi equipo.
La programación de la mafia puede no ser para ti, pero te animo a que al menos lo intentes. Te sorprenderías.
Categorías: prácticasTags: mobbing, cross-functional