You are on page 1of 83

The Agile Manifesto 2001

We are uncovering better ways of developing


software by doing it and helping others do it.
Through this work we have come to value:

Individuals and interactions over processes and tools


Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan

That is, while there is value in the items on
the right, we value the items on the left more.

AGILE

Scrum

Test-Driven
Development
(TDD)

eXtreme Programming
(XP)

Crystal DSDM FDD
and more

SCRUM

The Essence of Scrum


Sprint

Produce

Plan

Transparency

Inspect
Adapt

The Foundations of Scrum



There is a cross-functional Dev Team that is stable and 100% dedicated.
The Dev Team decides how to get the work done. It is self-organizing.
The Dev Team plans its Sprints one at a time, at the start of each Sprint.
The Product Owner decides what should be produced.
The Dev Team decides how much it can produce in a Sprint.
The Dev Teams target in a Sprint is shared, clear, and does not change.
The Dev Team tries to achieve its target, but it may over-deliver or under-deliver, based on how the Sprint plays out.
Each Sprint is a timebox its length is never extended.
Each Sprint produces a potentially shippable product in other words, thoroughly tested, defect-free, and done.
There is a Denition of Done that species what done means.
At the end of each Sprint, we inspect and adapt product and process.

Development Starts

Sprint 1
Sprint 2
Sprint 3
Sprint 4
Sprint 5
Sprint 6
Sprint 7
Sprint 8

Release Date

Sprint 9
Sprint 10

Feature
Feature
Feature
Feature
Feature
Feature
Feature
Feature
Feature

Development Starts

Sprint 1
Sprint 2
Sprint 3
Sprint 4
Sprint 5
Sprint 6
Sprint 7
Sprint 8

Release Date

Sprint 9
Sprint 10

Feature
Feature
Feature
Feature
Feature
Feature
Feature
Feature
Feature

Development Starts

Sprint 1
Sprint 2
Sprint 3
Sprint 4
Sprint 5
Sprint 6
Sprint 7
Sprint 8

Release Date

Sprint 9
Sprint 10

Development Starts

Sprint 1
Sprint 2
Sprint 3
Sprint 4
Sprint 5
Sprint 6
Sprint 7
Sprint 8

Release Date

Sprint 9
Sprint 10

Done Coded, Tested,  No Defects Remaining


Development Starts

Sprint 1
Sprint 2
Sprint 3
Sprint 4
Sprint 5
Sprint 6
Sprint 7
Sprint 8

Release Date

Sprint 9
Sprint 10

Done Coded, Tested,  No Defects Remaining


Development Starts

Sprint 1
Sprint 2
Sprint 3
Sprint 4
Sprint 5
Sprint 6
Sprint 7
Sprint 8

Release Date

Sprint 9
Sprint 10

Done Coded, Tested,  No Defects Remaining


The Relative Value of Different Features



Features 1-5
Features 6-10
Features 11-15
Features 16-20
Features 21-25
Features 26-30
Features 31-35
Features 36-40
Features 41-45
Features 46-50
Features 51-55
Features 56-60
Features 61-65
Features 66-70
Features 71-75
Features 76-80
Features 81-85
Features 86-90
Features 91-95
Features 96-100
Feature 1
Feature 2
Feature 3
Feature 4
Feature 5
Feature 6
Feature 7
Feature 8
Feature 9

Typical Large-Scale Software Application


100%

% of Total Business Value


50%
Completed

Development Starts

Sprint 1
Sprint 2
Sprint 3
Sprint 4
Sprint 5
Sprint 6
Sprint 7
Sprint 8

Release Date

Sprint 9
Sprint 10

SCRUM

ScrumMaster

Input from End-Users,
Customers, Team and Other Stakeholders

The Scrum Team



Product Owner
Dev Team

8
9
10
11
12

Product Backlog

SCRUM

Responsible for doing the work
7 +/- 2 People
Input from End-Users,
Cross-functional
Customers, Team and Self-organizing
Other Stakeholders
ScrumMaster

Product
Backlog
Grooming
Daily Scrum Meeting and Artifacts Update

Responsible for guiding the PO and Dev Team to achieve optimal results with Scrum
3 Ps:
P rocess Owner
1-4 Weeks
-Teaches Scrum to everyone
Product Owner
Dev Team
Review
-Coaches everyone on how to use Scrum to deliver maximum value and quality
-Enforces the rules of Scrum
Responsible for maximizing the value of the -Acts as a change agent for organization
Potentially work done by the Dev Team
No Changes
P roblem Solver
Shippable 8
in Duration or Sprint Owns vision and goals / ROI of the work
9
Product
-Helps remove Goal
and assists the Dev blocks 10
Backlog
Increment
Final decisionmaker on content and order 11
Team and Product Owner in any way of12
Product Backlog (the list of items the they can, to achieve the best results
needed to successfully achieve goals / ROI)
Product P rotector
Backlog
Retrospective
Owns the date and scope of the Release
-Protects the Dev Team from disruption

Sprint

SCRUM

Developers = Architects, Coders, Testers, Business Analysts, UI Designers, Doc Writers, etc.
ScrumMaster
Role might be played by a member of the Dev Team or  the ex-Project Manager.  We avoid having someone with a management title in this role.
Role might be played by Customer, Customer Representative, Product  Manager, Product Marketing Manager, Program Manager, Project Manager.

Product Owner

Dev Team

SCRUM

Input from End-Users,
Customers, Team and Other Stakeholders

Product
Backlog
Grooming

Daily Scrum Meeting


ScrumMaster

Sprint

Product Owner
Ordered List of Whats Needed
Dev Team
Team Selects
How Much To Target
Sprint Planning
Meeting

Detailed
Plan for Sprint

4 Weeks or Less

Review

Sprint Backlog

No Changes

To Goal or Timebox

Potentially Shippable
Increment

Retrospective
Product Backlog

SPRINT BACKLOG
Writing Requirements in Scrum

Blow up 10 Balloons
Measure Radius of All 10 Balloons
Calculate Volumes of All 10 Balloons

User Stories

User Stories are an Agile approach to requirements

Widely used by Scrum Teams
Not required, but highly recommend

What is a User Story?



A User Story is a short, plain-language description of the needs of a user, centered on what they need or want to do, and why
As a <type of user>, I want <some goal> so that <some reason>.

3 Cs: Card, Conrmation, Conversation



CARD

As a Customer who has booked a ight,


I want to cancel my booking, So that I can receive a refund and make other plans

CONFIRMATION

Verify that ticket price minus applicable cancellation fee is refunded to credit card
Verify that 10% cancellation fee is deducted from refunded amount for economy tickets
Verify that no fee is deducted from refunded amount for business class tickets
Verify that conrmation email is sent
Verify that seat reservation is released

3 Cs: Card, Conrmation, Conversation



The card does not include all the detailed information needed by the Dev Team
intentionally! This is because we want to force a conversation between the Dev Team and Product Owner
This conversation begins at the start of the project

Dev Team and Product Owner might spend a day talking through the initial list of User Stories

This conversation continues during each Sprint



During Sprint Planning Meeting
Day-by-day during the Sprint
During Product Backlog Grooming
During Sprint Review

User Stories

Everyone writes User Stories. The Product Owner decides which to add to the Product Backlog, and what the priority should be.
At the beginning of a project, a Story Writing workshop is typically held. The Product Owner creates the initial Product Backlog from this.
New User Stories are written during the project and added to the Product Backlog, as new needs appear.
Large Stories are called Epics. Epics are broken down into smaller stories as they move up the Product Backlog, and get closer to being worked on.

SCRUM

Input from End-Users,
Customers, Team and Other Stakeholders

Product
Backlog
Grooming

Daily Scrum Meeting


ScrumMaster

Sprint

Product Owner
Ordered List of Whats Needed
Dev Team
Team Selects
How Much To Target
Sprint Planning
Meeting

Detailed
Plan for Sprint

4 Weeks or Less

Review

Sprint Backlog

No Changes

To Goal or Timebox

Potentially Shippable
Increment

Retrospective
Product Backlog

Product Backlog Grooming



Each Sprint, the Dev Team and Product Owner together look ahead to the upcoming 2-3 Sprints worth of Product Backlog
The Dev Team and Product Owner split large Product Backlog Items into smaller pieces
Small enough that 1-2 people could nish in 2-3 days
The Dev Team gets a more detailed understanding of the upcoming Product Backlog Items, by asking a lot of questions
This enables the Dev Team to enter Sprint Planning with a good understanding of the items at the top of the Product Backlog
Roughly 5-10% of each Sprints working hours are spent on Product Backlog Grooming (~3 hours for a 2-week Sprint)
The ScrumMaster organizes and facilitates this activity

SCRUM

Input from End-Users,
Customers, Team and Other Stakeholders

Product
Backlog
Grooming

Daily Scrum Meeting


ScrumMaster

Sprint

Product Owner
Ordered List of Whats Needed
Dev Team
Team Selects
How Much To Target
Sprint Planning
Meeting

Detailed
Plan for Sprint

4 Weeks or Less

Review

Sprint Backlog

No Changes

To Goal or Timebox

Potentially Shippable
Increment

Retrospective
Product Backlog

Sprint Planning Meeting



Conducted by the Dev Team, the Product Owner, and the ScrumMaster together
Often conducted in 2 parts:

Part 1 Dev Team decides how much they are going to target
Part II Dev Team creates a plan for how they are going to deliver it

Popular Approaches to deciding how much to target:


Velocity-based


Once a Dev Team has a stable history of how much Product Backlog they can complete in a Sprint, they set their target based on their recent results

Commitment-based


Dev Team estimates its capacity for work during the Sprint (in hours or days, for example), then targets as many Product Backlog items as they have capacity for

Work Time Available



Name
Days in the Sprint
Hours per Day

Total Hours in the Sprint

Amitabh! Shahrukh! Aishwarya! Salman! Priyanka!


Mon

Sprint Planning

9! 9! 6! 9! 9!
Fri
4

day

Review and Retrospective

! ! ! ! 3! Total

5 5 5 5

Tues
Weds
Thurs
1
6
2
7
3
8

50! 50! 33! 50! 27! 210 !

day

Work Time Available



Name
Days in the Sprint
Hours per Day

Total Hours in the Sprint

Amitabh! Shahrukh! Aishwarya! Salman! Priyanka!

9! 9! 6! 9! 9!

6! 6! 6! 6! 5! Total

54! 54! 36! 54! 45! 240 ! -15! -15!

Buffer (5-10%)! Product Backlog Grooming (5-10%)!

Total Work Time Available in the Sprint! 210!

Available Time in Sprint = [your number goes here]


Allocated so far = 0
minutes

Not Started
In Progress
Done

Product Backlog

Priority

Description

Make a cube with sides of 10cm.
Make a square-based pyramid. The base should be 10cm square, and the sides should be 15cm. Attach to the top of item 1.
Make a triangular prism. All the sides of the prism should be 6cm. Attach to the top of item 3, and then attach both to the side of item 1.
Make a hexagonal prism. Each rectangular side should 4cm wide by 12cm long. After completing it, stand it upright.
Make a triangular pyramid. Each side should be 12cm. Attach it to item 5.

6
6
6
4
10
10
10

1
2
3
4
5

15

15

10

10

12

12

12

12

Available Time in Sprint = 54 minutes


Allocated so far = 16
minutes

Product Backlog Item #1

Make 10cm cube


Not Started

Get cardboard

In Progress

Done

1

Cut out the six squares

Draw six 10x10cm squares


Total: 16 mins

Tape squares together


Doublecheck size and quality


Product Backlog

Priority

Description

Make a cube with sides of 10cm.
Make a square-based pyramid. The base should be 10cm square, and the sides should be 15cm. Attach to the top of item 1.
Make a triangular prism. All the sides of the prism should be 6cm. Attach to the top of item 3, and then attach both to the side of item 1.
Make a hexagonal prism. Each rectangular side should 4cm wide by 12cm long. After completing it, stand it upright.
Make a triangular pyramid. Each side should be 12cm. Attach it to item 5.

6
6
6
4
10
10
10

1
2
3
4
5

15

15

10

10

12

12

12

12

Available time in Sprint = 54 minutes


Allocated so far = 35
minutes

Product Backlog Item #1

Make 10cm cube


Not Started

Get cardboard

In Progress

Done

1

Cut out the six squares

Draw six 10x10cm squares


Total: 16 mins

Product Backlog Item #2

Tape squares together


Doublecheck size and quality


Make Square-based Pyramid


2

Draw one 10x10cm square

Draw four 10x15x15 triangles


Cut out pieces

Total: 19 mins

6

Doublecheck size and quality

Tape pieces together


BURNDOWN CHART!
85! 80! 75! 70! 65! 60! 55! 50! 45! 40! 35! 30! 25! 20! 15! 10! 5! 0!

TOTAL MINUTES OF WORK LEFT TO DO!

50

Initial" Estimate!

Day 1!

Day 2!

Day 3!

Available time in Sprint = 54 minutes


Allocated so far = 50 minutes

Product Backlog Item #1

Make 10cm cube


Not Started

Get cardboard
Draw six 10x10cm squares

In Progress

Done

Starting SPRINT Sprint


the BACKLOG

Blow up 10 Balloons
Measure Radius of All 10 Balloons
Calculate Volumes of All 10 Balloons

Available time in Sprint = 54 minutes


Allocated so far = 50 minutes

Product Backlog Item #1

Make 10cm cube


Not Started

Get cardboard

In Progress

Pete
1

Get cardboard and tape

Done

Pete
1

Cut out the six squares

Draw six 10x10cm squares


Total: 16 mins

Product Backlog Item #2

Tape squares together


Doublecheck size and quality


Make Square-based Pyramid


2

Draw one 10x10cm square
Draw four 10x15x15 triangles

Pete
6

Cut out pieces

Draw four 10x15x15 triangles


Pete
6

Total: 19 mins

6

Doublecheck size and quality

Tape pieces together


SCRUM

Input from End-Users,
Customers, Team and Other Stakeholders

Product
Backlog
Grooming

Daily Scrum Meeting


ScrumMaster

Sprint

Product Owner
Ordered List of Whats Needed
Dev Team
Team Selects
How Much To Target
Sprint Planning
Meeting

Detailed
Plan for Sprint

4 Weeks or Less

Review

Sprint Backlog

No Changes

To Goal or Timebox

Potentially Shippable
Increment

Retrospective
Product Backlog

Daily Scrum Meeting



Goal

Enable Dev Team to update each other daily
Make all blocks visible to SM and entire Dev Team daily

Every day, at an agreed time and place,  Dev Team stands in a circle and reports 3 things

What did I do since the last Daily Scrum Meeting?
What will I do by the next Daily Scrum Meeting?
What is blocking me?

15 minutes maximum
During meeting: everyone listens, no discussion
After meeting is done: discussion as needed
Product Owner can attend, but mustnt interfere
After meeting, ScrumMaster helps with blocks

Product Backlog Item #1

Make 10cm cube


Not Started

In Progress

Ravi
3
2

Draw six 10x10cm squares

Done

Get cardboard

Pete
1

Tape squares together


Doublecheck size and quality

Priya
5
3

Cut out the six squares


Product Backlog Item #2

Make Square-based Pyramid


2

Draw four 10x15x15 triangles
Draw one 10x10cm square

Pete
8
Arun
1
6
2

Cut out pieces
Tape pieces together

6

Doublecheck size and quality

Product Backlog Item #3

Make Cylinder

2

Draw shape

Get cardboard and tape


Product Backlog Item #1

Make 10cm cube


Not Started

In Progress

Ravi
3
2

Draw six 10x10cm squares

Done

Get cardboard

Pete
1

Tape squares together


Doublecheck size and quality

Priya
5
3

Cut out the six squares


Product Backlog Item #2

Make Square-based Pyramid


2

Draw four 10x15x15 triangles
Draw one 10x10cm square

Total = 42
Cut out pieces

Pete
8
Arun
1
6
2

6

Doublecheck size and quality

Tape pieces together


Product Backlog Item #3

Make Cylinder

2

Draw shape

Get cardboard and tape


BURNDOWN CHART!
85! 80! 75! 70! 65! 60! 55! 50! 45! 40! 35! 30! 25! 20! 15! 10! 5! 0!

TOTAL MINUTES OF WORK LEFT TO DO!

Initial" Estimate!

Day 1!

Day 2!

Day 3!

SCRUM

Input from End-Users,
Customers, Team and Other Stakeholders

Product
Backlog
Grooming

Daily Scrum Meeting


ScrumMaster

Sprint

Product Owner
Ordered List of Whats Needed
Dev Team
Team Selects
How Much To Target
Sprint Planning
Meeting

Detailed
Plan for Sprint

4 Weeks or Less

Review

Sprint Backlog

No Changes

To Goal or Timebox

Potentially Shippable
Increment

Retrospective
Product Backlog

Sprint Review

Goal: Inspect and Adapt the Product
Collaborative meeting between the Product Owner, Dev Team, ScrumMaster, stakeholders
Together we get hands on with what the Dev Team has produced in the Sprint

We inspect the quality, and whether it is done
We inspect whether it truly serves customer needs
We try to nd improvements to make in the future (Product Owner puts these on the Product Backlog)

Recommendation: Get real-world customers or end-users to attend and give hands-on feedback

SCRUM

Input from End-Users,
Customers, Team and Other Stakeholders

Product
Backlog
Grooming

Daily Scrum Meeting


ScrumMaster

Sprint

Product Owner
Ordered List of Whats Needed
Dev Team
Team Selects
How Much To Target
Sprint Planning
Meeting

Detailed
Plan for Sprint

4 Weeks or Less

Review

Sprint Backlog

No Changes

To Goal or Timebox

Potentially Shippable
Increment

Retrospective
Product Backlog

Sprint Retrospective

Goal: Inspect and Adapt Our Process
Collaborative meeting between the Product Owner, Dev Team, and ScrumMaster
We talk about what we experienced and observed during the Sprint, both good and bad
We create a plan of action for improving in the next Sprint
Probably the single most important practice in Scrum. We do this every Sprint!

Start!
Start getting a better understanding of the Product Backlog Items during Sprint Planning! Start doing more communication between Dev Team and Product Owner during the Sprint! Start doing the Daily Scrum Meeting at the beginning of the day, instead of the end of the day!

Stop!
Stop waiting until the end of the Sprint to begin integration testing! Stop allowing changes to our target during the middle of the Sprint! Stop sacrificing quality just to hit our target during the Sprint! Stop interrupting each other during the Daily Scrum Meeting!

Continue!
Continue the good teamwork and positive attitude! Continue putting a little extra buffer in our plan for each Sprint! Continue inviting endusers to the Sprint Review, to get their feedback! Continue using the task board on the wall!

SPRINT BACKwith LOG


Getting Started with Scrum

Getting Started with Scrum


ScrumMaster teaches Scrum to everyone and assigns the Scrum roles
Product Owner communicate the vision and goals of the Release
Product Owner leads the creation of the Product Backlog (with lots of input)
Dev Team does high-level size estimation of the Product Backlog
Product Owner does initial prioritization of the Product Backlog (with lots of input)
Release Planning Meeting to estimate release date and budget
Dev Team sets up their development and test environments
Dev Team does initial high-level design and architecture (just enough to get started)
Dont forget all of the above will evolve during project!

Development Start

Getting Started

Release Date

Sprint 1
Sprint 2
Sprint 3
Sprint 4
Sprint 5
Sprint 6
Sprint 7
Sprint 8
Sprint 9
Sprint 10

Time

The Denition of Done SPRINT BACKLOG


and Getting to Done

Blow up 10 Balloons
Measure Radius of All 10 Balloons
Calculate Volumes of All 10 Balloons

The Denition of Done



D.o.D. denes what it means for a Product Backlog Item to be Done (=potentially shippable) at the end of a Sprint

Our Teams De nition of Done


Product Backlog Item is done at end of Sprint if: Code complete Code reviewed Unit Tested Integration Tested Acceptance Tested System Docs and User Docs updated No Priority 1 or Priority 2 defects remaining

Product Owner and Team create D.o.D. before rst Sprint


Can be changed, based on Product Owner and Team decision
There may be Product Backlog Items that are outside the D.o.D.

For example, Investigate Performance Problem needs its own D.o.D.

Features A-E Feature A


INITIAL DESIGN

DESIGN CODE TEST

DESIGN CODE TEST

Feature B

Looking Inside One Sprint

DESIGN CODE TEST

Feature C

DESIGN CODE TEST

Feature D

DESIGN CODE TEST

Feature E

FINAL TEST AND POLISH

SPRINT PLANNING

WORKING

REVIEW AND RETROSPECTIVE

Team Zebra is doing a 2-week Sprint and have committed to Product Backlog Items A, B, C, D, E

Large-Scale and SPRINT BACKLOG


Distributed Scrum

Blow up 10 Balloons
Measure Radius of All 10 Balloons
Calculate Volumes of All 10 Balloons

Scaling Scrum

50 People

(Architects, Coders, Testers, Analysts, UI Designers, Technical Writers, etc.)

Scaling Scrum

Team A

Team B

Team C

Team D

Team E

Scaling Scrum

Feature Teams

Team A

(Designers, Coders,
Testers, etc.)

Team B

(Designers, Coders,
Testers, etc.)

Team C

(Designers, Coders,
Testers, etc.)

Team D

(Designers, Coders,
Testers, etc.)

Team E

(Designers, Coders,
Testers, etc.)

Cross-Functional
Cross-Functional
Cross-Functional
Cross-Functional
Cross-Functional

Scaling Scrum

1
2
3
4
5
6
7
8
9
10
11
12
13
Feature A
Feature B
Feature C
Feature D
Feature E
Feature F
Feature G
Feature H
Feature I
Feature J
Feature K
Feature L
Feature M

Team A

(Designers, Coders,
Testers, etc.)

Team B

(Designers, Coders,
Testers, etc.)

Team C

(Designers, Coders,
Testers, etc.)

Team D

(Designers, Coders,
Testers, etc.)

Team E

(Designers, Coders,
Testers, etc.)

Cross-Functional
Cross-Functional
Cross-Functional
Cross-Functional
Cross-Functional

Scaling Scrum

1
2
3
4
5
6
7
8
9
10
11
12
13
Feature A
Feature B
Feature C
Feature D
Feature E
Feature F
Feature G
Feature H
Feature I
Feature J
Feature K
Feature L
Feature M

Team A

(Designers, Coders,
Testers, etc.)

Team B

(Designers, Coders,
Testers, etc.)

Team C

(Designers, Coders,
Testers, etc.)

Team D

(Designers, Coders,
Testers, etc.)

Team E

(Designers, Coders,
Testers, etc.)

Cross-Functional
Cross-Functional
Cross-Functional
Cross-Functional
Cross-Functional

Scaling Scrum

Chief Product Owner

Product Owner

Product Owner

Product Owner

Team A

(Designers, Coders,
Testers, etc.)

Team B

(Designers, Coders,
Testers, etc.)

Team C

(Designers, Coders,
Testers, etc.)

Team D

(Designers, Coders,
Testers, etc.)

Team E

(Designers, Coders,
Testers, etc.)

Cross-Functional
Cross-Functional
Cross-Functional
Cross-Functional
Cross-Functional

During the Sprint


Scrum of Scrums

Daily Meeting of Team Representatives
Coordination, Dependencies Mgt, Block Surfacing

Team A

Team B

Team C

Team D

Team E

Project Growth

S P R I N T

S P R I N T

S P R I N T

S P R I N T

S P R I N T

S P R I N T

S P R I N T

Dependencies: Day-to-Day

Make direct team-to-team communication as easy as possible for everyone on the project
Use the Scrum-of-Scrums actively
Make sure all teams have some slack (extra buffer) in every Sprint, to be able to help each other

Dependencies: Backlog-Level

Team A

Backlog Item #1

Team B

Identify the dependency before Sprint Commitment is made


Then, either
Product Owner A reduces priority of #1 or
Product Owner B increases priority of #18 or
Product Owner A shifts #18 to Team A Product Backlog and Team A builds it or
Team A uses mock object in place of #18, and replaces with actual #18 later

Backlog Item #18


Product Backlog

Product Backlog

Distributed Scrum Practices



Model 1: Product Owner in US, Dev Team in India
ScrumMaster should be located with Dev Team in India
Start with short Sprints (2 weeks or less)
Dev Team does Daily Scrum during India business hours
After Daily Scrum, ScrumMaster emails list of blocks to the Product Owner, for assistance clearing
All real-time meetings between Dev Team and Product Owner should be visual, not just audio
1-2x per week real-time call for Product Owner and Dev Team
Product Owner travels to India for start of rst Sprint

Distributed Scrum Practices



Model 2: Dev Team split between multiple locations
4 team-members in India, 4 team-members in Europe
To be effective, team formation must occur
Ideally, colocation for rst Sprint
Ongoing ambassadorship
Multiple forms of continuous live communication
If you cant make this investment, may be better to organize them as two different Scrum teams
Daily Scrum
Live via webcam if timezones overlap, otherwise try cameraphone video recording
Scrum Artifacts (Sprint Backlog, Burndown Chart) done electronically, in a shared location

Scrum Tools

There are a range of software tools available for Scrum Teams to manage their Scrum information
Enterprise tools

VersionOne, Rally, ScrumWorks, Mingle, Greenhopper for Jira

Open-source

X-planner

Lightweight tools

ScrumNinja and BananaScrum

Bear in mind that there are pros and cons, costs as well as benets, when using these tools
The most successful self-organization tends to occur when Dev Teams are using information radiators

SPRINT BACKLOG
Release Estimation in Scrum

Blow up 10 Balloons
Measure Radius of All 10 Balloons
Calculate Volumes of All 10 Balloons

Team Alpha
1 1 1 2 2 2 3 1 1 1 1 2 2 8 Sprint 2 1 1 1 1 1 2 2 2 3

Sprint 1

Sprint 3

12 Points
of size

16 Points
of size

14 Points
of size

Average of 14 Points per Sprint Velocity

The Product Backlog



Priority 1 2 3 4 5 6 7 8 9 10 11 12 Description Feature A Feature B Feature C Feature D Feature E Feature F Feature G Feature H Feature I Feature J Feature K Feature L Size (to build) 3 1 3 5 1 8 3 5 2 3 1 5

Team Alpha
1 1 1 2 2 2 3 1 1 1 1 2 2 8 Sprint 2 1 1 1 1 1 2 2 2 3

Sprint 1

Sprint 3

The Product Backlog



Priority 1 2 3 4 5 6 7 8 9 10 11 12 Description Feature A Feature B Feature C Feature D Feature E Feature F Feature G Feature H Feature I Feature J Feature K Feature L Size (to build) 3 1 3 5 1 8 3 5 2 3 1 5

The Product Backlog



Priority 1 2 3 4 5 6 7 8 9 10 11 12 Description Feature A Feature B Feature C Feature D Feature E Feature F Feature G Feature H Feature I Feature J Feature K Feature L Size (to build) 3 1 3 5 1 8 3 5 2 3 1 5

Total = 40 points Velocity = 14 points Time to complete = 40/14 = 3 Sprints If Sprints are 2 weeks each, total time required is: 3 x 2 = 6 weeks If cost per Sprint is $15K, total cost is: 3 x $15K = $45K

Many Scrum tems use Planning Poker to estimate the size of Product Backlog Items
Size = Effort + Complexity + Uncertainty
The whole team estimates together
If actual team is not yet selected, then get a typical team to do it, and be sensible: add extra buffer to the nal plan
Everyone estimates overall size of the item (not just their part of the work)
ScrumMaster facilitates (and joins in the estimation if they will be doing work too)
Product Owner should be available to clarify requirements

Estimating Release Date and Budget



Dev Team does high-level size estimation of Product Backlog

Using Planning Poker, for example

Dev Team estimates their velocity



Using either past history, by doing a Sprint, or by doing a Sprint Planning Meeting. This is a forecast, not a promise.

Product Owner uses the above data to estimate a realistic date for release

If date turns out to be too optimistic, Product Owner will have to either remove scope from the Release, or move the Release date

Product Owner decides how much buffer to add, to account for uncertainty and risk

Buffer for Uncertainty (for example: 15%)
Buffer for Improvement and Rework (for example: 10%)
Many Dev Teams also need a Pre-Release Sprint (to go from Potentially Shippable to actually shipped)

Release Date

Sprint
Sprint
Sprint
Sprint
Sprint
Sprint
Sprint
Sprint
Sprint
Pre-Release Sprint
Sprint

Final Hardening and Release Preparation


Estimating Release Date and Budget



Dev Team does high-level size estimation of Product Backlog

Using Planning Poker, for example

Dev Team estimates their velocity



Using either past history, by doing a Sprint, or by doing a Sprint Planning Meeting. This is a forecast, not a promise.

Product Owner uses the above data to estimate a realistic date for release

If date turns out to be too optimistic, Product Owner will have to either remove scope from the Release, or move the Release date

Product Owner decides how much buffer to add, to account for uncertainty and risk

Buffer for Uncertainty (for example: 15%)
Buffer for Improvement and Rework (for example: 10%)
Many Dev Teams also need a Pre-Release Sprint (to go from Potentially Shippable to actually shipped)

Release Backlog

Item # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Product Backlog Item As an Administrator or Employee, I want to go to the Home Page and type my login name and password, so that I can gain access to the Dashboard Page. As an Employee, I want to submit a leave request to my manager, so I can find out whether I have permission to take one or more days of leave. As an employee who has other employees reporting to me, I want to receive an email to inform me that a leave request has been filed, so that I can approve or deny it in a timely manner. As an employee, I want to be able to see the unused vacation, personal, and sick leave I currently have, so that I can plan when to take leave and how much Im entitled to. As an employee, I want to be able to review my pending leave requests, so that I can see which requests have been approved, and which are pending review by my manager. As an Administrator or Employee, I want to click the Forgot Password link on the home page, enter my email address, and have a new password generated and sent to me, so I can log into the system. As an Administrator, I want to be able to modify the personal details (for example, name, or manager, or date of hire) for a particular employee, so that I can keep their information up-to-date and correct any errors. As an Administrator, I want to have a backup of the system made nightly, so that in the event of a crash or other problem, the recent days worth of data can be restored. As an Administrator, I want to create a new Administrator account for another person, so that they have the necessary permissions within the system. As an Administrator, I want to set up a new Employee account for another person, so they can use the system to manage their leave requests and approvals. As an Administrator, I want to be able to modify the system-wide defaults for company name, company email, and number of days of leave per year. As an Administrator, I want to set up new Employee accounts for multiple other people at once by copying and pasting their information into a text field, so they can use the system to manage their leave requests / approvals. As an employee, I want to be able to review my pending leave requests, and be able to cancel any that are no longer required, so that I can keep my request up-to-date and accurate. As an employee, I want to be able to review my pending leave requests, and be able to modify any of the details that are no longer correct, so that I can keep my request up-to-date and accurate. As an employee who has other employees reporting to me, I want to be able to see a table that lists all the employees who report to me (as well as the employees that report to them), and for each a summary of their leave requests and days of leave remaining, so I can have a high-level overview of my departmental leave metrics. As an employee, I want to be able to see all my current and past leave requests (including approved, denied, and pending) since I was hired, so I can quickly get information I need regarding one particular leave request. As an employee who has other employees reporting to me, I want to be able to see all the leave requests that are currently pending my approval on a single page, and be able to approve or deny them from that page, so that I can quickly and easily take care of all my pending approvals at once. As an Administrator, I want to be able to select a subset of employees and export their data as either a tabdelimited text file, or as an excel spreadsheet. As an Administrator or Employee, I want to click Change Password choice on the Dashboard Page, and be able to type in a new password. As an Administrator or Employee, I want to click Change Username choice on the Dashboard Page, and be able to type in a new username. As an employee who has other employees reporting to me, I want to receive an email reminder once a day if there are any leave requests that have been waiting for my review for more than 72 hours, so that I can approve or deny it without further delay. As an employee, I want to receive an email notification when my manager approves or denies one of my requests. Initial Sprint Sprint 1 Sprint 2 Sprint 3 Sprint 4 Sprint 5 Sprint 6 Sprint 7 Sprint 8 Sprint 9 Estimate 10 Sprint 11

2 3 2 3 5 1 3 8 3 3 2 3 2 2 5 3 5 13 2 3 5 2 80

0 0 2 3 5 1 3 8 3 3 2 3 2 2 5 3 5 13 2 3 5 2 75

0 0 0 3 5 1 3 8 3 3 2 3 2 2 5 3 5 13 2 3 5 2 73

0 0 0 0 0 1 3 8 3 3 2 3 2 2 5 3 5 13 2 3 5 2 65

0 0 0 0 0 0 0 0 0 3 2 3 2 2 5 3 5 13 2 3 5 2 50

0 0 0 0 0 0 0 0 0 0 2 3 2 2 5 3 5 13 2 3 5 2 47

15

16

17 18 19 20 21 22

Total

Release Burndown Chart



90
80

End Development

70
60
50
40
30
20
10
0
1
2
3
4
5
6
7
8
9
10

Release

Sprints

11

12

13

14

15

Release Backlog

Item # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Product Backlog Item As an Administrator or Employee, I want to go to the Home Page and type my login name and password, so that I can gain access to the Dashboard Page. As an Employee, I want to submit a leave request to my manager, so I can find out whether I have permission to take one or more days of leave. As an employee who has other employees reporting to me, I want to receive an email to inform me that a leave request has been filed, so that I can approve or deny it in a timely manner. As an employee, I want to be able to see the unused vacation, personal, and sick leave I currently have, so that I can plan when to take leave and how much Im entitled to. As an employee, I want to be able to review my pending leave requests, so that I can see which requests have been approved, and which are pending review by my manager. As an Administrator or Employee, I want to click the Forgot Password link on the home page, enter my email address, and have a new password generated and sent to me, so I can log into the system. As an Administrator, I want to be able to modify the personal details (for example, name, or manager, or date of hire) for a particular employee, so that I can keep their information up-to-date and correct any errors. As an Administrator, I want to have a backup of the system made nightly, so that in the event of a crash or other problem, the recent days worth of data can be restored. As an Administrator, I want to create a new Administrator account for another person, so that they have the necessary permissions within the system. As an Administrator, I want to set up a new Employee account for another person, so they can use the system to manage their leave requests and approvals. As an Administrator, I want to be able to modify the system-wide defaults for company name, company email, and number of days of leave per year. As an Administrator, I want to set up new Employee accounts for multiple other people at once by copying and pasting their information into a text field, so they can use the system to manage their leave requests / approvals. As an employee, I want to be able to review my pending leave requests, and be able to cancel any that are no longer required, so that I can keep my request up-to-date and accurate. As an employee, I want to be able to review my pending leave requests, and be able to modify any of the details that are no longer correct, so that I can keep my request up-to-date and accurate. As an employee who has other employees reporting to me, I want to be able to see a table that lists all the employees who report to me (as well as the employees that report to them), and for each a summary of their leave requests and days of leave remaining, so I can have a high-level overview of my departmental leave metrics. As an employee, I want to be able to see all my current and past leave requests (including approved, denied, and pending) since I was hired, so I can quickly get information I need regarding one particular leave request. As an employee who has other employees reporting to me, I want to be able to see all the leave requests that are currently pending my approval on a single page, and be able to approve or deny them from that page, so that I can quickly and easily take care of all my pending approvals at once. As an Administrator, I want to be able to select a subset of employees and export their data as either a tabdelimited text file, or as an excel spreadsheet. As an Administrator or Employee, I want to click Change Password choice on the Dashboard Page, and be able to type in a new password. As an Administrator or Employee, I want to click Change Username choice on the Dashboard Page, and be able to type in a new username. As an employee who has other employees reporting to me, I want to receive an email reminder once a day if there are any leave requests that have been waiting for my review for more than 72 hours, so that I can approve or deny it without further delay. As an employee, I want to receive an email notification when my manager approves or denies one of my requests. Initial Sprint Sprint 1 Sprint 2 Sprint 3 Sprint 4 Sprint 5 Sprint 6 Sprint 7 Sprint 8 Sprint 9 Estimate 10 Sprint 11

2 3 2 3 5 1 3 8 3 3 2 3 2 2 5 3 5 13 2 3 5 2 80

0 0 2 3 5 1 3 8 3 3 2 3 2 2 5 3 5 13 2 3 5 2 75

0 0 0 3 5 1 3 8 3 3 2 3 2 2 5 3 5 13 2 3 5 2 73

0 0 0 0 0 1 3 8 3 3 2 3 2 2 5 3 5 13 2 3 5 2 65

0 0 0 0 0 0 0 0 0 3 2 3 2 2 5 3 5 13 2 3 5 2 50

0 0 0 0 0 0 0 0 0 0 2 3 2 2 5 3 5 13 2 3 5 2 47

15

16

17 18 19 20 21 22

Total

Release Burndown Chart


90 80

End Development
70 60 50 40 30 20 10 0 1 2 3 4 5 6 7 8 9 10 11

Release

12

13

14

15

Sprints

Release Burndown Chart


90 80

End Development
70 60 50 40 30 20 10 0 1 2 3 4 5 6 7 8 9 10

Release

2 extra Sprints will be needed to deliver the entire Release Backlog

11

12

13

14

15

Sprints

Release Burndown Chart


90 80

End Development
70 60 50 To deliver the 40 release on schedule, remove 12 30 points from the Release Backlog 20 10 0 1 2 3 4 5 6 7 8 9 10 11

Release

12

13

14

15

Sprints

Release Burndown Chart


90 80

End Development
70 60 50 40 30 20 10 0 1 2 3 4 5 6 7 8 9 10 11

Release

12

13

14

15

Sprints

The 5 Whys
We always forget whatever we agreed to do We dont have any way of reminding ourselves

Retrospective is a waste of time We never take action on any of the issues we discuss

We never have time to make improvements in our way of working Were always overcommitted in every Sprint The Product Owner pressures us into overcommitting in Sprint Planning

The Product Owner gave an unrealistic delivery date to the VP

The ScrumMaster isnt protecting us!

Impact of Change

What are the consequences if the ScrumMaster says Yes to the Product Owner making a swap during the Sprint?

In the Current Sprint
POs Happiness of Teams ability Teams focus, discipline to the Product to deliver its commitment, not request Owner commitment motivation changes

In Future Sprints
Time and Teams Other teams thought the Teams focus, discipline in discipline in PO puts into commitment, following the following the preparing the rules of rules of motivation Product Scrum Scrum Backlog

You might also like