estimation

40
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.

Upload: dev9com

Post on 05-Aug-2015

128 views

Category:

Software


0 download

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.

Software Project

EstimationWill Iverson, CTO

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”

WHY?

Why Do Estimates?• Project funding• Setting expectations• Control & predictability

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?

PHILOSOPHY

Treat Plans Carefully• “No Battle Plan

Survives Contact With the Enemy”– Helmuth von Moltke

Worth Doing The Exercise• “Plans are useless,

but planning is indispensable”– Dwight David

Eisenhower

Just Map It!• “The Map Is Not

the Terrain”– Alfred Korzybski

• How to get to LA from SF?

htt

p:/

/1.u

sa.g

ov/1

dM

V7

Fn

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.

Classic Iron Triangle

http://bit.ly/1dMXgkA

AGILE REVOLUTION

Agile Planning• Agile Manifesto!• Scrum!

• We don’t need no stinkin’ estimates!

Agile Iron Triangle

http://bit.ly/1dMXgkA

htt

p:/

/bit

.ly/1

dM

WSm

4

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!

KANBAN FTW

What is Kanban?• Dev9 & Kanban– https://www.youtube.com/watch?v=LEF

WKNEN-uI

• Sample Kanban Boards

Kanban Split Board• 1st Board: Epics– Output: MVPs & 0.5-2 day granularity

estimated stories

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

Roadmap Planning• Who does Roadmap Planning?• What are the skills needed?• What level of detail?

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

“I JUST NEED AN ESTIMATE”

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

Typical “Bad” Estimation• 2+ week chunks of effort• Confusion over effort & duration

Very Simple Ranged Band Example

Q & A