Scrum method
(→Concept) |
|||
Line 105: | Line 105: | ||
*If a team member decides to leave the project before the finish deadline. It can have a huge negative effect on team morale and project outcome | *If a team member decides to leave the project before the finish deadline. It can have a huge negative effect on team morale and project outcome | ||
+ | ==Agile Scrum in relation with non-software projects== | ||
==References== | ==References== | ||
<references /> | <references /> |
Revision as of 13:13, 15 September 2016
In the early days of software development the usual waterfall method used for product development turned out to be inefficient and problematic for the development teams. As software development is different from other kinds of projects e.g. building a house, where every detail has been planned in advance, software oriented project can be constantly changing along with the needs of the customer. It is can be difficult and complicated to describe to a programmer which functions you want in a program and how they should work and more than often the outcome of the project does not satisfy the customers need. It was therefore necessary to come up with a new method more fitted to the ever changing environment of software development projects. The method developed is called Scrum and is an iterative agile software development framework. By being agile, Scrum ensures that everyone involved in the task know where the project stands, what tasks are left and status of the ongoing tasks. Scrum encourages the team to share knowledge and helping each other to finish the task as fast as possible i.e. Scrum is therefore focused on fast output of the tasks and to adapt to changes in demand from the client or market. The output of the project is therefore customized solution which fulfills all of the clients needs.
Contents |
History
The initial concept of Scrum was developed by Hirotaka Takeuchi and Ikujiro Nonaka in their paper "The New New Product Development Game" which they published in 1986. In it, they came up with a new faster and more flexible approach to managing product development processes. They described using a rugby team, where the team passes the ball within to reach a common goal or in other words, the project team works together and help each other to reach the projects goal. In it they argue that teams do better when given goals instead of the usual tasks. The team would then figure out how to reach the goal and overcome obstacles to reach the goal in the most efficient way. [1]
In the early 90's Ken Schwaber and Jeff Sutherland began developing the Scrum method more and presented the method at the OOPSLA(Object-Oriented Programming, Systems, Languages & Applications) conference in 1990 along with the paper “SCRUM Software Development Process”. In it they provided principles to develop and sustain complex software products which were used to create the Scrum framework. [2]
Concept
The definition scrum provided by the Scrum guide is the following : "A framework within which people can address complex adaptive problems, while productively and creatively delivering products of the highest possible value". Scrum is not a technique or a process but rather a framework which provides you with processes and techniques. The Scrum framework contains roles, events, artifacts and rules applicable to the Scrum team which are lightweight, easy to understand but difficult to master. Scrum takes an empirical approach to projects i.e. decisions made are based on what is known instead of trying to be predictive as in the Waterfall method. [4]
To gather as much knowledge as possible Scrum uses an iterative, feedback driven approach to control risk and optimize predictability which is supported by the three pillars made of transparency, inspection and adaption. These iterations are called Sprints and are usually 2-4 weeks long. Before each sprint a meeting called Spring Planning is held were the Development Team decides which items from the Product Backlog should be done in the upcoming Sprint. When the sprint is done a Sprint Review is held with the purpose to see which Increments have been added to the solution, what problems where encountered in the Sprint and to receive feedback for the work done in the Sprint. This process then repeats itself until the project is finished. [4]
To document the projects progress, as visual tool called a Scrum Board used to display where the project stands. This visually represents every tasks that needs to be done, has been done or is in progress.
Scrum Values
When the team follows the values of Scrum, the three pillars of transparency, adaption and inspection come into effect and helps in building trust among the team members. By using the tools Scrum provides, the team members explore these values.[4]
Commitment
Each and every team member commits to achieving the ultimate goal of the project.
Courage
The team members have the courage to take the right decisions and do the right thing in the most difficult situations.
Focus
The team members focus on work do be done in the Sprint and the goals of the project.
Openness
The team members and the customers/stakeholders are open about all the work and challenges they run into.
Respect
The team members respect each other skills.
The Scrum Team
The Scrum team is made out of three core roles, the Product Owner, the Development Team and a Scrum Master. The team itself organizes how it is best to reach the objective instead of be given instructions to do so. The team is cross functional so all necessary knowledge is within the team to finish the project without having to depend on outsiders. This team model is designe to improve flexibility, creativity and productivity.
The Product Owner
The Product Owner is the key stakeholder of the project and is responsible for maximizing the value and getting the most out the Development team. The key is that the Product owner has a vision of how what they want to do in the project and he conveys that vision to the development team by using the product backlog.[5] [4]
He must have a good understanding of the needs of the customer, the marketplace, the competition and how the future can effect the current project.[5]
His role is not to have a decisive factor in how much work should be done, but rather to motivate the team to perform at its greatest by giving them a clear elevating goal. The Development team itself chooses how much work to be done in each sprint, as they are the knows to withhold the knowledge of how much work can be done.[5]
The Development Team
The Development team is a cross functional team with the purpose of creating the projects soulution through the product backlog provided to them. They are free to use any method necessary to reach the current sprints goal. By working together and having no clear roles the cohesiveness of the team increases and boosts the productivity and creativity of the team, often leading in faster delivery of the product. [6] The optimal size of the development team is between 3 and 8 people. Smaller than that can lead to that there are not enough resources to finish a sprint and any larger than that means that too much time goes into coordination of the team.[4]
The Scrum Master
The role of the Scrum Master is to make sure that the Development Team follows the rules and practices of Scrum. He is responsible for removing obstacles that can be in the of the Development Team so that they can perform at their highest. He is generally present to help the team to use Scrum by motivating and reminding the team of the projects ultimate goal. He plans Scrum events for the team and all in all helps the team creating a high value product He has no clear authority over the Development Team but rather authority over the process itself. He helps the Product Owner to find techniques for effective management of the Product Backlog and how to maximize the value of it, and helps the Development Team to understand what is expected from each Product Backlog.[7] [8] [4]
Terminology
Artifacts
The Artifacts of Scrum are Product Backlog, Spring Backlog and Increment. These artifacts help to gain transparency on the work and detect opportunities for adaption or inspection. By adding transparency to the project, each and every member of the Development Team has an easier time of understanding the needs of the project.
Product Backlog
The Product Backlog is a list of tasks that need to be done in order for the product to be developed or changed. It includes all functions, technologies, requirements, enhancements fixes and features that that the product should consist of. The items in the backlog have a description, order, estimations and value. [9][4]
The tasks are generated from User stories which are originate from the customers requirements. The Product Backlog is prioritized by the Scrum Master and the Product Owner (who is responsible for the Backlog) so that the project/product generates as much value as possible. [4][9]
As Scrum is an agile framework which consists of using only the known requirements, as so the Product Backlog is never complete. It keeps on evolving along with the project itself i.e. it behaves dynamically along with the product needs.[4][9]
Sprint Backlog
The Sprint Backlog is a list of tasks generated from the Product Backlog in the beginning of each sprint in addition of a detailed plan on how the sprint should be done. It will predict which functionalities will be available in the next increment of the product.
The Development Team is responsible for setting up and estimate what needs to be done and how it will be done in order to finish the tasks they place in the Sprint Backlog.
The progress in each sprint is monitored so that for daily Scrum meetings the team can coordinate their efforts to finish the Sprint on time. [4]
Increment
Increments are all the Product Backlog items completed during a Sprint along with the value of all the Product Backlogs finished in previous Sprints. At the end of each Sprint, the items in the Sprint Backlog must be finished and in a useable condition.
Scrum Board
The Scrum board is a visual representation of the status of the project. It is a preferably a physical document where one can see all the items in the Product Backlog, whom are prioritized and the state of each item. This tool is important for daily Scrum meetings as it helps giving the project a certain transparency and simplicity. A whiteboard is often used to represent the Scrum Board. It is split up into few columns to show the status of each task and tasks are represented with post-it notes.
Daily Scrum Meetings
Sprint Planning
Is a plan of what work should be done in the Sprint. The goal of the Sprint Planning meeting is to know: "What can be delivered in the Increment resulting from the upcoming Sprint?" and "How will the work needed to deliver the Increment be achieved"[4]
Sprint Retrospective
This meeting serves as an opportunity for the Scrum Team to inspect and improve itself and the Scrum methods the team is using. The Scrum Master is responsible for this meeting to take place. The improvements identified will then be implemented in the next sprint. [4]
Application
Once the initial Product Backlog has been made, it is presented to The Development Team and they will then hold a Sprint Planning meeting to determine which items should be prioritized, how long the first sprint should last and setting a sprint goal. During the sprint, daily meetings are held in order to optimize the efficiency of the team and remove impediments which have occurred during daily operations. These meetings can be beneficial to the individuals in the team as this gives them a status on what was done yesterday and plan what should be done today. If the expect or have had any impediments they can notify their team members and they can work together to resolve the impediment.
The Scrum Board is important as it monitors the progress of the project. On it the Product Owner can see which tasks are done and which tasks need to be done to finish the project. The progress is then charted as a Burndown Chart which gives an estimate for the completion of the project. The board is continuously updated along with the projects alterations so that it represents the correct information for each daily meeting.
After the Sprint a Sprint Review meeting is held. There the stakeholders and the Development Team come together and review what increments have been done during the sprint and identify improvements or problems with the items in Product Backlog. These meeting serves mainly as a feedback and for the Development Team to get a overview of the status of the project, which items are done and the remaining tasks of the project. If the Development Team was not able to finish all the items in the Sprint, The team needs to clarify the reason why it is not finished to the Product Owner. The outcome of this meeting is then used as a basis for the next Sprint Plan.
A Sprint Retrospective is then held to improve the overall process of Scrum of the team. Improvements and problems are identified and are implemented/resolved in the next Sprint Plan. After the retrospective the team is finally ready for the next iteration of the project.
Advantages
Advantages of Scrum method are many. As the Scrum framework is agile in its nature, it is especially effective for software development as it is transparent and keeps a clear goal of what is to be achieved with the project. The advantages of the scrum method are the following[11]:
- Scrum helps the developer to save time and money
- Large projects are easy to quantify using Sprints
- After each Sprint a useable product is present
- The development of the project is visible, clear and transparent
- It requires regular feedback from the user
- Because of the feedback, it is easy to cope with changes in demand
- Issues are easily resolved in the daily meetings
- Individual effort is visible through the daily meetings
Disadvantages
Although the method is simple and easy to adapt there are some disadvantages that are to be recognized[11]:
- It can lead to Scope Creep as no definite end-date is set. If no end-date is set, the customer can request new functionalities which delays the projects deadline indefinitely
- Team size can not be any larger than 9 people, otherwise management becomes to difficult
- Team members need to have experience to be able to estimate time on the project
- If the team members are not committed, focused or cooperative the project has a is unlikely to be a success
- Quality is hard to implement, until the team goes through aggressive testing process
- If a team member decides to leave the project before the finish deadline. It can have a huge negative effect on team morale and project outcome
Agile Scrum in relation with non-software projects
References
- ↑ [https://hbr.org/1986/01/the-new-new-product-development-game The New New Product Development Game. (1986) Takeuchi and Nonaka (Read 13.09.16).
- ↑ [http://www.scrumguides.org/history.html The History of Scrum. (2016) Author Unknown (Read 13.09.16).
- ↑ 3.0 3.1 [http://www.c-sharpcorner.com/UploadFile/d9c992/the-agile-scrum-framework/ The Agile - Scrum Framework. (2015) Kshitij Yelkar (Fetched 15.09.2016)
- ↑ 4.00 4.01 4.02 4.03 4.04 4.05 4.06 4.07 4.08 4.09 4.10 4.11 [http://www.scrumguides.org/docs/scrumguide/v2016/2016-Scrum-Guide-US.pdf The Scrum Guide. (2016) Ken Schwaber and Jeff Sutherland (Read 13.09.16).
- ↑ 5.0 5.1 5.2 [https://www.mountaingoatsoftware.com/agile/scrum/product-owner Product Owner. (2016) Mountain Goat Software (Read 14.09.2016)
- ↑ [https://www.mountaingoatsoftware.com/agile/scrum/team Scrum Team. (2016) Mountain Goat Software (Read 14.09.2016)
- ↑ [http://scrummethodology.com/the-scrummaster-role/ The Scrum Master Role. (2011) Scrum Methodology (Read 14.09.2016)
- ↑ [https://www.mountaingoatsoftware.com/agile/scrum/scrummaster ScrumMaster. (2016) Mountain Goat Software (Read 14.09.2016)
- ↑ 9.0 9.1 9.2 [http://www.methodsandtools.com/archive/archive.php?id=18 Adaptive Project Management Using Scrum. (2004) Murpy,Craig (Read 14.09.2016)
- ↑ [https://userscontent2.emaze.com/images/3787f1c4-4447-4cac-b48b-d0b607a1b940/a07449511d4e32b96c6e3add75f7f430.png Scrum Workflow. (2016) Voceboxalo (Fetched 15.09.2016)
- ↑ 11.0 11.1 [http://www.simplilearn.com/scrum-project-management-article/all-resources Scrum Project Management - Pros and Cons. (2013) Chandana (Read 15.09.2016)