5 Whys of Scrum

20
Why should you use Scrum? Over 32% of traditional projects fail to meet time and budget. Agile is an alternative approach to software delivery. In 2010, Forrester Research recognized that agile is now mainstream 1 and Scrum is the leading universal agile framework. 234 Scrum is... Simple, a manager-friendly agile development framework Scalable, working for small start-ups and large distributed enterprises Widespread, used by over 50% of companies that implement agile 2 Proven to improve quality and productivity by 33% or more 3 !" $!" %!" &!" '!" (!!" ())* ())& ())' $!!! $!!$ $!!% $!!) +,-./0 12,../34/0 5677//0/0 Traditional IT project success rates. Standish Chaos Reports, 1995-2009 4 www.agile42.com/5whys 1 “Agile Software Development is Now Mainstream”, Jan 22, 2010, CIO Magazine 2 “Agile by the numbers: Survey finds more adoption, but age-old problems remain”, Oct 27, 2009, SearchSoftwareQuality 3 Percentage fewer failures in agile vs. traditional projects, 2010 IT Project Success Rates Survey Results, Ambysoft 4 Success rates for IT projects taken from the Standish Chaos report (1995-2009)

description

We often get asked why Scrum has only 3 roles, 3 artifacts and 3 ceremonies. In fact, our customers simply want to know why Scrum works. In these slides we try to explain the principles behind the prescriptions of Scrum, in the form of 5 Whys: Why Scrum? Why 3 Roles? Why 3 Artifacts? Why 3 Ceremonies? And Why agile engineering practices support Scrum?

Transcript of 5 Whys of Scrum

Page 1: 5 Whys of Scrum

Why should you use Scrum?Over 32% of traditional projects fail to meet time and budget. Agile is an alternative approach to software delivery. In 2010, Forrester Research recognized that agile is now mainstream1 and Scrum is the leading universal agile framework.2 3 4

Scrum is...• Simple, a manager-friendly agile

development framework• Scalable, working for small start-ups and

large distributed enterprises• Widespread, used by over 50% of

companies that implement agile2 • Proven to improve quality and

productivity by 33% or more3

!"#

$!"#

%!"#

&!"#

'!"#

(!!"#

())*# ())&# ())'# $!!!# $!!$# $!!%# $!!)#

+,-./0# 12,../34/0# 5677//0/0#

Traditional IT project success rates. Standish Chaos Reports, 1995-20094

www.agile42.com/5whys

1 “Agile Software Development is Now Mainstream”, Jan 22, 2010, CIO Magazine2 “Agile by the numbers: Survey finds more adoption, but age-old problems remain”, Oct 27, 2009, SearchSoftwareQuality3 Percentage fewer failures in agile vs. traditional projects, 2010 IT Project Success Rates Survey Results, Ambysoft4 Success rates for IT projects taken from the Standish Chaos report (1995-2009)

Page 2: 5 Whys of Scrum

What is Scrum?Agile Scrum teams focus on results not effort. Scrum is a principle-based framework for continuous learning that focuses on maximizing value delivery instead of effort.

The Scrum frameworkRequirements are taken from a prioritized Product Backlog and broken down into small features that can be delivered as working software during short development iterations, called Sprints.

Work is pulled from the Product Backlog into a Sprint Backlog for completion in the sprint by the Development Team. The outcome of a Sprint is a Deliverable that, ideally, can be released immediately after acceptance by the Product Owner at the Sprint Review meeting.

Why Scrum worksSelf-organizing teams in Scrum emerge because of core values:

•Full bandwidth communication

•Work commitment by selection•Delivering working

software•Actions guided by the big picture

www.agile42.com/5whys

Page 3: 5 Whys of Scrum

What is Agile?1Agile drives continuous improvement by repeatedly inspecting and adapting the working process.

The Agile approach• Works Empirically: Agile is an empirical,

principle-based approach for delivering software in a complex technical and business environment

• Reduces Complexity: Today’s business and technical environment changes rapidly; complexity is growing exponentially

• Handles Change: Developers solve increasingly difficult problems in a technology environment that is undergoing rapid change

Defined, process-driven systems, like waterfall, are ill-equipped to manage the dependencies and uncertainty created by complexity and change.

The volume of code in everyday products is increasing exponentially1

www.agile42.com/5whys

1 “Why Dinosaurs Will Keep Running the Auto Industry”, Harvard Business Review, June 2010

!"

#"

$"

%"

&"

'!"

#!!(" #!!)" #!'!"

!"#$%&'$()*+',$"-$./('0$"-$1"2'$3*/../"(045$6$7,"89$-",$1"*7.'8/%95$/($

:",2$;'&/1.'0$&60$1&6(<'2$

!"#"

$!"$#"%!"

&'()*+",-,"./(012)*(/"

34(/0+("%!$!"5'/6""

704)+08'*"9:;<(1="%!!>"9?@20;;"A(/B(6(;"

!"#$%&'(")*"+*,-.*/".')0*1&.%#2').&3*%*4"&53*%)5*%*6"#$").),**

"+*,-.*7.&6.5.(*89!2%((**:#'22'")*2').(*"+*6"5.;*

Page 4: 5 Whys of Scrum

How agile are you? • Do you use business value to prioritize

requirements? • Do you have cross-functional Development

Teams?• Do they deliver working software regularly?• Do you review the process at the end of

each iteration?• Are features small enough to be completed

in a short iteration?

What is Lean? Lean thinking is a principle-based approach with empirical inspect-and-adapt iterations instead of defined process steps. Since 2001 agile has been used to describe software development approaches based on the lean principles applied so effectively by Toyota.1 Agile is lean applied to software development.

Lean thinking• Muda - Waste: refers to any non-value adding

activity that a customer is unwilling to pay for. Lean companies passionately eliminate waste

• Muri - Process Overload: refers to the tendency to overload processes in the hope of achieving more. Lean thinking maximizes value creation over process utilization

• Mura - Uneven Flow: inconsistent flow can disrupt a system, creating inefficiencies and waste. Lean decreases lead time by smoothing flow through a system

www.agile42.com/5whys

1 Toyota used lean thinking in their manufacturing process to become the world’s largest car manufacturer

Page 5: 5 Whys of Scrum

Why are there just 3 roles?The Scrum framework relies on three peer-level management roles, whose mutually exclusive responsibilities lead to positively-reinforcing behaviors that stabilize the process. Combining responsibilities eventually leads to contradictory drivers or conflicts of interest. The three distinct roles allow people to focus on defined responsibilities with different objectives driving behavior.

• The Product Owner (PO) maximizes the return-on-investment (ROI) of the product, measured from idea conception to delivery to the paying customer

• The Scrum Master continually improves the development process, coaching the Scrum team to become more productive, improve quality and self-organize

• The Development Team manage the technical quality of the product by nurturing practices that reinforce shared code ownership

www.agile42.com/5whys

ROI

Process

Quality

Page 6: 5 Whys of Scrum

The Business Value Game1 is used to estimate relative value of high-level requirements:

• Prepare SMART2 requirements with support of stakeholders to focus discussion

• Convene a Product Board with all product stakeholders

• Estimate the relative value of each requirement by discussing and ranking them together

• Write user stories for requirements at the top of the backlog to deliver value as early as possible

The Product Owner - A value-driven role12The PO maximizes ROI by managing value delivered with fixed iteration lengths by a stable team. Value is managed by:• Product Vision: Combining a company’s

strategic goals with its customers’ needs to create a product vision•Prioritized Value: Creating high level requirements and prioritizing business needs by value with the help of the stakeholders•Groomed Backlog: Writing user stories to manage production risk•Release Planning: Predicting value earned per sprint and managing the

product backlog to maximize delivered value

www.agile42.com/5whys

1 agile42’s Business Value game for estimating relative value is described in full online2 SMART objectives are Specific, Measurable, Achievable, Relevant and Testable

Page 7: 5 Whys of Scrum

Facilitating ceremoniesFocus on value: Timebox meetings, prioritize discussion, coach participants to communicate effectively

Oversee the process• Understand Value: What is being delivered?

Make both delivered value and waste visible• Understand Individuals: Expose inter-team

issues and help the Team to resolve the issues?• Understand Process: Visualize the process

and focus on removing single largest bottleneck

The Scrum Master - Leading without authorityThe Scrum Master has no authority in the Scrum team. Influence is earned.He or she is a servant leader, facilitating the ceremonies and overseeing the Scrum process.

It is a coaching role, analyzing progress to focus on incremental improvement over time and guiding the Teams to learn from experience through effective retrospection.

Stand behind the team, not in front

www.agile42.com/5whys

Page 8: 5 Whys of Scrum

Striving for technical excellence• Share a common Definition of Done for maintainability• Use a Definition of Ready to prepare items in the backlog• Encourage collective code ownership• Build automated tests and integrate continuously• Make quality of your code transparent to the whole Team

Development Team - Writing working softwareAgile Development Teams measure progress through the delivery of working software.1 Effective agile Development Teams share three characteristics:

• They are cross-functional - all the skills required to build a complete production-ready product area represented in one Team

• They are small - from studies of team behavior, the optimum size for effective collaboration is 5-9 people; not too large so that communication becomes an issue, not so small that overhead is excessive

• They use an integrated development environment to create working, production-ready software within a Sprint, allowing merging and check-ins with automated tests on a regular basis

www.agile42.com/5whys

1 Agile Manifesto, Principle #7: Working software is the primary measure of progress

Page 9: 5 Whys of Scrum

Owner Ceremony PurposeProduct Owner Sprint Planning Use value to prioritize next sprint by:

• Presenting just enough user stories for the next sprint (or 2)• Guiding the Team on the purpose of the next sprints• Estimating and selecting user stories for the sprint backlog

Scrum Master Daily Scrum Inspect & adapt progress towards sprint goal by:

• Minimizing number of open user stories• Delivering done user stories before taking next story• Maintaining balance between quality and value delivery

Development Team

Sprint Review & Retrospective

Inspect & adapt product and process by:

• Reviewing user stories by viewing working software• Continually reviewing product against vision and sprint goals • Improving process incrementally by small prioritized steps

Why are there 3 ceremonies in Scrum?To help Teams deliver working software at the end of a Sprint, there are three regular, time-boxed ceremonies, each with a single purpose and owner.

www.agile42.com/5whys

Page 10: 5 Whys of Scrum

Sprint Planning Estimation & selection• The PO describes the sprint goal to give

context surrounding the stories• Each story is discussed with the Team, who

estimate relative effort• The Team select stories they will deliver within

a sprint

Task break down• Each story is broken down into the required

technical tasks by the Team

www.agile42.com/5whys

Limit risk of failureIn order to effectively plan releases and meet customer needs in terms of delivery schedule and feature sets, the PO needs to be able to predict the productivity of the Team over time.

These practices that help the PO to manage risk:

• Sizing stories so 6-10 stories fit into a sprint• Pulling, not pushing, stories from the backlog• Keeping a steady cadence or rhythm to sprint

length• Only accepting working, tested software• Working with a visible and shared Definition of

Done, what it means to complete a user story• Defining non-functional requirements implicit to

customer acceptance of the product

Page 11: 5 Whys of Scrum

Daily ScrumThe Team inform one another about what is working and what is not, and agree on how to

address issues that threaten to slow progress against the sprint goal.

A Daily Scrum uses 15 minutes in which each team member answers three simple questions:

1.What did you do yesterday?

2.What will you do today?

3.What is stopping you from delivering (more)?

The Daily Scrum is not a status report for a PO or stakeholder,

but is a forum for the Team to work more closely together.

Active participation is limited to the Team, with the Scrum Master facilitating;

others may observe and contribute only if asked to by the Team.

The Daily Scrum highlights things to watch for, and keeps the Team accountable to the sprint goal.

www.agile42.com/5whys

The Daily Scrum• Is short, time-boxed at 15 minutes• Is held around the task board to keep focus • Lets the Team inspect & adapt the plan for

the sprint• Exposes issues that may need the Team to

swarm around and solve

Page 12: 5 Whys of Scrum

Sprint Review & RetrospectiveThe last principle of the agile manifesto says “at regular intervals, the Team reflect on how to become more effective, then tune and adjust their behavior accordingly.” The Sprint Review is the ‘inspect’ part of the inspect & adapt process, in which the Team look at running software; the Retrospective is the ‘adapt’ part of the process, in which the Team make small changes to incrementally improve the product and the process.

Product improvementAs well as a product demonstration, the Team inspect & adapt the product as a whole, adapting practices and the product backlog as a result.

Based on current results, progress can be assessed and further investment planned.

Process improvementAfter a Sprint Review, the Scrum team inspect & adapt the process through a retrospective, allowing an agile team to incrementally improve the development process.

www.agile42.com/5whys

Running a RetrospectiveA Retrospective can be a challenging discussion. To keep focussed and effective:

• Gather individual feedback on post-its in short time boxes

• Balance positive and negative feedback from everyone

• Separate idea generation from evaluation• Prioritize ideas and select a few of the best

actions

Page 13: 5 Whys of Scrum

Why are there just 3 artifacts?The Scrum framework has developed over time, and through the incremental improvement central to all agile methods, waste has been stripped away.

The result? Just 3 core artifacts or tools necessary to govern Scrum:

• Product Backlog, with items prioritized by value; owned by the PO

• Sprint Backlog, sub-set of product backlog protected from change; owned by the Team

• Burndown Chart, visualization of work to be completed; owned by the Scrum Master

www.agile42.com/5whys

Page 14: 5 Whys of Scrum

Definition of ReadyUsed to determine when a user story or work item is ready to present to the Team, for example:

• Stories follow the INVEST mnemonic1

• Small enough that one Team can select 6-10 stories in a sprint

• At least 3-4 Acceptance Criteria

The PO’s Product Backlog1

The product backlog contains items, or business requirements, prioritized by relative business value.

The backlog consists of the Why (requirement) and the What (user stories). The How, the

technical tasks, is determined by the

Development Team.

Flexibility is maintained by using a just-in-time approach to breaking down the requirements. Requirements near

the top of the backlog are broken down into multiple user stories, with the goal of having enough prepared user stories for just the next 1-2 sprints.

www.agile42.com/5whys

1 User stories that are Independent, Negotiable, Valuable, Estimable, Small, Testable

Page 15: 5 Whys of Scrum

The Team’s Sprint Backlog 1The Sprint Backlog contains stories that will not change during the sprint, allowing the Team to focus on delivering the selected stories. Outside the Sprint Backlog, the PO can re-prioritize stories if needed.

A good Sprint Backlog contains:

• 6-10 stories the Team selected for the sprint• Just enough small tasks for the next few days

(to limit risk of waste)

The Scrum board• Visualizes the current activity in the Team• Helps Team limit open and incomplete stories • Highlights dependencies between tasks• Shows time committed to tasks outside the

sprint goal• Keeps focus, with ideally one activity or story

open at a time

Tools like Agilo1 help manage agile teams online, ideal for distributed teams

www.agile42.com/5whys

1 Agilo is an open-source agile management tool, ideal for distributed teams

Page 16: 5 Whys of Scrum

The Scrum Master’s Burndown Chart1The Burndown Chart shows work that still needs to be done, allowing the Scrum- Master to manage the Scrum framework.

The units used for the Burndown chart provide different information and levels of granularity:

• Completed User Stories, burning down User Story points, may show no change for days at a time• Completed tasks, burning down ideal hours, should change daily, but can also burn up if additional tasks

are uncovered and added to the backlog

Tools like Agilo1 can automate chart creation

Reading the Burndown Chart• Visualizes work to be completed (y-axis)• New tasks/stories move line up• Trend line shows ideal task/story burndown• Used by Scrum Master to focus Daily Scrum • Sudden gradient drop hints at possible

technical debt

www.agile42.com/5whys

1 Agilo is an open-source agile management tool, ideal for distributed teams

Page 17: 5 Whys of Scrum

Agile development principles• Eliminate waste: Automate any repetitive

task, like acceptance testing or product build• Regular, rapid feedback: make small

changes and test/integrate/build immediately• Integrate early: difficulty of integrating new

code grows exponentially with size of change• Code ownership: the Team develop code.

Work together, agree common standards • Emerge design: avoid over-engineering -

only design and build what is required today

Why do agile engineering practices help?The Scrum framework is a simple framework with 9 prescriptions: 3 roles, 3 ceremonies and 3 artifacts. These prescriptions help streamline the product definition and value creation, with a focus on the work definition and management practices; there are no technical practices.

Experience shows that effective Scrum teams need software engineering practices aligned with these management practices; short iterations delivering working software are not possible using traditional, big up-front design followed by long develop and test cycles.

Other agile methodologies have focussed more on the technical practices, and many successful Scrum teams adopt agile development practices like those described as part of the XP1 framework.

www.agile42.com/5whys

1 eXtreme Programming describes development practices such as pair programming, refactoring and continuous integration

Page 18: 5 Whys of Scrum

Building code ownershipSigns that a Team is building a culture of shared code ownership include:

• Knowledge sharing tasks on the task board not directly related to delivering a new feature

• Design and architecture decisions made with non-architects or designers in the Team

• Common use of pair programming to share knowledge

• Shared, visible and continually updating Definition of Done for user stories

• Selection of user stories outside area of expertise of a Team (and successful delivery)

Encouraging code ownershipCode ownership is the principle by which the Team take responsibility for the technical quality of the product. It means that the whole Team share responsibility for the code across the whole system.

Shared code ownership builds in redundancy, increases general knowledge of the system without sacrificing specialist expertise, increases quality and reduces time wasted chasing bugs.

Code ownership means:

• A common understanding of coding standards and expectations

• Open communication between developers• Building and sharing knowledge • Practices that support rebuilding and emerging

design

www.agile42.com/5whys

Page 19: 5 Whys of Scrum

Increase quality by regular, rapid feedbackThe cost of debugging increases exponentially with the length of time after a bug is introduced; the earlier a bug is found, the cheaper and easier it is to solve. An underlying principle of agile development is to get feedback quickly and often to uncover defects early. Many agile development practices focus

on decreasing the time taken to get feedback. This helps eliminate waste and build quality in.

Agile practices focus on regular, rapid feedback.

• Test-driven development builds a test framework before the code is written

• Pair programming provides feedback as the code is written

• Automated function or acceptance testing feeds back as the features grow

• Continuous integration ensures functioning builds and tests integration

Regular, rapid feedback increases code quality by:

• Encouraging small, incremental code changes

• Discouraging the ‘works on my machine’ mentality

• Making merging easier• Visualizing code quality and shared coding

standards• Focusing Team on writing working software• Validating that the product is shippable

www.agile42.com/5whys

Page 20: 5 Whys of Scrum

Refactoring legacy applicationsYou don’t need 90% coverage to refactor:

• Build tests as you code• Preferably write tests before you code• Write code that does only what you need it to • When you use legacy code, only test legacy

functionality exposed for the new feature• Start with specific cases, and refactor to add

generalization or modularity

Continually improve the designDefining architecture upfront seems to be a good idea. The architect must think through the design, and can design for future growth.

But this misunderstands the purpose of architecture; it is a service to those that develop the product, maximizing the Team’s ability to develop while meeting the business needs for the product in terms of non-functional requirements like performance under load or number of concurrent users.

Better to only design for what is right in front of you. Provide a service to the Development Team that makes development smooth, quick and efficient. When this is not enough, extend or modify the architecture.

This serves two purposes. Obviously, it reduces waste. Only the architecture that

is needed is built. But it also creates a continually improving environment in which the architecture can be modified and optimized to its current purpose, rather than stretched and squeezed to meet unplanned needs.

www.agile42.com/5whys