You’ve probably searched Google for ‘agile vs. scrum’ because you’ve heard both terms and want to find out more. Maybe you heard about agile or scrum at work and decided to indulge your curiosity. Perhaps you knew about one of the two already but aren’t sure how they relate to each other. Luckily, this short article aims to answer your questions.
It isn’t Agile vs. Scrum
Firstly, in the context of agile and scrum, using vs. or versus doesn’t make a lot of sense. Versus means ‘against’, and Agile isn’t against Scrum. But, of course, this isn’t meant in a literal sense within the context of an internet search. The point of ‘versus’ is to compare the two. However, this is somewhat of a challenge, because the two terms don’t relate to each other one to one. You can’t compare Agile and Scrum one on one, because Agile is a high-level term that encompasses several different things. One of those things is Scrum.
So what is Agile?
Before we get into too much detail too quickly, let’s examine Agile in a bit more detail to get a clear overview. There are three interrelated Agile elements to take into account here.
- Agile as a word.
- Agile in terms of the Agile Manifesto.
- Agile in terms of Agile software development.
What is the definition of the word agile, and why does it matter?
First of all, the definition of agile. Agile with a lowercase a, that is. An agile person can’ move quickly and easily’. That seems simple enough.
What is the Agile Manifesto?
Secondly, Agile in relation to the Agile Manifesto. The meaning of the word Agile (‘move quickly and easily’) is why this term was applied to a new way approach to software development. In 2001, seventeen people with a wealth of experience in software development gathered at the Snowbird ski resort in Utah. During their time at the resort, one of the things they discussed was the different approaches to software development that had been popping up in the past decade.
After the personal computer appeared in the 1970s, changes in the software development domain had been gathering pace due to an increase in demand for software. Sky-high demand for new software meant the more traditional way of working (for example, long projects based on the waterfall method) did not let software development teams move quickly enough. In response, during the 1990s, industry leaders began developing innovative new approaches to software development lifecycle management. These new approaches focused on being able to adapt quickly to changing requirements and technologies.
The result of the gathering at Snowbird was the Agile Manifesto for Software Development. The reason that this group chose ‘Agile’ in relation to software development is that the existing frameworks were considered to be heavyweight and document-driven. They limited the ability of software development teams to respond quickly to the fast-paced changes happening around them. The desire was to create a lighter, more flexible alternative so that projects could, in fact, progress ‘more quickly and easily’.
And lastly, Agile in terms of software development. The authors of the Agile Manifesto gave a name to what was already happening in the software development community. Since then, a vast number of Agile frameworks based on the principles and values that underpin the Agile Manifesto have appeared.
What’s the difference between Agile and Agile Software Development?
The term Agile is the key to the Agile Manifesto. The manifesto itself is based on twelve principles and four core values. The values below sum up the most important aspects when working in an Agile way:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
However, the Agile Manifesto itself doesn’t offer a way to apply these values to daily working life in a software development team. This is where frameworks come in.
What are Agile frameworks?
Agile frameworks help software development teams organize how they work on projects in a way that optimizes productivity and teamwork. The purpose of a framework is to give an underlying structure to what is being done. In the case of Agile frameworks, they all at least have the following in common:
- Fixed iteration length.
- Iterative development.
- Continuous feedback.
The intention is to empower software development teams to create software in small increments, which they test for quality with each increment. This testing process ensures that the final product has quality ‘built into it’.
The Agile Methodology Umbrella
At the time of writing, there are approximately 50 frameworks that fall under the Agile umbrella. There is a wide variety of frameworks that software development teams can choose to work with. Some are ideal for smaller teams, while others help meet the challenges of working in an Agile way in large organizations. Each type of framework has its advantages and disadvantages.
As you might have noticed, Scrum falls under this umbrella as well. It was about time Scrum was mentioned.
Yes, enough about Agile, what about Scrum?
Now we get to the critical part. Scrum is an Agile methodology. Scrum is also the most used Agile framework around the world today. Perhaps surprisingly, its origins can be traced back to 1986, long before the Agile Manifesto was published. The term ‘scrum’ was originally only used in rugby until two Japanese business experts, Hirotaka Takeuchi and Ikujiro Nonaka, used the word in an article called ‘New New Product Development Game’). They used it to emphasize the importance of team collaboration for project success, and, as a result, the software development world adopted the term ‘scrum’.
The Scrum Framework
It wasn’t until 1995 that Jeff Sutherland and Ken Schwaber (two Agile Manifesto authors) came up with the process that is now known as Scrum. The Scrum framework aims to optimize team collaboration for complex software projects. After it first appeared, it took another fifteen years before Sutherland and Schwaber published the first Scrum Guide. Since then, Scrum has climbed in popularity around the world. So much so, that often when people talk about Agile, they actually mean the Scrum framework.
Scrum in a Nutshell
There are some elements which are essential to successfully performing Scrum. The most important ones are:
A Scrum Team consists of a Product Owner, Scrum Master, and Development Team. There is a single Product Owner and a single Scrum Master who interact with a team of between three and nine developers. The Scrum Master acts as a servant leader to enable the Development Team to perform at their best through coaching, clearing obstacles, and promoting Scrum. In contrast, the Product Owner acts as a voice for the customer by communicating with the business and end-users. They are also responsible for the Product Backlog.
There are four crucial ceremonies or events that take place during each sprint. They are Sprint Planning, Daily Scrum, Sprint Review, and the Sprint Retrospective. A sprint is a time-boxed event, on average between two and four weeks long, during which the Development Team works on the next increment of the product. Increments consist of several user stories from the Product Backlog.
The Scrum ceremonies are utilized in combination with Scrum artifacts. There are three primary artifacts in Scrum – the Product Backlog, the Sprint Backlog, and the Product Increment. Each of these artifacts plays a specific role for the Scrum Team. The Product Backlog shows all the features that need to be worked on during the project. The Sprint Backlog shows which of these features will be worked on in the current sprint. And lastly, the Product Increment shows what has been completed during the project so far.
The Scrum framework provides guide rails for the Scrum Team to keep on track during a sprint. By performing the Scrum ceremonies and using the artifacts, the Team can work in a very structured way.
Agile is to Scrum as Teacher is to Student.
In conclusion, Scrum is one of many Agile frameworks created in response to a demand for more flexible and responsive software development methods. Although it didn’t have a name at first, Agile came into being because software development teams needed to be able to work in a more responsive way to meet changing requirements and customer unpredictability. In this respect, the Agile principles, although only officially defined in 2001, gave rise to the Scrum framework in 1995. In the same way that a teacher stands before the class to impart knowledge, Agile stood before the developers who created the Scrum framework and gave them the knowledge they needed to create it.