Scrum an Agile Framework
The 21st century is becoming more and more dependent on software than ever before, in the 20th century most companies had predefined projects and was therefore more predictable. With predefined projects, the tasks involved in developing or manufacturing the final product could be planned in advance. If the requirements, design and implementation can be planned in advance and the final goal is in sight, a framework called the waterfall method is suitable. It is a step driven method were each step is planned in advance.
In software development the waterfall method is not as suitable, as the market today calls for more flexibility and responsiveness, hence more unpredictability. The Scrum method is more suitable for projects that are unpredictable, that is the requirements and design of the project is constantly changing. Scrum works on the agile framework, by using iterative and incremental processes in order to cope with the ever changing requirements and customers’ needs.
Contents |
History
The Godfathers of Scrum
Hirotaka Takeuchi and Ikujiro Nonaka are regarded as the godfathers of Scrum. They realized that companies were moving towards more flexibility and speed in developing new products, at the same time minimizing cost and have high quality products. Takeuchi and Nonaka, described the old approach as a relay race, a team working towards a common goal but not working together at the same time to reach their goals, instead one player ran at a time and when he finished the next one could go. This is much like the waterfall method. Takeuchi and Nonaka introduced a new holistic approach and described it as a rugby team working together to reach a common goal.[2]
Modern Scrum
In the 90´s Jeff Sutherland and Ken Schwaber continued working on the idea from Takeuchi and Nonaka, it later involved into the Scrum method. In 1995, they first presented their method at the Oopsla conference in the US and published a paper “SCRUM Software Development Process”.[3]
Sutherland and Schwaber developed the Scrum method with software development in mind. Complex software development projects can have a high level of uncertainty and are constantly changing, therefore the traditional step-by-step method did not fit.[3]
In 2001, Sutherland and Schwaber alongside 15 other software developers worked together to come up with the Agile Manifesto. The Agile Manifesto is a set of 12 principles for software development.[3]
Values
Roles
In Scrum there are three roles that need to be fulfilled:
- The Product Owner
- The Scrum Master
- The Scrum Development Team
For each role there is a set of responsibilities, in order for a project to be successful each team member has to fulfill those responsibilities.
The Product Owner
Usually the product owner is a single person whose responsibility is to maximize the return of investment of the project he controls. The scrum master and the development team are not to be in direct contact with the customer/s, the product owner is the one responsible to be in contact with the customer/s to interpret their needs. The product owner then creates the product backlog which contains the tasks the development team needs to fulfill, it is vital that the product owner describes and ensures that the development team understands what needs to be done. He also prioritizes the tasks in the product backlog and has the final vote on what tasks need to be done and in what time period. Even though the product owner decides which tasks are to be taken, he does not manage what work is done within each task that is up to the development team and the scrum master. Throughout the project the product owner is constantly working together with the team and talking to customers, he is responsible for updating the product backlog in case of new requirements, review tasks that are completed, decides whether to ship the product and can decide whether to continue development or not.[5][6]
The Scrum Master
As with the product owner, the Scrum master is usually a single person whose responsibility is to ensure that the team follows the Scrum framework and its practices and rules. Initially in the planning process the Scrum master focuses solely on creating the product backlog with the product owner and planning Scrum events such as daily Scrum meetings, sprint planning meetings, sprint review meetings and sprint retrospective meetings. Later on when the initial plan is complete the Scrum master often joins the development team. The main difference of the product owner and the Scrum master is that the Scrum master has no authority over the development team and does not take decisions that affect the development process. He is rather an advisor/helper and only interferes when the team is not following the principles of the Scrum framework. He is supposed to help the team members when they need additional help, when the team is not working together or if there are technical problems.[7][6]
The Development Team
After the product owner and the Scrum master have done their work in the planning process, it is up to the development team to complete the tasks and come up with a solution that satisfies the requirements set by the product owner. The importance of the Scrum framework is that the development team is a team, they as a team are responsible of something that goes wrong or if something is done well not a single individual. The development teams are cross-functional so they have the knowledge and experience to complete the tasks they are assigned to. Generally the team consists of 3-9 members, if there are too few the tasks may not be completed and too many can lead to management issues. As noted before the product owner does not hand out detailed work plans regarding each task, the development team reviews each task before each sprint and divides it into more tasks and estimates the work time needed for each task. The development team is responsible for completing those tasks and hand out a shippable product at the end of each sprint.[8][6]
The Scrum Plan
Sprint Planning
The Scrum team; the product owner, scrum master and the development team attend the meeting. During the meeting the product owner takes tasks from the product backlog and tells the team what tasks are important and are to be included in the future sprint. In this step it is vital that the product owner can let the team know what needs to be done and that every team member understands the task at hand. But, the product owner does not include all the tasks in the product backlog generally the next two or three sprints are under consideration. The challenge in sprint planning is time management, because ideally they have to be able to complete the tasks selected at the end of the sprint.[9]
Daily Scrum
Each day there is a daily Scrum meeting, the meeting is attended by the team. The Scrum framework ideally wants the meetings to be at the same time and at the same location each time and are usually between 5-15 minutes. The meeting can be attended by outside parties, but they are not allowed to pitch in just observe and listen.[10]
There are three questions every team member has to answer:[11]
- "What did you do yesterday?"
- "What will you do today?"
- "Are there any impediments in your way?"
The Scrum master ensures that all the team members answer these questions, these questions provide an excellent overview of the work that is done and what needs to be done. It provides a certain transparency to the work of each team member.[10]
If any issues or conflicts come up during the meeting, they are handled after the meeting. The meeting is just to see where everyone stands and if they are on schedule.[10]
Sprint Review
At the end of each sprint the team showcases what they have done during the sprint often called a demo. It is different according to companies who attend the meeting, e.g. only the scrum team, the scrum team, management and other scrum teams. Ideally the work that is showcased is supposed to be completed, but this is not always the case and it can be a good way of getting feedback from other scrum teams or/and customers to further enhance their project.[12]
Sprint Retrospective
The meeting usually takes place after the sprint review, the Scrum master is responsible that the meetings takes place. The team discusses the recently completed sprint and how the experience gained from it can help in improving future sprints.
Artifacts
Product Backlog
The product backlog contains a list of items that the product owner and the scrum master have made after interpreting the customer needs. It is a to-do list of what needs to be done in order to deliver a successful product. The items in the list are prioritized to maximize the return of investment and are only added to the product backlog if they add value to the project. The team estimates how long each task will take during the sprint review and divide each task into smaller tasks, as the requirements can be changing throughout the project, the list is constantly changing. Whether new items are added or current items are modified. As the product backlog changes throughout the project, the level of detail of each task is different. Tasks that are not in the next couple of sprints have a brief description of what is needed and tasks that are in the next couple of sprints have a more detailed description. With having lower level of detail in tasks that are not in the current sprint, prevents time consuming processes in acquiring requirements and needs for that task and the requirements can change over time. The product owner is responsible for maintaining and changing the product backlog.[13]
Sprint Backlog
The sprint backlog contains a list of items the from the product backlog, usually the items with the highest priority end up in the sprint backlog. The items in the sprint backlog are selected by the team and the team should not select more items than they can handle each sprint, because the team is trying to complete all the tasks in each sprint. After the team has selected the number of items from the product backlog, each item is divided into more tasks and an estimate is made.[14] The estimate is given in story points, story points are used to measure the effort needed to finish a specific task. The story point scale can be different between teams, the scale can be; 1,3,5,8,13,40,11 or xsmall, small, large, xlarge e.g. Note the story points are not measured in hours.[15]
Planning Poker
To estimate the story points a common method is used called planning poker. As the name implies it is builds on the poker principles, every team member gets a set of cards, on each card there is a story point e.g. there can be 7 cards if the scale is 1,3,5,8,13,40,100. The team goes over each task in the sprint backlog and gives an estimate of how many story points that specific task needs. The purpose of the planning poker is that each team member selects a card that only he can see and the team reveals the card they chose at the same time. This ensures that the estimate is not affected by other team members. If a team member has an estimate that is different than the majority, either too low or too high, the team member gets a chance to explain the reason for that estimate. If the team does not agree on the number of story points for a specific task, a discussion takes place until every team member is satisfied with the number of story points. Often the team member assigned to the task has more influence on the estimate than other team members.
Example: A team of 6 is voting on a task, they reveal their cards at the same time. 3 team members have an estimate of 5 story points, 1 has an estimate of 13 story points and the last 2 an estimate of 3 story points. The team member that voted 13 story points gets a chance to explain his estimate. After he explains himself another round of poker is played, voting on the same task with his explanation in mind. The team members all reveal their cards again at the same time. Now 4 team members have an estimate of 8 story points and the other 2 an estimate of 5. As this is has been discussed and the majority of votes are 8 story points, this task gets an estimate of 8 story points.
Increment
“The Increment is the sum of all the Product Backlog items completed during a Sprint and the value of the increments of all previous Sprints.”[16] An Increment must be completed, in usable condition whether the Product Owner wants to release it or not.
Sprint Task
Sprint Burndown Chart
Scrum in non-software projects
Limitations
References
- ↑ 1.0 1.1 1.2 Yelkar, Kshitij. Scrum Framework. 2015. Web. 16 Sept. 2016.
- ↑ Takeuchi, Hirotaka and Nonaka, Ikujiro. "The New New Product Development Game". Pomsmeetings. N.p., 1986. Web. 15 Sept. 2016.
- ↑ 3.0 3.1 3.2 "Scrum History | Scrum Guides". Scrumguides.org. Web. 15 Sept. 2016.
- ↑ Scrum Roles & Stakeholders. Web. 16 Sept. 2016.
- ↑ "Scrum Product Owner - International Scrum Institute". Scrum-institute.org. Web. 16 Sept. 2016.
- ↑ 6.0 6.1 6.2 "Scrum Roles". agile42. Web. 15 Sept. 2016.
- ↑ "The Scrum Master - International Scrum Institute". Scrum-institute.org. Web. 16 Sept. 2016.
- ↑ "Scrum Roles – The Scrum Team - International Scrum Institute". Scrum-institute.org. Web. 16 Sept. 2016.
- ↑ Cohn, Mike. "Sprint Planning Meeting". Mountain Goat Software. Web. 16 Sept. 2016.
- ↑ 10.0 10.1 10.2 Cohn, Mike. "The Daily Scrum Meeting". Mountain Goat Software. Web. 16 Sept. 2016.
- ↑ Cohn, Mike. "The Daily Scrum Meeting". Mountain Goat Software. Web. 16 Sept. 2016.
- ↑ Cohn, Mike. "Sprint Review Meeting". Mountain Goat Software. Web. 16 Sept. 2016.
- ↑ "The Scrum Product Backlog - International Scrum Institute". Scrum-institute.org. Web. 16 Sept. 2016.
- ↑ "Sprint Backlog". Scrum Inc. N.p., 2014. Web. 16 Sept. 2016.
- ↑ "Scrum Effort Estimation And Story Points". Scrummethodology.com. Web. 16 Sept. 2016.
- ↑ "Scrum Guide | Scrum Guides". Scrumguides.org. N.p., 2016. Web. 16 Sept. 2016.