In order to understand what scrum is, it’s important to first understand the problem that it was created to solve. The traditional way of managing software projects, called “waterfall management”, was not working well. The waterfall model starts with a requirements phase, where the customer specifies what they want. This is followed by design, implementation, testing, and then deployment. In theory, this seems like a logical way to manage projects, but in practice, it often doesn’t work that way. Requirements change during the project (as they always do), and by the time you get to testing, it’s often too late to make changes without delaying the entire project. By the time you get to deployment, there are usually lots of bugs that need to be fixed. Scrum was created as an alternative to waterfall management. It’s an “agile” methodology, which means that it’s designed to be flexible and adaptable. Scrum is based on the principle of “iterative development”, which means that you break the project down into small pieces, and then work on each piece one at a time. Let’s take a look at the basics of scrum, and how it works.
The Scrum Framework
Scrum is a framework for managing software projects. It’s not a methodology, like waterfall or agile. In other words, it’s not a prescriptive set of rules that you have to follow. Instead, it’s a flexible framework that you can adapt to your own needs. The key concepts of scrum are:
The product owner
This is the person who represents the customer, and who decides what features should be implemented.
The development team
This is the team of engineers who will actually build the product. In scrum, the development team is self-organizing, which means that they decide how to best implement the features.
The scrum master
This is the person who ensures that the scrum process is followed, and who removes any obstacles that the development team faces.
A sprint is a time-boxed period of time (usually 2-4 weeks) during which a specific set of features must be implemented. At the end of each sprint, the product is demoed to the customer, and feedback is gathered. Most time boxed events in scrum are sprints. When we talk about a “feature”, we mean anything that adds value to the product. It could be a new feature, or it could be a bug fix.
What Does The Scrum Master Do?
The scrum master is responsible for ensuring that the scrum process is followed. This includes holding regular sprint planning, retrospectives, and daily stand-ups. The development team is self-organizing, which means that they decide how best to implement the features. However, the scrum master is responsible for removing any obstacles that they face. For example, if the development team is having trouble getting access to a certain piece of information, it’s the scrum master’s job to track down that information.
The Three Pillars Of Scrum
There are three pillars of scrum: transparency, inspection, and adaptation.
Transparency means that all aspects of the product development process must be open to scrutiny. This includes the product backlog, the sprint backlog, and the progress of the current sprint. All stakeholders should have access to this information so that they can see how the project is progressing.
Inspection means that the product development process must be regularly reviewed and inspected. This includes regular sprint planning, retrospectives, and daily stand-ups. These meetings provide opportunities to inspect the process and identify any areas of improvement.
Adaptation means that the product development process must be flexible and adaptable. This means that if something isn’t working, it can be changed. For example, if the development team is having trouble with a certain feature, they can remove it from the sprint backlog and replace it with something else.
The Scrum Process
The scrum process is divided into four main phases: sprint planning, sprint execution, sprint review, and sprint retrospective.
Sprint planning is the first phase of the scrum process. During sprint planning, the product owner and development team come up with a list of features that need to be implemented during the current sprint. This list is called the sprint backlog.
Sprint execution is the second phase of the scrum process. This is when the development team actually starts working on the features in the sprint backlog.
Sprint review is the third phase of the scrum process. This is when the development team demos the product to the customer and gets feedback.
Sprint retrospective is the fourth phase of the scrum process. This is when the development team and product owner meet to discuss what went well during the sprint and what could be improved.
Finally, the product owner decides which features will be implemented in the next sprint. This decision is based on feedback from the customer and the development team.
Scrum vs. Waterfall
The scrum process is different from the waterfall model of software development in several ways. First, scrum is an agile process, meaning that it is designed to be flexible and adaptable to change. This is in contrast to the waterfall model, which is a more traditional, linear approach to software development. Second, scrum emphasizes collaboration and teamwork. In scrum, all team members are equal partners who work together to complete the project. This is in contrast to the waterfall model, which often places a greater emphasis on individual achievement. Finally, scrum is an iterative process, meaning that work is completed in short cycles or sprints. This is in contrast to the waterfall model, which typically involves completing all phases of the project before moving on to the next phase.
In conclusion, scrum is a flexible, agile process that emphasizes collaboration and teamwork. It is well-suited for projects that are likely to experience changes during the development process. It can be used in conjunction with the waterfall model, or it can be used as a standalone process. With its focus on transparency, inspection, and adaptation, scrum can help teams to deliver high-quality products in a timely and efficient manner. And, because scrum is an iterative process, it can provide opportunities for continuous improvement throughout the project.