Scrum
This article explains “Scrum” (one of the best agile software development practices in use today) with all the possible screenshots for better/quick understanding.
Figure 1
This article explains why “Scrum” is important in developing software and I also cover all the core parts of Scrum, like Product backlogs, Release backlogs, Team roles, Sprints, Burndown Charts and more.
Let us assume we want to develop a product.
Figure 2
For developing this product, we need to get many kinds of features requests from:
- Customers
- Executives
- Or even other team members
Features: In Scrum features are written from the perspective of the end user (client/customer), therefore features are known as “User Stories”.
Figure 3Product Backlog: The collection of all these user stories are known as a product backlog.
Figure 4Another term we can use for this product backlog is “Wish List”.
Figure 5After preparing our Wish List/Product Backlog we need to think of all the user stories that would make our product great.
Figure 6And we should select some specific user stories to be put into a release backlog.
Figure 7
Release BacklogThis release backlog contains only identified user stories.
Figure 8To build our product, we need to have a few people who're going to play a variety of roles. Let us see them.
Product OwnerThe product owner helps ensure the right features make it into the product backlog representing the user/customer.
Figure 9
Scrum Master
Figure 10
The job of this Scrum Master is to ensure the project is progressing smoothly and setting up meetings team members.
Figure 11And also monitors the work being done and facilitates the release planning.
Figure 12Developers: These guys build the product.
Figure 13Testers: These guys test the product to ensure the product is working accordingly.
Figure 14Customers: And these guys use the product and pay for it.
Figure 15
Executives: Without these guys, we can't build the product.
Figure 16
Release PlanningFigure 17To plan a release, the team starts with a “Product Backlog” then they identify the user stories they want to put into the “Release backlog”.
Figure 18The team then prioritizes the user stories and estimates the amount of work involved for each item.
Figure 19 Prioritized user stories
Figure 20 Estimating the time for each user storySometimes larger user stories (see the preceding figure) are broken down into smaller, more manageable chunks.
Figure 21
Figure 22The collection of all the estimates provide a rough idea of the total amount of work involved to complete the entire release (for example it is 9 days in the preceding product release).
Creating Good EstimatesThere are many techniques for creating good estimates.
Estimate in hours (less than 1 day):
- For example things take less than 1 day to complete and will be estimated in:
1Hr 2Hr 4Hr 8Hr
Figure 23Every item will fall into one of these buckets. If the estimated time is “3Hr” It would fall into a “4Hr” bucket.
- Larger items will be estimated in:
2Days 3Days 5Days 10Days
- Extremely large items are estimated in months:
1Month 2Months 3Months 6Months
But in the reality, these large items will be broken down before the work actually begins.
Figure 24
SprintsNow with the prioritized user stories and estimates of the amount of work at hand (see the release backlog in Figure 22) we are now ready to plan out several sprints to get the work done.
Sprints are short duration milestones that allow teams to tackle a manageable chunk of the project and get it to a ship-ready state. We split it out the release backlog into several sprint backlogs as shown below.
Figure 25Sprints generally range from a couple of days to as much as 30 days in length depending on the product release life cycles. The shorter the release life cycles, the shorter each sprint should be.
Figure 26One of the most important things to remember about sprints is the goal of the each sprint is to get a subset of a release backlog to a ship-ready state.
Figure 27So at the end of the each sprint we should have a fully tested product with all the features of the sprint with 100% ship-ready state.
Figure 28It's extremely important to monitor the progress of each sprint. We can do this using a Burndown Chart.
Burndown ChartFigure 29A Burndown Chart is the main reason for Scrum's popularity. It is one of the best project visibility tools to ensure a project is progressing smoothly. It provides the day by day measure of the amount of work that remains in a given sprint.
Figure 30Daily Scrum: The daily scrum is an essential tool to providing the communication flow freely among the team. This is a stand-up meeting where the team members:
- List the work they have done
- Identify obstacles
- Determine the work they're going to do
This daily scrum ensures the team is always in sync.
Sprint Retrospective:Finally as each sprint ends it's important to have a sprint retrospective meeting where the team can reflect on what went wrong. What went right? How can we improve the next time around?
That's all about Scrum. I hope I covered all the steps involved in scrum. If you find any mistakes/errors in this article then please specify in the comments section below. Thank You.
Reference: Hamid Shojaee (@hamids)