The custom software development process is a delicate balancing act between quality and efficiency. While we believe quality should never suffer at the expense of expediency, many of our clients have urgent, immediate software needs that dictate getting things done fast. Since the primary goal of agile software development is to deliver working software fast and frequently, a technique called “swarming” is used to complete the work more efficiently.
Swarming in Practice
Swarming is simply embracing the idea that more gets done when more people work on a problem. It’s a practical approach to teamwork that is slowly making its way into every aspect of an organization’s operations.
From sports to birds and bees, the concept of swarming has always been used to achieve a common goal. Look, for example, at the Amish barn-raising tradition. If every farmer decided to build their barn independently or with one or two friends, it would take weeks to months to complete. On the other hand, a well-organized barn-raising brings the entire community together, and by nightfall, the barn is entirely built. Along with safe shelter for livestock, the collaborative process has always allowed communities to grow more quickly and prosper.
In software development, swarming works the same way. A couple of months ago, we published a post where we talked about the Pareto, or 80/20 principle, as it applied to getting software features working as quickly as possible. The same idea applies here: it’s better to have 80% of a product’s features 100% done than to have 100% of the features 80% completed. The aim is to get more stories fully completed.
Swarming, then, is simply the act of the whole development team coming together to solve a problem or get something done quickly. More importantly, the team is focusing on getting work done that is valued by the business.
Instant Productivity Boost
We’ve talked before about how user stories are a terrific tool for keeping teams focused on the end-user. Most technologists, though, prefer to avoid putting too many people on any given topic. They believe it makes the process more tricky and complicated, with everyone stepping on everyone else’s toes. But while too many cooks in the kitchen might indeed spoil the soup, in a practical agile process, things are made better, not worse, by getting everyone involved.
When using a swarm mentality with user stories, you identify the highest priority unit of work and put as many people as you can on that topic to get it done fast. Instead of having one or two developers working on multiple separate stories, swarming brings all the developers to work (swarm) on a single story.
To get the most out of swarming, teams must:
- Ensure they agree on what the top priority item in their backlog is.
- Pull in anyone and everyone conceivably available and able to add value by working on that priority item.
- Get to work quickly in a truly simultaneous way on that item.
Once one priority item is 100% complete, the team can then swarm onto the next item until it’s completed, and so on.
Swarming can seem counterintuitive. After all, wouldn’t more work get done if everyone were working on different items at the same time? Yet, swarming has proven to increase a team’s velocity while avoiding the bottleneck that so frequently occurs at the end of a sprint, where everything must be tested at once. It also improves what’s known as process efficiency, or having the lowest amount of waste, aka any activity that doesn’t add value to the product, in the development process.
Speed Up Your Software Development Process
Swarming is a true secret weapon in the agile development process and in more ways than we’ve talked about above. Swarming also helps individual team members learn from other more experienced devs and improve their skill sets. This isn’t the primary focus of swarming, of course. Still, it’s a nice benefit that helps our clients get the highest level of expertise available.
Many companies come to us wanting to “swarm.” They might not know that’s the word for what they’re looking for, but the bottom line is they want their software development problems solved really quickly. And if putting ten or more devs on a topic gets them the super speedy solution they’re after, it’s often worth the extra financial investment involved.
If you have an urgent software development project that you need completed sooner rather than later, swarming may be just the ticket to speeding up the process without compromising the product quality. Talk to us today to learn more about how Zibtek can help swarm your project and get it done.