Scrum framework allows implementing Agile development methodology. Unlike the waterfall model of software development, Scrum enables an iterative and incremental development process. The project divides into several phases, each of which results in a ready-to-use product. At the end of each step (called sprint in Scrum terminology), a usable product is delivered to a customer. Customer feedback helps reveal possible problems or change the initial development plan if needed. If you want your project to strictly follow the main principles of the Agile manifesto, you can use the Scrum model and be sure that you’re on the right path.
Here are the main roles involved in the development process, according to the Scrum model:
- The product owner takes care of the end user’s interests;
- The Scrum master coordinates the whole development process. Another task is to make sure that Scrum is used properly and to hold regular Scrum meetings;
- The Scrum team develops the product. Its main tasks are programming, analysis, testing, etc.
Now, let’s take a look at the main steps of the development process that Scrum consists of.
Phases of Scrum Model
Step 1. Product Backlog Creation
A product backlog is a list that contains features to be implemented during the development process. It’s ordered by priority and every item is called a User story. Every user story gets a unique ID. As a rule, user stories have the following format: As a [User Role], I want to [feature body] so that [User profit]. This list below shows how these stories can look like. These are actual product requirements that were implemented during the software developing process:
||As a manager, I want to have the possibility to add, delete and edit tasks to manage the employees’ workload so that I can improve control over the project
||As a manager, I want to have the ability to add new tasks and change the duration and starting date of the current ones using drag-and-drop so that I can estimate the overall project time
||As a manager, I want to assign two types of tasks to employees: part-time task and full-time task, so that I can better manage task prioritization
Besides these required fields, the optional ones can be added in case of need:
- The track is used to select all user stories of a certain type to change their priority. Can be used it to increase the priority of user stories that relate to the Control panel, for example;
- Components make up a list of components that will be changed during the work. An application’s modules, such as authentication or search, for example;
- The requestor is a customer who’s interested in implementing some particular functionality;
- Bug tracking ID contains a list of detected bugs that relate to a proper user story.
Step 2. Sprint Planning and Sprint Backlog Creation
Firstly, you should determine what your sprint’s duration will be. A short sprint allows you to release the working version of a product more frequently. As a result, customer’s feedback will be received more often, and all the possible bugs and errors will be revealed in time.
As an alternative, you can prefer a longer sprint duration. It will allow developers to work more thoroughly. The optimal sprint duration is defined as an average of these two options. As a rule, in a Scrum model, a sprint lasts about 2-4 weeks. What’s more important at this phase is the Sprint Goal. The goal is determined for each sprint. And in accordance with it the sprint is filled with user stories. Another important thing is the cooperation between stakeholders and team members. The product owner determines the importance of a proper user story, while the Scrum team defines the appropriate labor costs.
After that, the Scrum team can select the most important user stories from the product backlog. Then team members should decide how they will solve this or that task. Also, the team can divide particular user stories into the smallest ones and then turn them into the series of tasks. The Sprint backlog should be created next. It consists of user stories that will be completed during the current sprint. The amount of these stories depends on their capacity in story points assigned to each story during the evaluation stage. The Scrum team should be capable of finishing all these stories on time.
Step 3. Working on the Sprint. Daily Scrum Meetings
After actual user stories for the current phase are chosen, the development process begins.
To track the current working process, a task board is commonly used. There are usually big cards with the names of particular user stories and a bundle of little sticky notes with a description of single tasks which are needed for implementation of this or that story. Each particular board is developed according to the specifics of a project. Let’s take a look at a small example.
The cards can be arranged according to their importance. When work on a task has been started, the corresponding sticker is moved from the “To do” field to the “In progress” one. When work is completed, the sticker can be moved to the “Testing” field, and after the task is successfully tested, the sticker goes to the “Done” field. An example of how the Scrum task board can look like is shown below:
There is also a possibility to use specialized software for this task.
For example, Atlassian JIRA.
Another important Scrum feature is Daily Scrum meetings. These meetings’ main goal is to get full and veracious information about the current project status and make sure that all team members are on the same page. During Scrum meetings, every single team member should tell what he or she has done for the Sprint Goal, which task will be the next, and what problems team members faced during the work.
In addition, a burndown chart is another widely used tool that allows monitoring daily processes effectively. It shows you how many tasks remain uncompleted. This chart gives the ability to control the development process and can be updated after every meeting.
Day by day Scrum meetings help increase the flexibility of the development process. They also allow understanding of what changes should be made.
The X-axis represents the remaining days of work, while the Y-axis displays the overall amount of story points for the current stage. After a task that requires a certain number of story points to complete is over, you can add a point on the diagram to indicate the current progress.
JIRA allows you to create these charts as well:
This chart helps draw conclusions about the current speed of work. Depending on these conclusions, the number of user stories for the next sprint can be changed.
It’s important to note that, since the ideal result of every sprint in a Scrum model is a working product, the full life-cycle testing process is very important. There are different ways to minimize the costs of the testing period. For example, you can decrease the overall amount of user stories. As a result, the number of possible bugs will be minimized. The other way is to include QA engineers into the Scrum team.
Read Also Why QA Plays a Key Role in a High-Quality Software Product Development
Step 4. Product Increment and Sprint Review
The result of every sprint in Scrum is a potentially shippable product increment that can be demonstrated to the customer. After each iteration, the development team creates a new version of a software product with increased value. During the Sprint Review, which is the end part of every sprint, the overall results can be demonstrated and analyzed. On the basis of all this info, the stakeholders can take a decision about further project changes and plan the next sprint.
Step 5. Retrospective and Next Sprint Planning
Retrospective’s main aim is to discuss the results and determine the ways how to improve the development process on the next step. An important feature is that at this stage it is the processes of work and interaction that are discussed in order to improve the work of the Scrum team as a whole. The team should conclude what went well during the working process and what can be done better during future iteration. When the ways of improvement are defined, the team can concentrate on the next sprint planning.
The main distinctive features of Scrum are agility and continuous progress. It’s provided mostly by permanent communication and close cooperation between the stakeholders at each step. The Scrum approach implies a continuous iterative and incremental development process. The goal is to ensure the possibility to continually increase the product value and maintain flexibility in choosing priorities for further iterations.
When the sprint is finished, the customer can evaluate the working product functionality at the current iteration and make an informed decision about how the project should evolve during the next sprints.
Even though according to the Agile manifesto, you should prefer working software over comprehensive documentation, nothing prevents developers from the use of a Software Requirements Specification. SRS is good at saying what a system or product should do. Despite that SRS can miss some agile aspects of project development, such as collaboration, it can still be a good tool for planning and scheduling.