Scrum
Line 89: | Line 89: | ||
Table of SB | Table of SB | ||
− | Since the Team is self-managing it needs to know how the Sprint is going and if they are able to finish the items on time. To manage this a Sprint Burndown Chart is used [3][4]. This Charts contains the ideal time set to do the tasks, while one person adds everyday to the Sprint Burndown Chart what the expected hours remaining to finish for the entire Team is. The goal is that the Burndown Chart has a downward slope, meaning that they at the end of the Sprint have reach the goal. | + | Since the Team is self-managing it needs to know how the Sprint is going and if they are able to finish the items on time. To manage this a Sprint Burndown Chart is used [3][4]. This Charts contains the ideal time set to do the tasks, while one person adds everyday to the Sprint Burndown Chart what the expected hours remaining to finish for the entire Team is. The goal is that the Burndown Chart has a downward slope, meaning that they at the end of the Sprint have reach the goal [4]. |
Figure of a burndown chart | Figure of a burndown chart | ||
− | |||
− | |||
− | Implementation | + | |
+ | ===Implementation of Scrum=== | ||
+ | |||
Challenges | Challenges | ||
+ | |||
+ | Scrum can be used in many projects as mentioned above it worked best when | ||
+ | |||
+ | Scrum should not be used when the company is working passively or actively against the Scrum rules, for Scrum to work the guidelines need to be followed[15]. Some companies do not see the benefit from using Scrum and will therefore either not bother to try at all or just do what they feel is necessary. Also companies that believe in Scrum and think they will get great benefits form it can end up using it wrong and not completely committing should not use Scrum. If the company can not set the amount of people that is needed aside and try to used them in different projects then Scrum will not work. Also if the team members can not follow a fairly daily fixed scope they might run into problems. Because Scrum is based on having a daily progress and if the team members feel free to not follow the set Scope the Burndown Chart might not be getting the desired downward slop. As for that the company might be working against Scrum, but so can the team members also be therefore it is important to have a strict SM that will guide the team into following the Scrum rules. Another time where Scrum should not be used is when the time set to do the project is way shorter than what it possibly can be done in. For example if the time needed is 21 months, but the time given is 15 then the chances of having success with the Scrum Framework is low. | ||
+ | |||
+ | Scrum was also developed for Software Development, therefore some say that Scrum should only be used for doing that [15], while others say that they do not see a project where Scrum can not be used [16]. | ||
+ | |||
+ | |||
When to use scrum | When to use scrum | ||
what makes scrum work | what makes scrum work | ||
− | + | ||
− | + | ||
Example | Example | ||
Framework | Framework | ||
Line 128: | Line 135: | ||
[12] http://scrummethodology.com <br> | [12] http://scrummethodology.com <br> | ||
[13] http://juanbandaonscrum.blogspot.dk/2009/09/what-po-does-during-scrum.html <br> | [13] http://juanbandaonscrum.blogspot.dk/2009/09/what-po-does-during-scrum.html <br> | ||
+ | [14] Why Scrum Works, A case study from an agile distributed project in Denmark and India, Lene Pries-Heje and Jan Pries-Heje <br> | ||
+ | [15] http://www.scrumcrazy.com/When+Not+to+Use+Scrum | ||
+ | [15] http://www.leanagiletraining.com/scrum/when-should-you-not-use-scrum/ | ||
---- | ---- |
Revision as of 14:00, 1 December 2014
Scrum is a framework [2] for dealing with Agile Project Management
Contents |
Background
History
The creator of The Scrum development process have been a frequent topic of debate, but from the Scrum Paprers [5] by Jeff Sutherland the start of Scum has been dedicated to the Godfathers; Hirotaka Takeuchi and Ikujiro Nonaka, they where the ones that came up with he name Scrum and came up with the initial concept in the paper [The New Product Development Game] [10] in 1986 [1]. While Jeff Sutherland was the one to apply the concept and tweak it for then introducing it together with Ken Schwaber at the OOPSLA 1995 conference.
Scrum was later introduced by Schwaber and Mike Beedel in the book first book about Scrum: Agile Software Development with Scrum in 2001. From the Scrum Papers [5] it becomes clear that there have been many contributors in forming the Scrum framework. A Scrum community stated emerging, and a platform to unite the community was created with the name Scrum Alliance (SA) [6] and Certified ScrumMaster (CSM) certification. But over the time since SA was created there became an dispute about their stands and trancparency [7] and the result was that Schwaber created Scrum.org[8]. In 2013 Schwaber and Sutherland published the latest version of The Scrum GuideTM [9].
Takeuchi and Nonaka realized that in the "fast-paced, fiercely competitive world of commercial new product development, speed and flexibility are essential" [10], and that the old way of developing product by following a in sequential order was not sufficient. Takeuchi and Nonaka therefore introduced a holistic approach with six characteristics "built-in instability, self-organizing project teams, overlapping development phases, "multilearning", subtle control, and organizational transfer of learning" [10] when used as a whole become a flexible and powerful tool and named it Scrum.
Sutherland believes that Scrum is a framework based on a set of best practices during the past 50 years of software development. And it is not a development method or a formal process[1][5], he gets support from Schwaber in his claim. Sutherland also says that "Scrum is used as an agile practice that delivers software to the end user faster, better and cooler". [5]
Overview of Scrum
What is Scrum?
According to the Scrum Alliance: [6]
“Scrum is an agile framework for completing complex projects. Scrum originally was formalized for software development projects, but works well for any complex, innovative scope of work. The possibilities are endless. The Scrum framework is deceptively simple.”
Scrum is a framework that enforces a set of rules for how teams can collaborate and work together efficiently and effectively to develop complex projects to develop a product, it provides a structure that enables the team to focus on projects that might otherwise seem extremely challenging.The framework can be used and to scale any size of project [11], and also in programs and portfolios, but for this article the focus will be on using Scrum in projects. Scrum is best suited for projects that change rapidly and have frequent emerging requirements. The framework is also a way of supporting the employees in having focus on the human accept by creating a sense of belonging to the team and that they are needed. It focuses on learning, creativity and the interaction with others, since this is essential for the projects success.
Scrum is not using Gantt charts, but using sprints that last no longer than 30 days. Every sprint tries to create a working increment even if it starts out small, for then continously developing on it. An Increment is the sum of all the items on the Product Backlog that is finished turing a Sprint [4].
At the core of Scrum are the three roles; the Product Owner, the Scrum development team an the Scrum Master, which all have their specific roles which will be described below. Next important aspect of the Scrum framework are the Artifacts; the Product backlog and the Sprint backlog also to be explain below.
Roles
In Scrum there are three main roles that need to be implemented there needs to be a Product Owner, a Scrum development team and a Scum Master, collectively they are called The Scrum Team
Product Owner
The product owner (PO) is a single person that has the responsibility of getting the maximum return on investment (ROI), this is done by that the PO manages the Product Backlog. [5][12] At the very beginning the PO gathers all the necessary requirements given to achieve the goals and mission. The a a set of user stories are created either alone or in collaboration with the Development team. Then the stories are prioritized by using different techniques for example Planning Poker or T-shirt sizes [13] for then being added to the Initial Backlog arranged after what is most important based on the complexity and not on the effort and time.
The PO has the responsibility of creating a transparent product backlog that shows all the necessary items, but this not necessarily mean that the PO will give a detailed requirements upfront. The PO is the one that decides what needs to be done during the next sprint, but again might still not give all the details. The focus is more on the what than the how of the project.
The PO makes sure that the Development team understands the Product backlog to the extent needed. Because it might not make sense to make up all the details upfront, since there might be high uncertainty for the future, but the PO needs to have the vision. The PO also have the responsibility for the optimizes of the what the development team does and also the value of the work.
It is important that the PO is respected ant that what the PO decides is what goes, the development team is not allowed to take orders from other parties and are not allowed to overrule the PO and act as they please. If anyone wants something from the development team they will need to ask the PO, and the PO decides if it is important to the project.
The PO can sometimes be the customer and other times the customer might be millions of people all having different needs. The PO can sometimes have a similar role as a Product manager, but the product owners role is somewhat different from a Product Manager, because the PO's role is to actively be in contact with the development team, and review each sprint as they finish, for then creating the next sprint backlog.
Scrum Development Team
The Development Team is a cross functional group of people that are self organized [12]. The Development Team job is to create the product [5] that the PO has planned, and provide the PO with ideas how to make a product great. The Development Team does the analysis, development, testing, interface design documentation among other things [5]. By every sprint they try to make a functional increment that is potentially shippable [12], only the ones that are part of the Development Team create the increment. The team is built up of people that in total have all the necessary requirements to be able to create the increment. They are self-organizing managing that they have the sole responsibility to how they turn the product backlog into increments [9].
The Development Team do not have individual titles, other than Developer [9], and it is an important factor that the Team can count on each other [12] to be able to realize the Increments each sprint. If the same team is kept together over a longer time and they learn how to work together it is assumed that they will increase productivity [12]. The Development team members can have specialized skills, but the whole team is help responsible for the project, following Scrum rules sub-teams are not allowed [9].
The Development Team can have different sizes, but a minimum of two people are set [9]. The optimal size is set to 4-9people [12]. If the team is to small they might encounter problems with not being able to complete sprints because there might be a lack of skills in the team[5]. When the team becomes to big other issues might occur for example that the complexity increases and organizing difficulties. There can be several Scrum development teams working on different aspects of the proudct [5], but with close coordination between them.
Scrum Master
The main role of the Scum Master (SM) is to teach the Development Team to apply Scum to achieve business value [5]. The SM has the responsibility to help the PO and Development team be successful, but the Scrum Master is not the team manager, the Sm has no managerial authority, but their role is to serve the team and protect them against outside influences [12]. The SM also helps the organization with the changes that Scrum afflicts and makes the organization understand what is needed for success using Scrum.
In most cases the SM is a full-time job, but in some cases the SM can be part of the Development Team, but the PO and SM can not be the same person [5]. The SM can have different backgrounds from engineering, product management, project management etc.
Events
Sprints
Sprints are fixed lengths of intervals, sprints are officially 30days long, but it is quite common that a sprint is done in 14days. Every sprint contains a combination of; Analysis, design, actual implementation, testing, planning for the future, shipping and deploying[12][4]. During a sprint there should be done a little design every time tip it becomes a continues design, the customer does not always know what they want to begin with, therefore by having continuous design the Development Team will eventually reach the goal.
The sprint has as a goal that at the end of each spiny there should potentially be a releasable increment. A Sprint always start directly after the previous Sprint has ended. There can be made no changes to the Sprint Goal, but the scope can be changes when the PO and development Team learn more[9]. A Sprint may be cancelled, but it is very rare since the Sprints are no longer than 30 days. If they are cancelled the PO will look at the work form Product backlog that is "Done" and see if some of it can be used or if it should be dismissed.
Sprint planning is an important part of Scrum, for a 30-day Sprint the maximum time used is eight hours [4], if the sprint is shorter, the planning time is usually also shorter. The Sprint planning plans what can be delivered and and how will the work needed to reach the goal be achieved. The Sprint Goal is a set objective that can be reach by using the Product backlog. [9]
tabell
Daily scrum
Daily scrum is a meeting that is held at the same time for everyday of the sprint. All team members participate, it as held at the same location everyday and should maximum last for 15 min. During the meeting three topics are discussed:
1. What was done yesterday to meet the Sprint Goal
2. What will be done today to meet the Sprint Goal
3. Are there any challenges that can cause problems reaching the Sprint Goal.
Daily Scrum is used to evaluate if the progress is going the way it should to reach the Sprint Goal. After a Daily Scrum the Development team often meets to further discuss on the plan. [9]
Sprint Review and Sprint Retrospective
After the Sprint is finished it is reviewed by the Scrum Team and the stakeholder, and the Product Backlog might be updated if needed. During the review the PO informs what has been "Done" and what has not been "Done". The Development team tells what has gone well and what has been a challenge [9]. The Review regards the product. At the end the entire group will discuss what needs to be done next.
The Sprint Retrospective regards the process. [4] It is a step that often is overlooked, but is very important for optimization. During the meeting it is discussed what is working and what is not, and find a way of solving the issues. The Development team and the SM attends, while the PO is welcome to join if he feels like it. [4]
Artifacts
Product Backlog
The Product Backlog is a list of everything that might be needed done to the product [12][9][4], it is where any changes to the product will be added. The Product Backlog is the POs responsibility, anyone can add to it but it is the PO that has the responsibility of prioritize the list to maximize the ROI[4][9]. But there is always only one item on the top of the list. If something is not in the Product Backlog then it does not exist, but the Product Backlog is never done, and at the beginning only the known requirements are added[12]. There can be multiple Scrum Teams working on the same Product Backlog.
One of the ways the product backlog is prioritizing is by looking at the relative size of the items (factoring in complexity, uncertainty and effort) [4], using a unit of Story Points. This is used to see how many tasks they can to each Sprint, by saying that they on average can do 24 Story Points per Sprint [4].
table of PB
Sprint Backlog
The Sprint Backlog contains what needs to be done during a sprint. The Sprint Backlog is made by looking at the Product Backlog and taking the highest priority item and break it down into individual tasks[4]. The Sprint Backlog visualized the work that the Development Team needs to do to reach the Sprint Goal. If something is found unnecessary to do it is removed from the Sprint Backlog.
Table of SB
Since the Team is self-managing it needs to know how the Sprint is going and if they are able to finish the items on time. To manage this a Sprint Burndown Chart is used [3][4]. This Charts contains the ideal time set to do the tasks, while one person adds everyday to the Sprint Burndown Chart what the expected hours remaining to finish for the entire Team is. The goal is that the Burndown Chart has a downward slope, meaning that they at the end of the Sprint have reach the goal [4].
Figure of a burndown chart
Implementation of Scrum
Challenges
Scrum can be used in many projects as mentioned above it worked best when
Scrum should not be used when the company is working passively or actively against the Scrum rules, for Scrum to work the guidelines need to be followed[15]. Some companies do not see the benefit from using Scrum and will therefore either not bother to try at all or just do what they feel is necessary. Also companies that believe in Scrum and think they will get great benefits form it can end up using it wrong and not completely committing should not use Scrum. If the company can not set the amount of people that is needed aside and try to used them in different projects then Scrum will not work. Also if the team members can not follow a fairly daily fixed scope they might run into problems. Because Scrum is based on having a daily progress and if the team members feel free to not follow the set Scope the Burndown Chart might not be getting the desired downward slop. As for that the company might be working against Scrum, but so can the team members also be therefore it is important to have a strict SM that will guide the team into following the Scrum rules. Another time where Scrum should not be used is when the time set to do the project is way shorter than what it possibly can be done in. For example if the time needed is 21 months, but the time given is 15 then the chances of having success with the Scrum Framework is low.
Scrum was also developed for Software Development, therefore some say that Scrum should only be used for doing that [15], while others say that they do not see a project where Scrum can not be used [16].
When to use scrum
what makes scrum work
Example Framework what scrum values What does Done mean Rules Reflections
See also
References
Further readings
Extrenal links
[1] http://www.techwell.com/2012/10/brief-history-scrum
[2] http://c2.com/cgi/wiki?ScrumProcess
[3] http://www.methodsandtools.com/archive/scrumburndown.php
[4] https://www.scrumalliance.org/community/articles/2009/november/daily-scrum-merely-a-status-report
[5] http://jeffsutherland.com/ScrumPapers.pdf
[6] https://www.scrumalliance.org
[7] https://agileanarchy.wordpress.com/2010/10/12/the-scrum-compliance/
[8] https://www.scrum.org
[9] The Scrum Guidelines, The Definitive Guide to Scrum: The Rules of the Game, Ken Schwaber and Jeff Sutherland, July 2013, Scrum.Org and ScrumInc
[10] "New New Product Development Game". Harvard Business Review 86116:137–146, 1986. January 1, 1986. Retrieved March 12, 2013.
[11] http://www.scrumstudy.com/blog/scaling-scrum-to-program-and-portfolio-level/
[12] http://scrummethodology.com
[13] http://juanbandaonscrum.blogspot.dk/2009/09/what-po-does-during-scrum.html
[14] Why Scrum Works, A case study from an agile distributed project in Denmark and India, Lene Pries-Heje and Jan Pries-Heje
[15] http://www.scrumcrazy.com/When+Not+to+Use+Scrum
[15] http://www.leanagiletraining.com/scrum/when-should-you-not-use-scrum/
• Overview – Application Context • Type of decision – Necessary data, information, people, resources to execute – Summary of output • Description of steps – Summary of steps – Description of steps (input, action, output) • Application example • Metrics • Work material (templates) – Order of magnitude 3500 words – What counts is „quality density“. If you can say it in 2000 words, say it in 2000 words.