Agile Planning, Estimation, and Tracking Syed Rayhan Co-founder, Code71, Inc.

Agile Planning, Estimation, and Tracking
Agile Planning, Estimation, and Tracking
Syed Rayhan
Co-founder, Code71, Inc.
Contact: [email protected]
Blog: http://blog.syedrayhan.com
Company: http://www.code71.com
Product: http://www.scrumpad.com
Agenda
Section 1
Introduction
Section 2
Planning
Section 3
Estimation
Section 4
Tracking
Section 5
Recap
Section 6
Q&A
www.Code71.com
Copyright 2009 Code71, Inc.
2
www.ScrumPad.com
My Background
Career
Expertise
Interests
www.Code71.com

Co-founder, Code71, Inc., CSP, Agile Coach and Trainer

14+ years of total experience

Co-author of “Enterprise Java with UML”

Iterative incremental development

Technology planning and architecture

On-shore/Off-shore software development using
Agile/Scrum

Cultural aspect of self-organizing team

Scrum for projects delivered remotely

Agile engineering practices
Copyright 2009 Code71, Inc.
3
www.ScrumPad.com
What to Expect
Context

Teams and organizations are adopting Agile/Scrum

Teams struggle with making the transition from waterfall to
Agile/Scrum
Focus
Key
Takeaways
www.Code71.com

Build a base for Agile planning

Contrast Agile planning with Traditional Planning

Address typical questions asked

How to perform sprint planning and estimation

How to perform release planning an estimation

How to track progress against plan

How to adjust plan as project evolves
Copyright 2009 Code71, Inc.
4
www.ScrumPad.com
Agenda
Section 1
Introduction
Section 2
Planning
Section 3
Estimation
Section 4
Tracking
Section 5
Recap
Section 6
Q&A
www.Code71.com
Copyright 2009 Code71, Inc.
5
www.ScrumPad.com
Waterfall Project Planning
Project can be accurately planned in details
“.”
www.Code71.com
Copyright 2009 Code71, Inc.
6
www.ScrumPad.com
In reality, software projects are like…
forecasting weatherrain or shine?
www.Code71.com
Copyright 2009 Code71, Inc.
7
www.ScrumPad.com
Planning
Agile
Waterfall
Empirical
Predictive
Iterative, incremental
All or none
Prioritization is key activity of planning
Prioritization is not important
Critical path is eliminated through time
boxing
Critical path is important
Planning becomes a prioritization exercise
www.Code71.com
Copyright 2009 Code71, Inc.
8
www.ScrumPad.com
How to do prioritization?
Informal
Ad-hoc and intuitive
MoSCoW
Must have, Should have, Could have, Would not have
Formal
Priority = Business Value/Complexity
ROI (= Business value – Cost) based prioritization
Kano
Mandatory, Linear, Exciter
Threshold, Performance, Excitement
www.Code71.com
Copyright 2009 Code71, Inc.
9
www.ScrumPad.com
MoSCoW
Must haves
Minimum Usable SubseT for production
(a.k.a. Minimum Viable Product)
Should haves
Could haves
Would not haves
Important, but absence of it would not make the
product useless
Optional, if fund and time are available
Out of scope, defines the boundary of the product
Pros and Cons?
www.Code71.com
Copyright 2009 Code71, Inc.
10
www.ScrumPad.com
Minimum Viable Product (MVP)
Release#1
R#2
R#3
ideal
Release every sprint
Expanding scope of MVP
www.Code71.com
Copyright 2009 Code71, Inc.
11
www.ScrumPad.com
Kano Analysis
Survey
Q#1 Rate your satisfaction if the product has “this” feature?
Q#2 Rate your satisfaction if the product does not have “this” feature?
Answers:
A) Like it,
B) Neutral,
C) Dislike it
Additional Question for trade-off analysis
How much extra would you pay for “this” or more of “this” feature?
www.Code71.com
Copyright 2009 Code71, Inc.
12
www.ScrumPad.com
Kano Analysis
Q#1 (Presence of a feature)
Like
Neutral
Dislike
Like
Neutral
Dislike
Q#2 (Absence of a feature)
-
?
L
E
I
?
T
-
L
- disregard, ? probe further, I indifferent
E exciter, L linier, T threshold
www.Code71.com
Copyright 2009 Code71, Inc.
13
www.ScrumPad.com
Formal
BV
Complexity
Priority
High
Low
1
High
Medium
2
High
High
3?
Medium
Low
4?
Low
Low
5?
Medium
Medium
6?
Medium
High
7
Low
Medium
8
Low
High
9
Pros and Cons?
www.Code71.com
Copyright 2009 Code71, Inc.
14
www.ScrumPad.com
Release Planning
• Set a release goal
• Determine scope through prioritization
• Determine a release date
• Define sprints
• Allocate stories to sprints
• Product backlog grooming
• Ideally release every sprint
www.Code71.com
Copyright 2009 Code71, Inc.
15
www.ScrumPad.com
Sprint Planning
Capacity
Scope
Estimation
• Load factor
• Set a sprint goal
• Task breakdown
• Availability factor
• Take stories from
the top of the
product backlog
• Estimate tasks in
actual hours or days
• Holidays
• Vacations
• Total points =
Velocity
• Assign task owners
• Assign a story owner
• Verify estimate
against capacity
www.Code71.com
Copyright 2009 Code71, Inc.
16
www.ScrumPad.com
Sprint 0
• Project initiation sprint
• Business case
• Environment setup
• Architecture
• Team setup
• Team norms
• Training
www.Code71.com
Copyright 2009 Code71, Inc.
17
www.ScrumPad.com
Integration / Stabilization Sprint
• One or more sprints needed to stabilize a release before
final rollout
• Ideally a product is always ready for rollout
• Final integration and regression tests
• Load test
• Any last minute bug fixes
• Production environment setup
• Any other steps (organization specific) needed before
production rollout
www.Code71.com
Copyright 2009 Code71, Inc.
18
www.ScrumPad.com
Rules of thumb
• A team size of 7-9
• 1 and half medium stories per developer
• 1 Tester for every two developers
• Do not change sprint length
• Prefer 100% allocation over partial allocation of people
www.Code71.com
Copyright 2009 Code71, Inc.
19
www.ScrumPad.com
Agenda
Section 1
Introduction
Section 2
Planning
Section 3
Estimation
Section 4
Tracking
Section 5
Recap
Section 6
Q&A
www.Code71.com
Copyright 2009 Code71, Inc.
20
www.ScrumPad.com
Estimation
Relative
Absolute
Story points
Hours/Days
Used for Release planning
Used for Sprint planning
Accuracy is not important
Accuracy is important to some extant
Eliminates bias
Does not eliminate bias
Cannot be compared with
another team’s
Supports comparison
Why relative estimation? Velocity, suitable for longer horizon
www.Code71.com
Copyright 2009 Code71, Inc.
21
www.ScrumPad.com
Relative estimation using “Planning Poker”
Decide on scale
Fibonacci scale
Identify a reference story set
Estimate the rest
Use most understood story as a
reference story for each level on the
scale
Everybody estimates individually, then
reveals as a team, hence the term
“Planning Poker”
Challenges?
www.Code71.com
Copyright 2009 Code71, Inc.
22
www.ScrumPad.com
Definition of “Done”
design review
code review
architecture
load test
functional
design+code+unit test
test
regression
test
www.Code71.com
Copyright 2009 Code71, Inc.
23
www.ScrumPad.com
How to resolve disagreement in estimation?
Consensus
Ask the outliers and discuss as a team to
agree on an estimate
Majority
Pick the one that was chosen by the majority
Choose the
highest
To err on the side of caution
Pros and Cons?
www.Code71.com
Copyright 2009 Code71, Inc.
24
www.ScrumPad.com
Rules of thumb
• Tasks should be 4 -16 hours
• For a two-week sprint (most popular sprint length)
• 2-4 hours planning
• 1-2 hours of sprint review
• 1-2 hours of sprint retrospective
• Allocate a fixed hours for production support or other unavoidable routine work
(10-15%)
• 10% for product backlog grooming
www.Code71.com
Copyright 2009 Code71, Inc.
25
www.ScrumPad.com
Velocity
Definition
Points delivered by a team per sprint
How to calculate?
Rolling average of 4 weeks, Max, Min, Lifetime average
Keep in mind
• Velocity without a quality metric is not useful
• Velocity of two teams are not comparable
• Velocity changes with team composition
• Velocity increases with team’s tenure
• Velocity is not productivity
• Do not include bugs and rejected stories
How to use?
• Used to determine sprint scope
• Used to calculate approximate costs of a release
• Used to track release progress
www.Code71.com
Copyright 2009 Code71, Inc.
26
www.ScrumPad.com
Agenda
Section 1
Introduction
Section 2
Planning
Section 3
Estimation
Section 4
Tracking
Section 5
Recap
Section 6
Q&A
www.Code71.com
Copyright 2009 Code71, Inc.
27
www.ScrumPad.com
How do you track progress?
MS Project
50% done
Waterfall
Vs.
ScrumPad
3 stories done, 5 stories remaining
Agile
You don’t get credit for partial work
www.Code71.com
Copyright 2009 Code71, Inc.
28
www.ScrumPad.com
Tracking progress
Sprint Burndown
Track remaining hours, track done/remaining points by
day
Release Burndown Track remaining points by sprint
Sprint Burnup
Track time spent by day
Metrics
Velocity,
Bug find rate per sprint,
Bug fix rate per sprint,
Test coverage
www.Code71.com
Copyright 2009 Code71, Inc.
29
www.ScrumPad.com
Tracking progress
Daily Scrum
Sprint Review
Retrospective
www.Code71.com
A 15-minute standup meeting where team answers the
following;
tracking
impediments
1) What did I do yesterday?
2) What am I going to work on today?
3) What is impeding my work, if any?
Team meets with the product owner and stakeholders to
show the work done in the current sprint and solicit
feedback.
Team meets at the end of each sprint to discuss1) What is working well?
2) What needs improvement? and
3) How to improve/fix the process?
Copyright 2009 Code71, Inc.
30
www.ScrumPad.com
Burndowns
Track
Remaining
hours
Track done
Daily time entry
• Time spent
• Time remaining
www.Code71.com
Copyright 2009 Code71, Inc.
31
www.ScrumPad.com
Other charts
Tracking
actual time
spent
Tracking
release
www.Code71.com
Copyright 2009 Code71, Inc.
32
www.ScrumPad.com
Let’s test our understanding
 Difference between relative vs. absolute estimation?
 How to do resource allocation?
 How to handle shared resources?
 How to plan for production support work?
 Do you still need a Gantt chart?
 How to plan for fixed bid contract?
 Who does planning?
 What is velocity?
 How to improve estimation?
 How do you ensure team delivers what they plan to deliver in a sprint?
www.Code71.com
Copyright 2009 Code71, Inc.
33
www.ScrumPad.com
Recap

Prioritize product backlog on an on-going basis

Estimate backlog in story points for release planning

Estimate backlog in actual hours or days for sprint planning

Pick a suitable sprint length and stick with it

Allocate people to a single project in a single sprint

Staff the team in the beginning and keep the team in place through out the life
of the project
www.Code71.com
Copyright 2009 Code71, Inc.
34
www.ScrumPad.com
Recap contd.
 The team should be cross-functional- include testers, Sys admins,
DBA, SMEs
 Team should be physically or virtually collocated
 Know your team “velocity”
 Use open space
 Use appropriate information radiators
www.Code71.com
Copyright 2009 Code71, Inc.
35
www.ScrumPad.com
Q&A
Contact: [email protected]
Blog: http://blog.syedrayhan.com
Company: http://www.code71.com
Product: http://www.scrumpad.com
www.Code71.com
Copyright 2009 Code71, Inc.
36
www.ScrumPad.com