Since when does this Swarming thing exist?
Not too long ago, I was having a few beers with some ex-colleagues I’ve worked with for 15 years, and I asked them if they work using Swarming. The answer to my question was «if we do what?
I explained to them that if you use Swarming, the whole team would have to be working (as much as possible) on the same task until it was finished. At this point the entire team could move on to the next task.
It is very important in the process of value generation, the tasks are prioritized, so that the team takes the most important first and continues with the next priority. It is important that the objetive is clear and shared.
Let’s practice from the Kitchen
Well, to explain this concept, and this morning making the mashed vegetables for the family, it has occurred to me to make a vegetable example.
My goal for today is to make a rich mashed vegetables, and knowing that my children don’t like vegetables (like almost no child), I told them! Guys I’m going to make the mash!!! noooooooo (they said). Tell me which vegetables you like the most, and which you like the least. Well…..
- Zucchini is what we like the most.
- Pumpkin is also delicious.
- We tolerate potatoes.
- We hate carrots.
Having a prioritization, I am going to try to explain how a system would work without using Swarming, and how it would be using this technique.
Mashed vegetables without Swarming (Waterfall)
In the first example, let’s call it waterfall, I have several people in my team and each person is in charge of preparing a type of vegetable, because they don’t want to have anything to do with their partner’s work. The first person, «Zucchini Chef«, begins to work with the zucchini.
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
The next person what he does is take the next vegetable «Pumpkin Chef«, because he thinks that the person responsible for the zucchini is Zucchini Chef. Right now we are processing two vegetables at the same time.
Potato Chef and Carrot Chef also enter in the process, each working on their vegetables. There are 5 minutes left for the time to expire, and things are not looking good at all.
The end result is that we have not been able to finish anything, and everything is in process. It is at this moment that the Master Chef asks them what the hell happened, and each one of them tries to save his ass:
«Pumpkin Chef says….you have given me the biggest vegetables»
«Potato Chef says…. Chef Carrot has taken my paring knife away from me and I haven’t been able to work.
«Carrot Chef says I started last and lost 10 minutes.
The result gentlemen is that everything is started but nothing finished.The only ones who are happy are my children who tell me that nothing is wrong, and ask me to make them some hot dogs 🙂
Do not bite off more than you can chew
Mashed vegetables with Swarming
In the second example, let’s call it Swarming, we do as much as we can in parallel, within each type of vegetable.
We don’t want a Zucchini Chef, or a Carrot Chef, we want everyone to be responsible for everything, and our team to improve over time.
The first person to start working would start processing the first zucchini, and the second person would help with the rest of the zucchinis.
We now have two people working on the zucchinis, so a third person could start on the pumpkins.
We have 5 minutes left to finish, and at least we are done processing the zucchinis for now. Now we help the person who is with the pumpkins to finish processing them.
The time has ended and we have managed to finish the zucchinis, pumpkins and potatoes. It is true that we have not finished processing the carrots, but we could still make the mashed.
Since my children did not like carrots, they thanked me because the mashed did not have carrots. Next time We will be more efficient.
We work as a team to finish as many things as possible.
How we bring it to the world of development
This example taken to the world of software would be that if we have a user story where the definition of done is to do analysis, development and testing, we could do all three tasks in parallel.
For example, the analyst would start the analysis, the developer would start making the user interface (Sprint planning info), and the tester would start developing the test cases. As the analyst progresses, he would talk to his developer buddy, and tell him, man, you can now do this part of the development… .. and so on until you finish the user story.
This process does not mean that some rework does not have to be done because the analyst could realize something at the last minute. The most important thing is that the whole team is involved in closing the user story as soon as possible (shared responsibility).