Scrum - Agile project management in software development
Table of contents
- Agile project management
- Scrum
- Roles
- Artefacts
- Procedure
- Conclusion
1. Agile project managment
Web development projects are often complex and require good project management. Unfortunately, the course of a larger project can often not be predicted accurately due to changing requirements or unexpected complications. Therefore, agile methods are used more and more often, as they make it easier to react to short-term changes and to adapt the project planning.
One of the best known process models for agile project management is Scrum. How Scrum is used exactly and which roles and processes there are, will be discussed in more detail in this blog article.
2. Scrum
Scrum is a framework for managing more complex projects and was first presented in 1996 at the OOPSALA conference by Ken Schwaber and Jeff Sutherland. Meanwhile it is widely used by countless tech companies for software project management. It provides a simple process model for product development and is based on the principles of agile software development. Scrum relies heavily on the self-organization of team members, a project manager with extensive authority in the classic sense does not exist in Scrum.
Scrum is based on three principles - transparency, review and adaptation. This means that all progress and obstacles are recorded daily and visible to everyone, so that all project members are informed about the current status. Functionalities are delivered and evaluated in defined intervals, so-called releases). After each release the requirements are re-evaluated and, if necessary, adjusted.
In Scrum the project duration is divided into sprints. A sprint can last between 1 and 4 weeks. During this time new functionality is added to the product or existing functionality is improved. It is important that a sprint never lasts longer than planned in advance. However, if the requirements change during a sprint, it can be cancelled. At the end of each sprint, a fully functional intermediate product should be available for review by the client. Based on his feedback, the work on the product can continue.
The following graphic shows the entire process.
3. Roles
There are six different roles in Scrum. On the one hand there are the internal roles, namely team, product owner and Scrum master and on the other hand the external roles, such as manager, customer and user. The external roles are mainly those people with a special interest in the outcome of the process. The development adapts to their specific requirements by obtaining regular feedback. The tasks and duties of the internal roles are now explained in more detail.
1. Scrum master
The Scrum master is responsible for the success and productivity of the team. Therefore, he is no part of the development team. The tasks of the Scrum master are mainly to make sure that all rules and principles of Scrum are followed and that optimal working conditions for the team are given. So he manages the Scrum process, prepares and leads meetings and removes all obstacles that arise. However, the Scrum master is no product manager, because the team makes decisions independently and the Scrum master only decides in "endless discussions".
2. Product owner
In contrast to the Scrum master, the product owner is responsible for the result and should therefore drive the development together with the customer. The product owner is the interface to the customer and the visionary of the product. The main tasks include the creation and sequencing of the so-called product backlog. The product backlog is a list of requirements which is constantly being developed and whose entries are ordered and prioritized. The product owner's tasks also include an estimate of the effort required, such as planning poker which is carried out jointly by the team, and the decision on the importance, i.e. prioritization, of individual user stories. The product owner is responsible for the time, functionality and costs of the product.
3. Team
The task of the team is the development of the software, for this purpose the product backlog is processed in the sprint. A team in the Scrum process consists of 5-9 people, depending on the total size of the project, who work in different areas such as development, testing or design. It is important that there are no strict hierarchies and that the team works independently and self-organized. This means that the goals set for the sprint must be achieved, but the team can also call in external consultants. The Scrum master is available as a team coach.
4. Artefacts
Artefacts are the results of activities in the software development process and serve as orientation in the process. In Scrum there are 3 artefacts in total - the product backlog, the sprint backlog and the product increment.
1. Product backlog
As already described, the product backlog, divided into individual entries, contains all requirements for the project. It is important to note that the product backlog is a priority list, which means that each entry is ranked according to its usefulness for the final product and that care is taken to ensure that there is clear prioritization and thus no requirements of equal importance. As mentioned above, the product owner is responsible for the order and prioritization of the entries.
2. Sprint backlog
From the entire product backlog, a selection of requirements is made that are to be processed within a sprint. These are recorded in the sprint backlog. The sprint backlog contains the tasks that are to be completed in each sprint in order to develop a functional intermediate product.
3. Product increment
The product increment is the result of all entries of the product backlog completed in a sprint and the results from previous sprints. So the product increment represents an interim result of the whole project.
5. Procedure
Now that all roles and artefacts of the Scrum process are known, the exact procedure is explained in more detail. Scrum consists of five activities - sprint planning, daily Scrum, sprint review, sprint retrospective and product backlog refinement.
1. Sprint planning
In Sprint planning, the next sprint is planned by determining those requirements from the product backlog that are to be implemented by the team in the next sprint. The requirements are broken down into concrete tasks. It is important to specify uniformly what must be done to ensure that a task is considered to have been successfully implemented. It is important that a common understanding of the requirements is achieved. The requirements defined in sprint planning are recorded in the sprint backlog.
2. Daily Scrum
During the sprint there is a meeting every morning for about quarter of an hour - the daily Scrum. During this meeting all team members, usually also Scrum master and product owner, meet to discuss the current status of the sprint. Each team member explains what has been implemented since the last daily Scrum, what problems or obstacles have arisen and what tasks are due for the next meeting. However, the daily Scrum is not intended to solve a possible problem, but only to exchange information. Questions or problems that cannot be clarified during the daily Scrum are given to the Scrum master for clarification, or are clarified in a separate meeting.
3. Sprint review
At the end of each sprint, the team presents the results of the current sprint in a review and the product owner checks whether all requirements of the individual product backlog entries edited in this sprint have been fulfilled. In addition, feedback is obtained from interested stakeholders and, if necessary, the requirements in the product backlog are adjusted. This makes it easy to see whether the implemented functionalities fulfill the needs of the target group or whether not. So the project team can react quickly to changes in requirements.
4. Sprint retrospective
This is about the team meeting at the end of a sprint and reflecting together with the Scrum master what worked well in this sprint and which points still need improvement. So it is not about checking the product improvement but about the work done in the team during the sprint. The goal is to continuously improve the cooperation.
5. Product backlog refinement
Since the requirements for a project can change continuously, it is important to keep the product backlog always up to date. To do this, the product owner should always review the existing backlog at the beginning and the end of a sprint and update, develop and refine if necessary.
6. Conclusion
Scrum is designed as an agile method to react quickly to changing situations. In addition, after each sprint, new software requirements are met and the customer receives an increasingly executable product. This is to avoid that the customer only gets a product that can actually be used by the users at the end. The prioritization of requirements according to business value also ensures that the customer can use its most important functions at an early stage.
However, in order for Scrum to function as a project method, certain requirements must be met. On the one hand, the company must maintain a positive error culture and have enough trust in the employees that they can work independently and self-organized. On the other hand the team itself must have a certain amount of independence and be able to find its own solutions. If these requirements are met, Scrum is a good framework to react quickly to changes in the fast moving software sector and to maintain a good climate between client and user.
3. Team
The task of the team is the development of the software, for this purpose the product backlog is processed in the sprint. A team in the Scrum process consists of 5-9 people, depending on the total size of the project, who work in different areas such as development, testing or design. It is important that there are no strict hierarchies and that the team works independently and self-organized. This means that the goals set for the sprint must be achieved, but the team can also call in external consultants. The Scrum master is available as a team coach.
4. Artefacts
Artefacts are the results of activities in the software development process and serve as orientation in the process. In Scrum there are 3 artefacts in total - the product backlog, the sprint backlog and the product increment.
1. Product backlog
As already described, the product backlog, divided into individual entries, contains all requirements for the project. It is important to note that the product backlog is a priority list, which means that each entry is ranked according to its usefulness for the final product and that care is taken to ensure that there is clear prioritization and thus no requirements of equal importance. As mentioned above, the product owner is responsible for the order and prioritization of the entries.
2. Sprint backlog
From the entire product backlog, a selection of requirements is made that are to be processed within a sprint. These are recorded in the sprint backlog. The sprint backlog contains the tasks that are to be completed in each sprint in order to develop a functional intermediate product.
3. Product increment
The product increment is the result of all entries of the product backlog completed in a sprint and the results from previous sprints. So the product increment represents an interim result of the whole project.
5. Procedure
Now that all roles and artefacts of the Scrum process are known, the exact procedure is explained in more detail. Scrum consists of five activities - sprint planning, daily Scrum, sprint review, sprint retrospective and product backlog refinement.
1. Sprint planning
In Sprint planning, the next sprint is planned by determining those requirements from the product backlog that are to be implemented by the team in the next sprint. The requirements are broken down into concrete tasks. It is important to specify uniformly what must be done to ensure that a task is considered to have been successfully implemented. It is important that a common understanding of the requirements is achieved. The requirements defined in sprint planning are recorded in the sprint backlog.
2. Daily Scrum
During the sprint there is a meeting every morning for about quarter of an hour - the daily Scrum. During this meeting all team members, usually also Scrum master and product owner, meet to discuss the current status of the sprint. Each team member explains what has been implemented since the last daily Scrum, what problems or obstacles have arisen and what tasks are due for the next meeting. However, the daily Scrum is not intended to solve a possible problem, but only to exchange information. Questions or problems that cannot be clarified during the daily Scrum are given to the Scrum master for clarification, or are clarified in a separate meeting.
3. Sprint review
At the end of each sprint, the team presents the results of the current sprint in a review and the product owner checks whether all requirements of the individual product backlog entries edited in this sprint have been fulfilled. In addition, feedback is obtained from interested stakeholders and, if necessary, the requirements in the product backlog are adjusted. This makes it easy to see whether the implemented functionalities fulfill the needs of the target group or whether not. So the project team can react quickly to changes in requirements.
4. Sprint retrospective
This is about the team meeting at the end of a sprint and reflecting together with the Scrum master what worked well in this sprint and which points still need improvement. So it is not about checking the product improvement but about the work done in the team during the sprint. The goal is to continuously improve the cooperation.
5. Product backlog refinement
Since the requirements for a project can change continuously, it is important to keep the product backlog always up to date. To do this, the product owner should always review the existing backlog at the beginning and the end of a sprint and update, develop and refine if necessary.
6. Conclusion
Scrum is designed as an agile method to react quickly to changing situations. In addition, after each sprint, new software requirements are met and the customer receives an increasingly executable product. This is to avoid that the customer only gets a product that can actually be used by the users at the end. The prioritization of requirements according to business value also ensures that the customer can use its most important functions at an early stage.
However, in order for Scrum to function as a project method, certain requirements must be met. On the one hand, the company must maintain a positive error culture and have enough trust in the employees that they can work independently and self-organized. On the other hand the team itself must have a certain amount of independence and be able to find its own solutions. If these requirements are met, Scrum is a good framework to react quickly to changes in the fast moving software sector and to maintain a good climate between client and user.