Imagine you are in a plane @ 10000 feet and you dive down into the world of Scrum. This blog will give you a high-level introduction to the topics, in this case, "Scrum"... let's go...
10000 feet ๐ช
What is Scrum?
Scrum is a framework to implement Agile methodology
It's based on the principle to be agile/modify project direction based on the progress. The entire project is broken down into multiple Iterations. Which is further divided into Sprints.
In 1995 Jeff Sutherland and Ken Schwaber defined Scrum. They did not explicitly define how to develop or test a product but provided a framework with
Roles
Events
Artifacts
Rules
9000 feet ๐ช
Scrum Team
The scrum team is made of three different roles.
1 Product Owner
Manages the product backlog. A product backlog is nothing but the list of use cases/user stories that are ordered based on priority. For example, in a Library Management system project, a product backlog might consist of
As an Admin user, I should be able to add a book to the system, so that the book will be available for rent
As a User, I should be able to see the list of available books so that I can decide which book to rent
As a User, I should be able to buy a book, so that I can avoid paying rent
2 Scrum Master
The Dumbledore of the Scrum team. Who is responsible for ensuring the team follows agile principles and values and follows the processes and practices that the team agreed they would use. Scrum master also clears any obstacles to the team also protects the team from outside intervention, ensures a good relationship between the team members.
3 Developers
Developers, QAs, Lead, Architect. "Developer" is a broader term that includes all these roles. These are self-managed, T-shaped individuals. Planning and estimating tasks with other developers to complete a story. They directly work with the Product Owner to define and break down tasks and how to implement them.
8000 Feet ๐ช
Scrum Events
There are 5 official scrum events. All events in Scrum are time-boxed. We will drop to each event in detail however, I would like to mention one more event which is not in the official guide but used usually in Scrum, it is known as Backlog Grooming or Backlog Refinement. Let's dive deeper
7500 feet ๐ช
Sprint
Spring is an Event on its own. It is a set of iterations made of four events.
Spring Planning
Daily Standup
Sprint Review
Sprint Retrospective
New Sprints starts as soon as a previous one is over. Spring has defined goals that cannot be modified. Even the quality of the goal should be not lowered.
It is not possible to cancel a Sprint unless its goal becomes obsolete.
Only the product owner has the power to cancel the Sprint.
7000 feet ๐ช
Sprint Planning
It is the first event in the Sprint. Members of the Scrum team gather together, also members who are not part of the scrum team can join like an Architect to discuss three main questions
Question 1: Why is this sprint important?
Usually, the PO explains to the team how this sprint will add value to the product
He/She explains what features would be added to the product and the impact on the end-users.
Question 2 : What can we do during this Sprint?
"Developers" decide how much work can they do during this sprint taking into account the availability of all the developers during this sprint. Based on past performance and availability an estimation of how much work can be done in this sprint is decided. "Developers" then select which user stories will be picked up for the sprint under the influence of the Product Owner.
Goal is the commit to the user stories to add value to the product
Question 3: How will the work be done?
Developers divide each User story into multiple tasks ranging from few hours to a day. They also estimate the user stories (hr/day). It's the "Developers" who decide how they would like to complete the User story, nothing is imposed.
6000 feet ๐ช
Daily Standup
Every day in the Sprint daily standup is an event that brings together all the developers. It is a short meeting which should not be more than 15 mins. Participants of the daily standup are the developers. The scrum master and the product owner participate as a developer if they themselves are working on a task.
Scrum master teaches the team not to exceed more than 15 mins and isolates the team from any disturbances.
Goal is to understand the progress of the team and adapt the plan if needed.
It helps the developers to help each other if needed and sync all of them together.
Each developer answers three questions
What did I do yesterday?
eg: I worked on reproducing a bug on the test env
What will I do today?
eg: I will refactor the code to fix the bug and more test cases to cover the bug.
What is blocking me?
eg: stage env is not available for testing
5000 feet ๐ช
Sprint Review
It's an event where the entire scrum team demonstrates the work done during the sprint to the stakeholders. Customers are invited to see the progress on the product, they contribute by giving their feedback and determining the future adaptation of the product.
Goal is to demonstrate the work, collect feedback and adapt to new changes if needed.
To demonstrate the work done during the sprint is "not" the only agenda of this meeting. It's an opportunity to collect feedback, have discussions with the customers, understanding their point of view, and then adapt. Read between the lines, sometimes the customers may not be able to explain their exact needs, it is the scrum team's responsibility to do a root cause analysis.
4000 feet ๐ช
Sprint Retrospective
The last event in the Sprint is the Sprint Retrospective. It is a time for the Scrum Team to inspect itself and create a plan for improvements to be enacted during the next Sprint.
Goal is to inspect and adapt the process, to improve the way of working.
In this meeting, the team reviews the Sprint that has just ended and discusses what went well, what could have been done better, and what changes can be made to improve in the next Sprint. The team should focus on improving the process rather than blaming individuals for problems.
3000 feet ๐ช
Backlog Refinement/Grooming
Backlog refinement, also known as grooming, is an ongoing process where the Product Owner and the Scrum Team review and revise the product backlog. This meeting can happen at any time and is not an official event in Scrum, but it is essential for the success of the project.
Goal is to add, remove or adjust the user stories, so that it becomes more transparent, ordered based on priority and helps the team to prepare better for the next sprint.
The Product Owner reviews the user stories in the backlog to ensure that they are still relevant and prioritizes them based on their value to the end-users. The Scrum Team discusses the user stories and provides input on how to break them down into smaller, more manageable tasks.
2000 feet ๐ช
Scrum Artifacts
There are three official artifacts in Scrum:
1 Product Backlog
A prioritized list of user stories that the Scrum Team will work on during the project.
2 Sprint Backlog
A list of user stories from the Product Backlog that the Scrum Team will work on during the Sprint.
3 Increment
The sum of all the completed user stories during the Sprint.
The Scrum Artifacts provide transparency and opportunities for inspection and adaptation. They help the Scrum Team and stakeholders understand the progress of the project and ensure that everyone is on the same page.
1000 feet ๐ช
Conclusion
Scrum is a popular framework for implementing Agile methodology in software development. It is based on the principles of being agile and modifying project direction based on progress. The framework consists of roles, events, artifacts, and rules that help the Scrum Team work together to deliver value to the end-users.
The Scrum Team consists of the Product Owner, Scrum Master, and Developers, who work together to create a plan for the Sprint. There are five official events in Scrum, including Sprint Planning, Daily Standup, Sprint Review, Sprint Retrospective, and Sprint.
Scrum Artifacts, including the Product Backlog, Sprint Backlog, and Increment, provide transparency and opportunities for inspection and adaptation, helping the Scrum Team and stakeholders understand the progress of the project and ensuring everyone is on the same page.
Overall, Scrum provides a flexible framework for software development that emphasizes collaboration, transparency, and adaptability. It is a powerful tool that can help teams deliver high-quality software that meets the needs of end-users.