Que es Swarming
Desde cuando existe esto del Swarming
Hace no mucho, estaba tomando unas cerves con unos ex compañeros con los que trabajé 15 años, y les pregunté si trabajaban usando Swarming. La respuesta a mi pregunta fue «que si hacemos qué? o eso qué é lo que é?
Les explico que si utilizas Swarming, todo el equipo tendría que estar trabajando (en la medida de lo posible) en la misma tarea hasta terminarla. En este momento el equipo de forma completa podría pasar a la siguiente tarea.
Es muy importante en el proceso de generación de valor, las tareas estén priorizadas, de forma que el equipo tome primero la más importante y continúe con la siguiente en prioridad. Es importante que el objetivo sea claro y compartido.
Vamos a practicar Swarming desde la Cocina
Bueno y para explicar este concepto, y esta mañana haciendo el puré de verdura a la familia, se ha ocurrido hacer un ejemplo verduril.
Mi objetivo para hoy es hacer un puré rico rico de verduras, y sabiendo que a mis hijos no les gusta el puré (como a casi ningún niño), les preguntó ! Chicos voy a hacer el puré!!! noooooooo (dicen ellos). Decidme qué verduras os gustan más y cuales os gustan menos. Pues…..
- El calabacín es lo que más nos gusta.
- La calabaza esta tambien rica.
- La patata la toleramos.
- Odiamos las zanahorias.
Teniendo una priorización, voy a intentar explicar como funcionaría un sistema sin utilizar Swarming, y como sería utilizando esta técnica.
Puré de verdura sin Swarming (Waterfall)
En el primer ejemplo, llamémosle waterfall, tengo varias personas en mi equipo y cada personas se encarga de preparar un tipo de verdura, porque no quieren tener nada que ver con trabajo de su compañero. La primera persona «ChefCalabacin«, empieza a trabajar con los calabacines.
La siguiente persona lo que hace es coger la siguiente verdura «ChefCalabaza», porque piensa que el responsable de los calabacines es ChefCalabacin. En este momento estamos procesando dos verduras a mismo tiempo
ChefPatata y ChefZanahoria también entran en el proceso, y cada uno trabaja solo en su proceso. Quedan 5 minutos para que se cumpla el tiempo, y la cosa no pinta nada bien.
El resultado final, es que no hemos podido terminar nada, y todo está en proceso. Es en este momento cuando el MasterChef les pregunta que coño ha pasado, y cada uno de ellos intenta salvar su culo:
» ChefCalabaza dice …. a mi me habeis dado las verduras más grandes»
«ChefPatata dice …. ChefZanahoria me ha quitado el cuchillo de pelar y no he podido trabajar.
«ChefZanahoria dice yo he empezado el último y he perdido 10 minutos.
El resultado señores es que todo está empezado pero nada terminado.
El que mucho abarca poco aprieta.
Puré de verdura con Swarming
En el segundo ejemplo, llamémosle Swarming, hacemos todo lo que podamos en paralelo, dentro de cada tipo de verdura.
No queremos a un ChefCalabacín, o un ChefZanahoria, queremos que todos sean responsables de todo, y que nuestro equipo mejore con el tiempo.
La primera persona que empiece a trabajar, empezaría a procesar el primer calabacín, y la segunda persona le ayudaría con el resto de calabacines.
Ahora tenemos a dos personas trabajando en los calabacines, con lo que una tercera persona si podría empezar con las calabazas
Nos quedan 5 minutos para terminar, y por lo menos hemos terminado de momento de procesar los calabacines. Ahora ayudamos a la persona que está con las calabazas para terminar de procesarlas.
Ha finalizado el tiempo y hemos conseguido terminar los calabacines, las calabazas y las patatas. Es cierto que no hemos terminado de procesar las zanahorias, pero así y todo podríamos hacer el puré.
Como a mis hijos no les gustaba las zanahorias, me han dado las gracias porque no tenía zanahorias. La próxima vez seremos más eficientes.
Trabajamos en equipo para terminar cuantas más cosas mejor.
Como lo llevamos al mundo del desarrollo
Este ejemplo llevado al mundo del software, sería que si tenemos una historia de usuario donde la definición de terminado es hacer el análisis, desarrollo y las pruebas, podríamos hacer las tres tareas en paralelo.
Por ejemplo el analista empezaría el análisis, el desarrollador empezaría a hacer la pantalla gráfica (tiene info del Sprint planning), y el tester empezaría a desarrollar los casos de prueba. Según el analista vaya avanzando, hablaría con su compi desarrollador, y le diría tío ya puedes hacer esta parte del desarrollo….. y así hasta terminar la historia de usuario.
Este proceso no significa que no haya que hacer algo de re-trabajo porque el analista se podría dar cuenta de algo a última hora. Lo más importante es que todo el equipo está involucrado en cerrar la historia de usuario cuanto antes (responsabilidad compartida). Algún enlace interesante sobre Swarming lo puedes encontrar en el blog de Javier Garzas, pulsa aquí.
5 Comentarios
Pingback:
JOAN MORENO I MAUREL
Buen artículo! Gracias!
Antonio Palomares Fernández
Gracias a tí Joan por dejar el comentario. Un saludo
Pedro Benites
Antonio, muchas gracias por compartir tu ejemplo de Swarming verduril.
Súper ilustrativo y práctico.
Me sirve un montón ahora que estoy estudiando para mi certificación SMC de ScrumStudy.
Saludos,
Pedro
Antonio Palomares Fernández
Muchas gracias Pedro, cualquier duda que tengas estaré encantado de echarte una mano.