• In this meetup, we will look at a variety of strategies for estimating the
delivery of software development projects. We’ll cover traditional
techniques, modern Agile techniques, and also look at some strategies used
by other fields that are interesting and potentially applicable to software
development teams.
• As we conduct this tour of estimation strategies, we’ll consider the purpose
of estimates - what are the business, political, and financial drivers for
estimation? What is the difference between a good faith estimate and a
guarantee? How do burn down, burn up, and cumulative flow charts help or
hurt? How does estimation work in Scrum and Kanban environments?
• If you are a manager trying to sort out strategies for estimation, or developer
trying to find new ideas for working with your business partner, you’ll want to
catch this presentation.
Software Project
Estimation
Will Iverson, CTO
• CTO, Dev9
– Previously Apple,
Symantec, SolutionsIQ
• Java since 1995
• Four Books,
Numerous Articles
• Numerous CMS Evals,
Implementations
• Custom software development firm
– Based just outside Seattle, Washington
• We build custom software solutions based on Continuous Delivery
– Processes & tools based on combination of Lean & heavy use of
automation
• Typical projects
– CMS implementation!
– Java & .NET-based web services at scale
– SQL, NoSQL
– Variety of client-side technologies
• AngularJS, Android, and iOS.
– DevOps implementations, including Docker
• Why Estimates?
– Survey of Approaches
• Philosophy
• Agile Revolution
• Kanban FTW
• “I Just Need An Estimate”
WHY?
• Project funding
• Setting expectations
• Control & predictability
• We should do a project to do X!
– Enthusiastic Team Member
• How much will it cost?
– Next Person Up Chain
• …
– Less Enthusiastic Team Member
• Software development effort estimation is the process
of predicting the most realistic amount of effort
(expressed in terms of person-hours or money)
required to develop or maintain software based on
incomplete, uncertain and noisy input.
• Effort estimates may be used as input to project plans,
iteration plans, budgets, investment analyses, pricing
processes and bidding rounds.
– Wikipedia
Estimation approach Category Examples of support of implementation of
estimation approach
Analogy-based estimation Formal estimation model ANGEL, Weighted Micro Function Points
WBS-based (bottom up)
estimation
Expert estimation Project management software, company specific
activity templates
Parametric models Formal estimation model COCOMO, SLIM, SEER-SEM, TruePlanning for
Software
Size-based estimation models Formal estimation model Function Point Analysis, Use Case Analysis, SSU
(Software Size Unit), Story points-based estimation in
Agile software development
Group estimation Expert estimation Planning poker, Wideband Delphi
Mechanical combination Combination-based estimation Average of an analogy-based and a Work breakdown
structure-based effort estimate
Judgmental combination Combination-based estimation Expert judgment based on estimates from a parametric
model and group estimation
http://bit.ly/1dMTFCV
• Maximum likelihood estimators
• Bayes estimators
• Method of moments estimators
• Cramér–Rao bound
• Minimum mean squared error
(MMSE) aka Bayes least
squared error (BLSE)
• Maximum a posteriori (MAP)
• Minimum variance unbiased
estimator (MVUE)
• Nonlinear system identification
• Best linear unbiased estimator
(BLUE)
• Unbiased estimators (estimator
bias).
• Particle filter
• Markov chain Monte Carlo
(MCMC)
• Kalman filter, and its various
derivatives
• Wiener filter
http://bit.ly/1Li61RV
• Let’s say six person project for six
months…
– 6 people X 6 months X 20 days / month =
~720 stories
• Doable?
• Valuable?
PHILOSOPHY
• “No Battle Plan
Survives Contact With
the Enemy”
– Helmuth von Moltke
• “Plans are useless,
but planning is
indispensable”
– Dwight David
Eisenhower
• “The Map Is Not the
Terrain”
– Alfred Korzybski
• How to get to LA from
SF?
http://1.usa.gov/1dMV7Fn
1. Get an estimate
2. Fail to deliver?
3. Blame the estimator!
• “I need an estimate, but I’m not going to hold
you to it!”
• You get to lie once… at this job.
• Instead of blowing up horribly every two
years, let’s break it down into manageable
two week delivery.
http://bit.ly/1dMXgkA
AGILE
REVOLUTION
• Agile Manifesto!
• Scrum!
• We don’t need no stinkin’ estimates!
http://bit.ly/1dMXgkA
http://bit.ly/1dMWSm4
• Planning Poker
• Long Group Session
• Pro:
– Breaks up status quo
• Cons:
– Confuses effort &
ambiguity
– Assumes no external
dependencies
– Encourages mini-
waterfalls
http://apple.co/1dMQNGc
• Joint Planning Session
• Make commit for delivery for next two weeks
• External teams fail to deliver
• Manager hangs team for not meeting commit
• Next planning session…
– Let’s not commit to anything.
– Let’s pad the hell out of everything
– Let’s drag EVERYONE to the meeting
Generate
Sprint Estimate
External
Dependencies
= Missing
Sprint Target
You Failed To
Make Your
Commitment!
Invite
EVERYONE to
2 day planning
session
Sandbag
Estimate
• Standups are just status reports
• We do mini-waterfalls
• We never hit our sprint goals
• Scrum sucks!
KANBAN FTW
• Dev9 & Kanban
– https://www.youtube.com/watch?v=LEFWKNE
N-uI
• Sample Kanban Boards
• 1st Board: Epics
– Output: MVPs & 0.5-2 day granularity
estimated stories
Planning Board
• Takes in Epics
• New Feature Ideas
• Outputs Scoped Stories
Execution Board
• Takes in Scoped Stories
• Outputs Working Software
• External Dependencies
Tracked Via Column
Analysis Board
• A/B Test Results
• Overall Analytics
• Who does Roadmap Planning?
• What are the skills needed?
• What level of detail?
• Product Owner +
Product Manager
– Connects loop
between planning &
analytics
– Mgmt Q: Do
implemented features
move the needle?
• Execution Lead
– Manages flow,
optimizes Lean flow
– Mgmt Q: What is the
cycle time for 1-2 day
stories from planning
into prod?
• Product Roadmap
– 2-4 week level golden features
– Fits on PowerPoint
• Split Board Kanban Board
– Evolve Scrum from basics
– Planning, Implementation, Analytics
“I JUST NEED AN
ESTIMATE”
• Series of ranged band estimates
• Add up variance
• Sort by variance
• Highlight that anything over 2 days is a
SWAG
• Anything over 1 week is SSWAG
• 0.5-1 day granularity
• Based entirely on previously done work
– No research required
• 2+ week chunks of effort
• Confusion over effort & duration
Q & A

Estimation

  • 1.
    • In thismeetup, we will look at a variety of strategies for estimating the delivery of software development projects. We’ll cover traditional techniques, modern Agile techniques, and also look at some strategies used by other fields that are interesting and potentially applicable to software development teams. • As we conduct this tour of estimation strategies, we’ll consider the purpose of estimates - what are the business, political, and financial drivers for estimation? What is the difference between a good faith estimate and a guarantee? How do burn down, burn up, and cumulative flow charts help or hurt? How does estimation work in Scrum and Kanban environments? • If you are a manager trying to sort out strategies for estimation, or developer trying to find new ideas for working with your business partner, you’ll want to catch this presentation.
  • 2.
  • 3.
    • CTO, Dev9 –Previously Apple, Symantec, SolutionsIQ • Java since 1995 • Four Books, Numerous Articles • Numerous CMS Evals, Implementations
  • 4.
    • Custom softwaredevelopment firm – Based just outside Seattle, Washington • We build custom software solutions based on Continuous Delivery – Processes & tools based on combination of Lean & heavy use of automation • Typical projects – CMS implementation! – Java & .NET-based web services at scale – SQL, NoSQL – Variety of client-side technologies • AngularJS, Android, and iOS. – DevOps implementations, including Docker
  • 5.
    • Why Estimates? –Survey of Approaches • Philosophy • Agile Revolution • Kanban FTW • “I Just Need An Estimate”
  • 6.
  • 7.
    • Project funding •Setting expectations • Control & predictability
  • 8.
    • We shoulddo a project to do X! – Enthusiastic Team Member • How much will it cost? – Next Person Up Chain • … – Less Enthusiastic Team Member
  • 9.
    • Software developmenteffort estimation is the process of predicting the most realistic amount of effort (expressed in terms of person-hours or money) required to develop or maintain software based on incomplete, uncertain and noisy input. • Effort estimates may be used as input to project plans, iteration plans, budgets, investment analyses, pricing processes and bidding rounds. – Wikipedia
  • 10.
    Estimation approach CategoryExamples of support of implementation of estimation approach Analogy-based estimation Formal estimation model ANGEL, Weighted Micro Function Points WBS-based (bottom up) estimation Expert estimation Project management software, company specific activity templates Parametric models Formal estimation model COCOMO, SLIM, SEER-SEM, TruePlanning for Software Size-based estimation models Formal estimation model Function Point Analysis, Use Case Analysis, SSU (Software Size Unit), Story points-based estimation in Agile software development Group estimation Expert estimation Planning poker, Wideband Delphi Mechanical combination Combination-based estimation Average of an analogy-based and a Work breakdown structure-based effort estimate Judgmental combination Combination-based estimation Expert judgment based on estimates from a parametric model and group estimation http://bit.ly/1dMTFCV
  • 11.
    • Maximum likelihoodestimators • Bayes estimators • Method of moments estimators • Cramér–Rao bound • Minimum mean squared error (MMSE) aka Bayes least squared error (BLSE) • Maximum a posteriori (MAP) • Minimum variance unbiased estimator (MVUE) • Nonlinear system identification • Best linear unbiased estimator (BLUE) • Unbiased estimators (estimator bias). • Particle filter • Markov chain Monte Carlo (MCMC) • Kalman filter, and its various derivatives • Wiener filter http://bit.ly/1Li61RV
  • 12.
    • Let’s saysix person project for six months… – 6 people X 6 months X 20 days / month = ~720 stories • Doable? • Valuable?
  • 13.
  • 14.
    • “No BattlePlan Survives Contact With the Enemy” – Helmuth von Moltke
  • 15.
    • “Plans areuseless, but planning is indispensable” – Dwight David Eisenhower
  • 16.
    • “The MapIs Not the Terrain” – Alfred Korzybski • How to get to LA from SF?
  • 17.
  • 18.
    1. Get anestimate 2. Fail to deliver? 3. Blame the estimator! • “I need an estimate, but I’m not going to hold you to it!” • You get to lie once… at this job.
  • 19.
    • Instead ofblowing up horribly every two years, let’s break it down into manageable two week delivery.
  • 20.
  • 21.
  • 22.
    • Agile Manifesto! •Scrum! • We don’t need no stinkin’ estimates!
  • 23.
  • 24.
  • 25.
    • Planning Poker •Long Group Session • Pro: – Breaks up status quo • Cons: – Confuses effort & ambiguity – Assumes no external dependencies – Encourages mini- waterfalls http://apple.co/1dMQNGc
  • 26.
    • Joint PlanningSession • Make commit for delivery for next two weeks • External teams fail to deliver • Manager hangs team for not meeting commit • Next planning session… – Let’s not commit to anything. – Let’s pad the hell out of everything – Let’s drag EVERYONE to the meeting
  • 27.
    Generate Sprint Estimate External Dependencies = Missing SprintTarget You Failed To Make Your Commitment! Invite EVERYONE to 2 day planning session Sandbag Estimate • Standups are just status reports • We do mini-waterfalls • We never hit our sprint goals • Scrum sucks!
  • 28.
  • 29.
    • Dev9 &Kanban – https://www.youtube.com/watch?v=LEFWKNE N-uI • Sample Kanban Boards
  • 30.
    • 1st Board:Epics – Output: MVPs & 0.5-2 day granularity estimated stories
  • 31.
    Planning Board • Takesin Epics • New Feature Ideas • Outputs Scoped Stories Execution Board • Takes in Scoped Stories • Outputs Working Software • External Dependencies Tracked Via Column Analysis Board • A/B Test Results • Overall Analytics
  • 32.
    • Who doesRoadmap Planning? • What are the skills needed? • What level of detail?
  • 33.
    • Product Owner+ Product Manager – Connects loop between planning & analytics – Mgmt Q: Do implemented features move the needle? • Execution Lead – Manages flow, optimizes Lean flow – Mgmt Q: What is the cycle time for 1-2 day stories from planning into prod?
  • 34.
    • Product Roadmap –2-4 week level golden features – Fits on PowerPoint • Split Board Kanban Board – Evolve Scrum from basics – Planning, Implementation, Analytics
  • 35.
    “I JUST NEEDAN ESTIMATE”
  • 36.
    • Series ofranged band estimates • Add up variance • Sort by variance • Highlight that anything over 2 days is a SWAG • Anything over 1 week is SSWAG
  • 37.
    • 0.5-1 daygranularity • Based entirely on previously done work – No research required
  • 38.
    • 2+ weekchunks of effort • Confusion over effort & duration
  • 40.

Editor's Notes

  • #12 But can you explain it to other people….?: