Scrum method
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. 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. [3]
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.[3]
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.[4] [3]
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.[4]
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.[4]
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. [5] 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.[3]
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.[6] [7] [3]
Terminology
Artifacts
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, estimate and value. [8][3]
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. [3][8]
As Scrum is an agile framework which consists of using only the known requirements, 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.[3][8]
Sprint Backlog
Increment
Application
Advantages
Disadvantages
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 3.2 3.3 3.4 3.5 3.6 3.7 [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).
- ↑ 4.0 4.1 4.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)
- ↑ 8.0 8.1 8.2 [http://www.methodsandtools.com/archive/archive.php?id=18 Adaptive Project Management Using Scrum. (2004) Murpy,Craig (Read 14.09.2016)