estimation
TRANSCRIPT
Software Development Estimation Strategies
• 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.
Who is Will?• CTO, Dev9– Previously Apple,
Symantec, SolutionsIQ
• Java since 1995• Four Books, Numerous
Articles• Numerous CMS Evals,
Implementations
What is Dev9?• 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
Agenda• Why Estimates?– Survey of Approaches
• Philosophy• Agile Revolution• Kanban FTW• “I Just Need An Estimate”
Basic Estimation Problem• We should do a project to do X!– Enthusiastic Team Member
• How much will it cost?– Next Person Up Chain
• …– Less Enthusiastic Team Member
Interesting Definition• 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
Classic Estimation ApproachesEstimation 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
Broader Estimation Approaches• 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
How Much Do Estimates Cost?• Let’s say six person project for six
months…– 6 people X 6 months X 20 days / month
= ~720 stories
• Doable?• Valuable?
Worth Doing The Exercise• “Plans are useless,
but planning is indispensable”– Dwight David
Eisenhower
Control & Accountability1. Get an estimate2. 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.
From Control to Risk Management
• Instead of blowing up horribly every two years, let’s break it down into manageable two week delivery.
Scrum Planning• 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
Scrum Anti-Pattern• 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
Scrum Planning Death SpiralGenerate
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!
What is Kanban?• Dev9 & Kanban– https://www.youtube.com/watch?v=LEF
WKNEN-uI
• Sample Kanban Boards
Kanban Planning (Example)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
Key Suggested Roles• 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?
Key Suggested Artifacts• Product Roadmap– 2-4 week level golden features– Fits on PowerPoint
• Split Board Kanban Board– Evolve Scrum from basics– Planning, Implementation, Analytics
What I Do…• 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
What’s a “Good” Estimate• 0.5-1 day granularity• Based entirely on previously done
work– No research required