Project management is hard. Even if you arm yourself with the best team and the best resources, unexpected issues may arise creating delays or other bottlenecks. In fact, according to a 2021 report, the role of project managers is so stressful that 37% of them have considered leaving their jobs. The good news is that, over the decades, the industry has developed frameworks to consistently deliver projects without exceeding the resources or missing the deadlines.
Let's talk about SCRUM, a popular project management framework, and swarming, a technique used to solve a complex problem.
What is scrum?
Scrum (sometimes referred to as SCRUM, but it's not really an acronym) is a popular framework commonly used in software development to create, deliver, and sustain complex projects efficiently. Its name is derived from rugby, where team members come together to solve a problem. It was first mentioned in Harvard Business Review in 1986.
The framework was further developed by Ken Schwaber and Jeff Sutherland who had used it in their own respective firms and later worked together to test and improve it. The framework started gaining popularity and worldwide use around 2002.
What are the key ideas of scrum?
Scrum accepts and embraces the fact that what’s defined initially as the scope of the project -- for example, how the client wants a particular feature in the software to work like -- may change over the course of development. It also accepts the unpredictable challenges that may occur during software development -- let's say, for instance a version update to the development framework that may necessitate reworking some code -- and emphasizes taking them in stride and adapting to the environment.
There’s also a huge emphasis on teamwork and constant communication. The team is encouraged to identify and understand each other’s strengths and learn and get help from each other. This way, teams can avoud the most common project management mistakes.
Scrum also encourages empirical decision making, constantly assessing the progress, the evolving market, and product scope, and adapting to deliver maximum value using the available resources.
How does scrum work?
Scrum is usually used for development teams of around 4 to 10 people, who may or may not be part of other projects and teams. There are usually 3 roles for the team members; developers, a single product owner, and a single scrum master.
The product owner acts as the bridge between the client and the team, acts as their representative as well as the voice of the end-user. They define the product, the different requirements, the user stories, and how the end-product should behave like.
The developers are responsible for implementing the product as defined by the product owner. The team may have senior and junior developers, a technical advisor, as well as designers.
The role of "Scrum-master" is responsible for implementing the scrum framework, guiding the team, and assisting the product owner to follow the principles of scrum.
Scrum organizes projects into sprints, which typically last for 2 weeks. Before the sprint begins there’s a meeting for planning what will be achieved during the period, and after the sprint, there will be a sprint review. This will be followed by the next sprint planning and so on. As part of the sprint, there will be daily meetings of 15 minutes or so during which team members update everyone about what they achieved so far and any difficulties they’re facing.
What is swarming?
Usually, in Scrum everyone works on their own, each team member working on a function or a feature. Sometimes some tickets may require more than one person; for example, a designer and a developer may need to work on the home page of a website. But even in this situation, the designer hands over the design, and then the developer works on it. Swarming is a Scrum technique in which usually every one, but at least two people in the team work together at the same time to solve a problem.
What are the key concepts of swarming?
Swarming is usually used to solve a difficult problem, one which cannot be solved by an individual developer. In Scrum swarming every member of the Scrum team focus their attention and brings their strengths and expertise and finds an elegant solution in the shortest time possible on a single issue that is either likely to cause problems with the product or that blocks other work.
An individual developer may try out different methods and may finally come to a solution, but with more people on it they can quickly rule out from experience what won’t work.
While swarming may appear to be necessary or even contribute to better productivity only during a crisis, it’s should not be limited to a high-stakes situation alone. The goal of swarming in scrum is to build a better team, for everyone to understand each other and their skills, and to improve overall communication. Even there’s no emergency, it's best to swarm frequently to build a better team, but also to prepare to swarm in an emergency.
The term may remind you of bees; and in a developer situation, a group of people huddled around a computer screen discussing and trying out different options. While this definitely comes under swarming, it could be just two or three people working remotely and working together on a problem. Perhaps it could be a designer and a developer working together to fix a responsive view issue, or a couple of developers on a group call sharing their screens. It could be anything in between pair programming and mob programming.
A common problem often faced in sprints is that at the end of the sprints all functions or requirements are half done, but none of them are fully done or ready to launch. Swarming can ensure at least the major requirements are completed even if some are yet to be touched.
According to Jeff Sutherland, one of the pioneers of Scrum:
“One day of work took 10 calendar days of the process. Efficiency is 10%. (...) If you put three people on that story, and they all worked on it together and they got it done in one day? Then that process efficiency is driven to over 100% and that automatically drives an increase in velocity.”
How can swarming and scrum work together?
While Scrum sprints and standups can get the most of the work done, swarming can move priority tasks on the fast lane. It pushes everyone to contribute to a single problem and ensures that the time spent translates to tangible results.
As we discussed earlier, it's best to not keep swarming for emergency or crisis situations alone. Scrum masters can try different groups or pairings to see which all team members best work together and produces results efficiently. While swarming usually means getting as many available people as possible to work together, it may be a good idea to figure out the ideal number of people who can solve a problem.
For good team-building, it's important that everyone contributes during swarming. Particularly for difficult problems, no single solution can be guaranteed to work or not work. Therefore open communication is key.
To use swarming outside of crisis events, you can use set aside some problems for swarming. For example, refactoring the code for some systems or reducing the technical debt on projects. Instead of working on different aspects of these problems, team members must discuss together the best strategy to solve them, come up with the most effective solution, and communicate constantly while implementing them.
You can try swarming for updating the systems with security patches, updating the knowledge base, or onboarding new employees (though this can be accomplished with automated employee onboarding, but that's beside the point). Practicing swarming for security patches may help you use the technique for quickly rolling out when a major vulnerability is discovered and has to be patched quickly.
Swarming works because it pushes people to be at their peak productivity; the team requires constant inputs from everyone, and this makes the team members bring their best selves for swarming. And it keeps the developers in their flow state, fully immersed in the problem at hand and least distracted. According to Scrum Inc, you can expect up to 200% increase in productivity during swarming.
The resulting work also tends to be good, since it's often the best solution utilizing the expertise and experience of the entire team. And the entire work gets reviewed in real-time too, requiring less refactoring or reworks later.
How to apply swarming and scrum techniques in your organization
While scrum was originally intended for software development, it’s an efficient project management tool for many different applications and enterprises. These tools can help you deliver results to client and end-user satisfaction, particularly in a rapidly changing environment.
For example, in the case of a marketing agency, the scope of the work may be well defined, but due to market pressures or sudden events, this scope may change. Maybe there’s a new trend on social media, and you need to pull together a quick campaign before it fades off, or maybe the client faces a sudden reputation crisis and the agency is tasked with resolving it before it gets out of hand. In this situation, an agile team will be able to quickly prioritize the requirements and find an effective solution with swarming.
With swarming, employees in an organization or team acquire more skills and learn to make use of each other’s expertise to solve problems and best do their tasks. Scrum and swarming can help organizations even outside software and IT make their workforce more efficient and productive.
Frequently asked questions
What is scrum?
Scrum is a framework used to build and deliver complex and evolving projects within the resources and to client and end-user satisfaction. It’s often used by software development firms to manage projects where the scope may evolve with time or there may be unexpected issues during the project. It can also be used outside IT and software development for project management in rapidly changing environments.
What does scrum stand for?
Scrum is not an acronym. Though you may find several post-hoc acronyms on the Internet, these are not the intended meaning. The term "scrum" in software development was coined by Hirotaka Takeuchi and Ikujiro Nonaka in their 1986 paper “The New New Product Development Game“. The name was taken from the game of rugby to stress the importance of teams in complex product development. This was about complex product development in general, not only software products. The agile development method inherited its name ‘Scrum’ from this paper as it thrives on the same principles for developing and sustaining complex software products.
What does swarming mean in Agile?
Swarming is a scrum technique used to solve problems quickly by getting everyone available on the team to work on just one problem. It’s often used to solve difficult problems or resolve crisis situation most efficiently and effectively. But it can also be used to improve the productivity of a team and finish priority requirements quickly.