Beyond pair programming and buddy programming, there are a few other configurations for working together that are worth not just mentioning but trying.
Spiking is when two or more developers focus on a single task together, usually working for a predefined length of time to resolve some kind of unknown. Spiking is a very powerful tool in that area. We have this unknown, and we have to figure out what we’re going to do for it, so we “take a spike” and we do some research. It’s like forming a committee to study a short-term problem, and once that problem is solved, the committee is disbanded.
Swarming is when the whole team, or small groups of more than two developers each, work together on the same problem, but they’re all working simultaneously. This is an especially good approach for solving “showstopper” problems. If the whole team is blocked on something, have the whole team go to work on it. This can be very, very powerful.
Mobbing[40] is a concept brought to life by Woody Zuill and his team. This is when the whole team normally works together on a single story, like a swarm of ants working together to break down a piece of food.
Though this may seem like a highly inefficient way to work, it turns out to be surprisingly efficient for specific kinds of projects.
The team was taking on a complicated project, so when they gathered in a meeting to look at what they needed to work on, they found they were very productive together. At the end of that day they decided to try it again the next day, and they haven’t stopped since.
The whole team works like this all the time now. They have their offices set up like a conference room with two projectors. They take turns so only one person is at the keyboard and the rest of the team—five to seven people—are the navigators.
You can go to their website to watch a time-lapse video[41] of a day of mob programming condensed down into five minutes.
Watch the video and you’ll see everyone working on the project the whole time and it’s exciting to see. It brings the idea of collaboration to a whole new level. Some teams find mobbing particularly useful when getting up to speed on new technologies.