Scrum is a framework which describes an agile approach on how to manage a project. It gives recommendations to teams on how to manage their work to achieve high team performance and support each other in the process.
Scrum is easy to learn but hard to master. It is like a hammer, it’s a tool. The people using this tool must have the skills to use it appropriately. In this series, I will tell you everything you need to know about Scrum.
If you have never heard about Scrum, you might wonder why use it? Because you will be able to ship working, high-quality software. If you don’t believe me look at the comparison in success rates between waterfall and agile projects.
The graphic shows you that only 9% of agile projects failed, compared to 29% failed projects which used a waterfall approach.
When using waterfall, a product gets shipped once at the end of the cycle which can be after years of development. This means that it might take years until the team gets feedback from the customer. Scrum does a little bit of every activity of the SDLC and delivers working software in short circles. This enables an organization to ship the most important features first and give the customer a working product early on. Another advantage of short shipping circles is that the customer can give feedback which the team can implement in the next iteration. Without this feedback, the developer might build something completely different from what the customer expects.
The following picture is often used to describe project management. I really like it because it also shows the difference between what the customer explains and what the customer actually wants. With an agile approach, the development team would get early feedback and therefore would not develop so far in the wrong direction.
The more uncertain you are about how and what you build, the more complicated and chaotic your process becomes. Scrum is appropriate when the project is somewhere between complicated and chaotic. With Scrum, you don’t care too much about what or how you build something at the beginning of the project. You should not use it when the project is simple. It would be an overkill.