SCRUM - An Agile Project Management Framework

From apppm
(Difference between revisions)
Jump to: navigation, search
Line 25: Line 25:
 
: Instead of seeing a change as an expense, changes should be welcomed and incorporated, to create additional business value.  
 
: Instead of seeing a change as an expense, changes should be welcomed and incorporated, to create additional business value.  
  
The 12 principles can be read in full on [[ https://agilemanifesto.org/principles |agilemanifesto]]. Even though the founders of Scrum signed the agile manifesto, it is a common misunderstanding the implementing Scrum, will make you agile. As mentioned above, agile is a set of values and principles. In order to adopt an agile way of working, the members of the scrum team will need to work under these principles and beliefs. The implementation of Scrum can push you towards a more agile way of working but cannot do it alone. The remainder of this article will focus on what scrum is and when it is beneficial for software development. This will include an overview of the scrum method, followed by a section on application and limitations.
+
The 12 principles can be read in full on [[https://agilemanifesto.org/principles|agilemanifesto]]. Even though the founders of Scrum signed the agile manifesto, it is a common misunderstanding the implementing Scrum, will make you agile. As mentioned above, agile is a set of values and principles. In order to adopt an agile way of working, the members of the scrum team will need to work under these principles and beliefs. The implementation of Scrum can push you towards a more agile way of working but cannot do it alone. The remainder of this article will focus on what scrum is and when it is beneficial for software development. This will include an overview of the scrum method, followed by a section on application and limitations.
  
 
===Team & Roles===
 
===Team & Roles===
Line 91: Line 91:
 
[[File:Incremental_mh.PNG|50px|frame|Incremental deliveries vs One Final Delivery, inspired by [https://dzone.com/articles/scrum-is-not-mini-waterfall| Arijit Sarbagna, Dzone.com] ]]
 
[[File:Incremental_mh.PNG|50px|frame|Incremental deliveries vs One Final Delivery, inspired by [https://dzone.com/articles/scrum-is-not-mini-waterfall| Arijit Sarbagna, Dzone.com] ]]
  
At the end of the sprint the scrum team has in the optimal scenario completed all the tasks from the sprint backlog, even though this is not the case, the sprint will still be complete as the timebox is coming to an end. The tasks which have not been completed will have to become a part of the backlog and go through the prioritization phase again to make it to the backlog of the next sprint. The tasks which have resulted in changes, new features, or other relevant software updates to present for the stakeholders will be presented on the Sprint Review. Increments are a part of the agile way of working, where the focus is to make constant small improvements, in order to keep stakeholders informed and receive feedback as build. This can be seen as a process where features are added after the software is already taken into use, this is also known as [https://www.infoworld.com/article/3271126/what-is-cicd-continuous-integration-and-continuous-delivery-explained|Continuous Development/Continuous Integration]. This is mainly used for software, but here illustrated with the example of car development. Where incremental updates will focus on adding features, but start focus will be to make a product that can drive. In traditional waterfall development, the focus will often be to finish the wheels, then the cabin, and so on. This might seem more effective, but have a high risk of not fulfilling the stakeholders' demand, as the solution cannot be adjusted while developed.     
+
At the end of the sprint the scrum team has in the optimal scenario completed all the tasks from the sprint backlog, even though this is not the case, the sprint will still be complete as the timebox is coming to an end. The tasks which have not been completed will have to become a part of the backlog and go through the prioritization phase again to make it to the backlog of the next sprint. The tasks which have resulted in changes, new features, or other relevant software updates to present for the stakeholders will be presented on the Sprint Review. Increments are a part of the agile way of working, where the focus is to make constant small improvements, in order to keep stakeholders informed and receive feedback as build. This can be seen as a process where features are added after the software is already taken into use, this is also known as [https://www.infoworld.com/article/3271126/what-is-cicd-continuous-integration-and-continuous-delivery-explained.html|Continuous Development/Continuous Integration]. This is mainly used for software, but here illustrated with the example of car development. Where incremental updates will focus on adding features, but start focus will be to make a product that can drive. In traditional waterfall development, the focus will often be to finish the wheels, then the cabin, and so on. This might seem more effective, but have a high risk of not fulfilling the stakeholders' demand, as the solution cannot be adjusted while developed.     
  
 
==== Sprint Review ====
 
==== Sprint Review ====

Revision as of 12:20, 23 February 2021

Developed by MH

Scrum is an agile project management framework especially popular for software development. It is based on short work cycles of 2-4 weeks(sprints) with the aim of creating incremental business value. The workforce is organized in small teams, with cross-disciplinary skills and knowledge, and receives continuous feedback from key stakeholders are after each sprint. The constant feedback and dialogue with stakeholders are key to delivering true business value and keeping the project on track. Scrum was created by Jeff Sutherland and Ken Schwaber, both ex-soldiers from the Vietnam war, which later both became a part of the software industry and had a shared frustration of late deliveries, poor quality, and user dissatisfaction [1]. They were inspired by Hirotaka Takeuchi and Ikujiro Nonaka, who compared a new development approach to the movement of a rugby team, in their paper “The New New Product Development Game” [2].

Scrum has over the last few years become increasingly popular for software development for good reasons. In order to overcome the traditional challenges of project management for software development, which builds on the assumption of constant demands and full sign of on requirements before beginning, a more agile approach, Scrum, has gained its justification. The ability of Scrum to cope with the reality of modern software development with ever-changing demands, the challenge of capturing all requirements from the beginning, the acceptance of failure, and the need for testing while developing, but most importantly the acceptance of changing preferences and requirements from the client as the development evolves, has made it a popular project management framework for software development.

Contents

Big idea

Figure 1, inspired by pmi-macedonia.mk

Scrum is widely used due to its efficient framework for organizing a team and their tasks in order to deliver continuous business value. The implementation of Scrum is often driven by the wish to become more responsive to changing demands from stakeholders. With a technological scene changing faster than ever, there is an increasing need to use a development process where priorities and requirements can be changed during the development. Software development was previously often based on the linear waterfall model[3] where everything is signed of and specified before the project is started, see figure 1. When developing software, the timeline will often be multiple years, where both requirements and priorities likely have changed. In contrast to this approach, there is Scrum, which is based on shorter sprints, where the most value-adding tasks from the backlog are completed in self-organized teams and immediately shared with the client to get continuous feedback. Instead of one final huge delivery at the end, the idea of Scrum is to develop small incremental updates which will make the full delivery at the end, while being able to change requirements while developing. The scrum method includes a small part of the phases planning, executing, and monitoring process in each sprint, known from the standard for project management, PMBOK Guide [4]. Instead of performing the phases on time like the waterfall model, they will be continuously repeated in each sprint, to make it possible for adjustments and reprioritization, this will often be considered as the ability to being agile.

The Scrum framework is based on the 12 agile principles, which were signed by the 2 founders of Scrum together with 15 other prominent individuals, all frustrated with traditional software development. The 12 Agile principles are based on 4 core values[5]:

Individuals and Interactions over Processes and Tools
The focus is on what will create value. It is people who will interact, communicate as needed and develop the results, why they should be prioritized above strict process and tool requirements.
Working Software over Comprehensive Documentation
Instead of using tons of time on specified and technical documentation of requirements, the developer should be trusted, that he or she will be able to make use the time more efficient to make working software, which will create business value.
Customer Collaboration over Contract Negotiation
Instead of following the traditional approach of the waterfall model, where everything is negotiated prior to work start. The customer or stakeholders should be included during the work and be part of the collaboration, to assure the work makes business value.
Responding to Change over Following a Plan
Instead of seeing a change as an expense, changes should be welcomed and incorporated, to create additional business value.

The 12 principles can be read in full on [[1]]. Even though the founders of Scrum signed the agile manifesto, it is a common misunderstanding the implementing Scrum, will make you agile. As mentioned above, agile is a set of values and principles. In order to adopt an agile way of working, the members of the scrum team will need to work under these principles and beliefs. The implementation of Scrum can push you towards a more agile way of working but cannot do it alone. The remainder of this article will focus on what scrum is and when it is beneficial for software development. This will include an overview of the scrum method, followed by a section on application and limitations.

Team & Roles

Scrum Team

The implementation of Scrum will lead to a new way of organizing the staff in order to make sure the roles of the Scrum team can be fulfilled[6]. The definition of the Scrum team follows the Scrum guide (ref). A Scrum team is a small team of professionals, consisting of one Scrum Master, one Product Owner, and Developers, in total should they not exceed 10 individuals, if more people are working on the product then they should split into multiple teams. The team has no sub-teams or hierarchy and works towards the same product goal. A Scrum team is self-managed and has cross-functional roles and knowledge to make sure they have the skills to create business value from each increment delivered after each sprint [7].

Product Owner

The responsibility of the product owner is to maximize the value of the product developed by the Scrum team. The role as Product Owner is held by one person, in order to gain success with Scrum it is crucial that the decisions of the product owner are respected by the organization. The product owner has the responsibility for the following points[7]:

  • Effective managing, development, and prioritization of the product backlog
  • Clearly communicate product goal and product backlog items
  • Keep stakeholders informed and included as necessary
  • Execution of Sprint planning and Spring Review sessions

The product owner will often be the “middleman” between the business and developers and must be able to find compromises. Strong communication skills, negotiation skills, proactivity, diplomatic, and result-driven will often be favorable personality traits for a product owner [8].

Developers

The developers are the ones who will produce the real work of each sprint. Atlassian, a key tech provider for many software companies using Scrum, presents the typical skill-set of the developers, like design, UX, development/programming, testing, and deployment [9]. The developers hold the responsibility of estimating and planning the tasks for the sprint based on the sprint backlog. They make the definition of when a task can be considered “done”. Lastly, the developers are also accountable for daily adjustments of the sprint planning as they gain knowledge of the issues, in order to obtain the sprint goal [7].

Scrum Master

This role is not responsible for delivering on the task from the Sprint Backlog. The Scrum Master is there to help the team follow the Scrum practices and thereby increase the effectiveness of the team. This can also include working with the organization to understand how the scrum teams work and when the rest of the organization will see results. In order to support the team, the scrum master will often coach the team to master self-management, cross-disciplinary functions, solve challenges and impediments which can be obstacles to progress. The Scrum master will help the Product Owner as requested to find techniques and tools for effective product goal definition, management of the product backlog, and stakeholder collaboration. In addition, is the Scrum master involved with the rest of the organization to make sure they understand Scrum and the consequences of adoption. This will often include training and implementation of Scrum in the organization. Furthermore, the Scrum master will often be involved in conflicts or challenges between the stakeholders and the Scrum team [7].

Application

Project management as presented by the PMBOK standard[4] splits a project into 5 phases: Initiating, Planning, Executing, Monitoring & Controlling, and Closing. These phases can be compared to the way work is organized in the Scrum framework.

Considering the figure above, the initiating phase can be compared to the process that will happen regarding the Backlog. In this process will the Product Owner receive and gather inputs from the End-users, Customers, Team, and other relevant stakeholders. But instead of using this to create the full plan of the entire project, the product owner will prioritize them and find the most important. The product owner will then together with the development team being the planning phase for the upcoming sprint, here will the inputs be further refined and get a time estimate, this will also include a definition of a Sprint goal, the objective which the team aims to achieve during the work period. Hereafter will Executing process come, this will in Scrum terminology be considered the sprint. This is the part where the actual work will be completed, and the sprint goal is hopefully obtained – the scrum team are self-managed and will get the work done in the manner that works best for them. Considering the task of monitoring and controlling the progress will the Scrum team benefit from the manageable number of tasks, as they only plan work for a short period of time and secondly a part of the sprint planning included the task of estimating time for the task, which can be used to make a burndown chart of keeping track of expected progress for the team. Lastly is the closing phase of the project, this can be considered the part where the sprint review is performed, and the increment pushed to the end-users to create instant value. What then makes the true difference to working with scrum is then the continuous repetition of this cycle, as it is also illustrated in the figure, in order to constantly improve and keep on track with requirements and priorities from the customer. To gain a better understanding of the events and artifact, an explanation of each of them follow.

Artifacts & Events

Scrum Framework by Scrum.org

Sprint

A sprint is a time timeboxed period, within the sprint, the Scrum team completes their planned task and performs the reoccurring events in order to obtain the sprint goal. The length of the sprint is always the same, usually 2 weeks, but can vary between projects up to 4 weeks. The next sprint starts right after the previous was completed, which also means all events and activities are a part of the sprint. In order to create a clear direction from the beginning of the sprint, the sprint goal cannot be changed, and quality not decreased. If the sprint goal becomes obsolete during the sprint, the product owner has as the only one the power to cancel the sprint.

Sprint Planning

The Sprint planning is the first activity of the sprint. In accordance with the scrum guide, the sprint planning included 3 tasks that must be addressed and should be limited to 4 hours for a 2-week sprint.

  1. Definition of the sprint goal. The product owner will present how the product can increase value in the current sprint, this will be used as the outset for collaboration by the entire team, to define the sprint goal.
  2. The developers will in collaboration with the product owner select the items from the product backlog to include in the current sprint. This task included continuous refinement of the tasks, the definition of done, and time estimates, altogether this will make a more trustworthy estimate of what can be obtained in the sprint.
  3. The developers plan based on the chosen tasks from the product backlog, how they turn the task into valuable increments. This task is solely completed by the developers.

Definition of Done

It might seem like a rather simple question when something is done. But as presented by Atlassian, a team without a clear definition of done will often find themselves asking whatever a task is done? A clear definition will help the team to identify when a task is done and can be presented as an increment for review [10]

Sprint Backlog

During the sprint planning, the team has refined and made the definition of done for each of the tasks from the backlog prioritized for the sprint. These tasks are sometimes defined as user-stories and will be placed in the sprint backlog. The sprint backlog will be the overview of the user-stories there are to be completed during the sprint and should make it possible to fulfill the sprint goal.

Daily Scrum

This event is the only reoccurring event every day of the sprint. It is a short 15-minute meeting, often hold in the morning as a standup, with the goal of reducing complexity it should take place at the same place and time every day. The goal of the meeting is for the developers to share progress and possible obstacles. There are no formal instructions of the daily scrum, the important is that the format fits with your team: online, standup, chat, or tossing a ball – what works for you is the right choice. Many teams will have each developer present what they did yesterday, plans for today and whether they are blocked by anything.

Increment

Incremental deliveries vs One Final Delivery, inspired by Arijit Sarbagna, Dzone.com

At the end of the sprint the scrum team has in the optimal scenario completed all the tasks from the sprint backlog, even though this is not the case, the sprint will still be complete as the timebox is coming to an end. The tasks which have not been completed will have to become a part of the backlog and go through the prioritization phase again to make it to the backlog of the next sprint. The tasks which have resulted in changes, new features, or other relevant software updates to present for the stakeholders will be presented on the Sprint Review. Increments are a part of the agile way of working, where the focus is to make constant small improvements, in order to keep stakeholders informed and receive feedback as build. This can be seen as a process where features are added after the software is already taken into use, this is also known as Development/Continuous Integration. This is mainly used for software, but here illustrated with the example of car development. Where incremental updates will focus on adding features, but start focus will be to make a product that can drive. In traditional waterfall development, the focus will often be to finish the wheels, then the cabin, and so on. This might seem more effective, but have a high risk of not fulfilling the stakeholders' demand, as the solution cannot be adjusted while developed.

Sprint Review

The goal of this session is to inspect and review the results of the sprint. This is often done by presentations by the scrum team for stakeholders. During this review, the goal is to have a dialogue about the results and the value in regards to the overall product. In terms of gathering a strong sense of ownership and engagement of the development team, this session can be used as a form of a celebration of what has been achieved and should have a casual vibe.

Sprint Retrospective

This is the chance for the scrum team to reflect upon the last sprint. What went well and what would they like to do even better, this should hopefully lead to initiatives that can increase quality and effectiveness in the future sprints. The scrum guide suggests the results of the sprint are evaluated in regards to the individuals, interactions, processes, tools, and the Definition of Done. Some of these initiatives the team would like to change or implement can be added to the sprint backlog of the next sprint if required to achieve the result of the initiative.

Benefits of Scrum

The major advantage of using Scrum is also driven by adopting the agile values as presented earlier. The ability to see changes as making more business value and not trying to plan multiple years ahead just to make the plan change. Keeping short and intense sprints whit constant increments will make progress very visible and the process transparent as stakeholders are often included.

The level of risk following the progress comparing the Scrum and Waterfall framework during software development

Risk reduction is another benefit worth considering. Risk is often one of the major challenges of software development, the risk of developing the wrong thing due to misunderstanding, long planning horizons, and lack of review from stakeholders. This is sometimes referred to as Fail Fast, meaning that you might be working on the wrong thing, but then you will quickly learn that it is not what is needed and the “wasted” time will thereby be limited, ref(FAIL FAST). With the short sprints and the constant feedback, the risk will be greatly reduced, as illustrated in the figure.

Limitations

One of the main challenges with Scrum is the possibility of scaling. The advantage of being a small and agile team will sometimes be lost if the team grows to more than 10. Scaling up should therefore be done by having multiple teams. This can sometimes be difficult with the role of product owner and scrum master, the team to include multiple individual Scrum teams [11].


Annotated bibliography

The Scrum guide
The guide for Scrum written by Ken Schwaber and Jeff Sutherland. The guide is continuously updated, with the last update in 2020. The guide takes you through the roles, events, and artifacts you need to know in order to adopt Scrum.
Agile Manifesto
The Agile Manifesto is signed by 17 individuals frustrated with traditional software development, including Ken Schwaber and Jeff Sutherland the originators of Scrum. The agile manifesto includes 12 principles and 4 values, to reduce the challenges of software development by making it more agile.

References

  1. Scrumdesk: The history of Scrum https://www.scrumdesk.com/the-history-of-scrum-how-when-and-why/
  2. The New New Product Development Game by Hirotaka Takeuchi and Ikujiro Nonaka https://hbr.org/1986/01/the-new-new-product-development-game
  3. How to Kill the Scrum Monster https://doi.org/10.1007/978-1-4842-3691-8_1
  4. 4.0 4.1 Guide to the Project Management Body of Knowledge (PMBOK Guide) 6th edition
  5. Values of Agile Software Development https://agilemanifesto.org/
  6. Atlassian: What is Scrum? https://www.atlassian.com/agile/scrum
  7. 7.0 7.1 7.2 7.3 The 2020 Scrum Guide https://www.scrumguides.org/scrum-guide.html
  8. Advanz: Scrum Product Owner https://advanz.dk/blog/scrum-product-owner/
  9. Atlassian: Scrum Roles https://www.atlassian.com/agile/scrum/roles
  10. Atlassian: Scrum Artifacts https://www.atlassian.com/agile/scrum/artifacts
  11. Atlassian: Agile at Scale https://www.atlassian.com/agile/agile-at-scale
Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox