On 03/01/2011 9:25 PM, agilejedi wrote:
> It is overcomplicated, but really it is ill defined. Swarming was
> introduced to me as an approach that is superior and shows maturity
> and that everyone works on one story until it is done. Sounded wrong
> to me. Like there was no association of the activity to a goal of
> delivering. Just showing off how well we can work together. Who are we
> showing off to? I don't know.
Some somewhat random thoughts...
Swarming, like pair programming, is something that I've done many times
over my career long before I knew it had a name - when you have a tough
problem, throw a bunch of brains at it. I just didn't necessarily do it
all the time.
When I'm coaching teams, I don't immediately introduce swarming until I
see there's a need for it. Sometimes a team is able to simply switch
from a traditional model to an iterative, incremental model with no
problem. More often, though, teams are used to starting all sorts of
work simultaneously and trying to push it all along in parallel. Humans
provably suck at multitasking, which manifests itself in a traditional
process as "75% of the features are 80% done". Well, when it comes time
to actually ship something, having 80% of the features 100% complete is
much more valuable than 100% of the features 80% complete.
The real model behind swarming is getting the team to focus on getting
work that is valued by the business DONE. Get one thing 100% done, i.e.
potentially shippable, before moving on to the next thing. The
traditional model shows activity, this model shows progress.
Depending on the makeup of the team, you may be able to work on more
than one item at a time. My rule of thumb is that the team should work
on no more stories simultaneously than the number of QA people on the
team. If that sounds inefficient, just watch the task board during a
sprint and you should see many tasks pile up as the end of the sprint
approaches. The poor QA person or people have to bust their behinds to
get everything tested before the sprint is over. How do you deal with
this? You have everyone on the team contribute to verifying that every
piece of work is shippable. In other words, the teams swarms the work.