37
Neil Killick, Agile Coach / Trainer neilkillick.com / iterative.com.au neil_killick Copyright Neil Killick, Iterative, 2013 the #NoEstimates debate Alternatives to Agile Estimation and...

The #NoEstimates Debate

Embed Size (px)

DESCRIPTION

My talk at Agile Singapore and Agile Scandinavia.

Citation preview

Page 1: The #NoEstimates Debate

Neil Killick, Agile Coach / Trainerneilkillick.com / iterative.com.au neil_killick

Copyright Neil Killick, Iterative, 2013

the #NoEstimates debate

Alternatives to Agile

Estimation and...

Page 2: The #NoEstimates Debate

WHAT IS

Like “Agile”, it has come to have many definitions and interpretations.

What is #NoEstimates?

Page 3: The #NoEstimates Debate

A conversation, started on Twitter, about ways in which software can be delivered with no estimates.

Birth of #NoEstimates

Page 4: The #NoEstimates Debate

A collection of opinions and practical advice from practitioners who deliver software with no estimates.

What drove the debate?

Page 5: The #NoEstimates Debate

A diverse and much needed debate about when it is appropriate to use estimates in software, and what form these should take.

It’s now become...

Page 6: The #NoEstimates Debate

Neil Killick Chris Chapman Henri Karhatsu

Woody Zuill Vasco Duarte

The #NoEstimates Crew

Page 7: The #NoEstimates Debate

WHAT ISEMBRACE AGILE PRINCIPLESFOCUS ON VALUEDELIVER SMALL SLICESDELIVER EARLY & FREQUENTLYCUSTOMER COLLABORATION

Common Ground

Page 8: The #NoEstimates Debate

thicsmpiricismmergence

3 E’s of #NoEstimates

Page 9: The #NoEstimates Debate

ETHICS - Cycle of Mistrust

Trust breaks down

Deliver the wrong thing, or late

Focus on schedule

Commitments of scope and time

Page 10: The #NoEstimates Debate

EMPIRICISM - Working software allows us to monitor progress and manage risk in a new way.

Page 11: The #NoEstimates Debate

EMERGENCEof cost and value aswe get feedback from users and market.

Page 12: The #NoEstimates Debate

Which is more predictable --A team that estimates or one that doesn’t ?

Predictability

Page 13: The #NoEstimates Debate

● DETERMINISTIC AND REACTIVE● FOCUS ON SCHEDULE / PLAN● SCOPE DRIVES DECISIONS● LOTS OF WIP IN ATTEMPT TO “GET IT ALL

DONE”● NO METRICS, OR INAPPROPRIATE ONES

Team #Estimates

Page 14: The #NoEstimates Debate

High variability12 days

1 Day

Page 15: The #NoEstimates Debate

● PROBABILISTIC AND PROACTIVE● FOCUS ON TIME AND CASH CONSTRAINTS● ITERATE DESIGN AND DECISIONS● DELIVER WITH FLOW / LIMIT WIP● ACTIONABLE METRICS (e.g. STORY CYCLE

TIME DISTRIBUTION) USING A “SLICING HEURISTIC”

Team #NoEstimates

Page 16: The #NoEstimates Debate

Better Predictability

3 days

1 Day

Page 17: The #NoEstimates Debate

● EXPLICIT POLICY FOR BREAKING DOWN WORK AND MEASURING HOW LONG IT TOOK (CYCLE TIME)

● STARTS AS A SHARED DEFINITION OF WORK TYPES (e.g. THEME, FEATURE, STORY, etc.)

● SLICE ALL UPCOMING WORK SIMPLY AND SYSTEMATICALLY FOR “SMALL-NESS”

What’s a“Slicing HeuristicTM”?

Page 18: The #NoEstimates Debate

● Given Bob is a registered user,

When Bob logs in

Then he should be logged in.

● Given Bob is logged in,

When Bob chooses Profile

Then he should see his profile.

Example -Max 1 User Scenario

Page 19: The #NoEstimates Debate

Slice into2 separate stories

Page 20: The #NoEstimates Debate

Slice those stories further

Page 21: The #NoEstimates Debate

● Agility relies on small chunks, so useful to have a consistent and explicit way of creating them

● Improve ready-ness and done-ness

● Focus on delivering more frequent slices of value

● No need to explicitly estimate or re-estimate

Why use aSlicing Heuristic?

Page 22: The #NoEstimates Debate

● Story points are ambiguous, time isn’t

● Explicit policy, so can be inspected and adapted to narrow control limits

● Outliers can be addressed at standup or retro

Why use aSlicing Heuristic?

Page 23: The #NoEstimates Debate

● Exposes goals from solutions and vice versa● Slices not necessarily “smaller” than thing we

sliced, but multiply our options

Slicing creates options

Page 24: The #NoEstimates Debate

● KEEP TEAMS TOGETHER● ENABLE CONTINUOUS DELIVERY● NO LONG PROJECTS / PROJECT THINKING● DRIP FUND (MULTIPLE OPTIONS)● BUILD THINGS ON DEMAND, DELIVER AS

SOON AS THEY ARE READY● FLEXIBLE CONTRACTS

Portfolio #NoEstimates

Page 25: The #NoEstimates Debate

Present a business case

Approved as viable option

Team assignedTimeboxed experiment

Is initiative still valuable

enough?

NO

Initiative prioritised

YES

+ Team(s) if required

Frequent delivery

& feedback loop

Stop

Choosing what to do

Page 26: The #NoEstimates Debate

Scaling up and down

Page 27: The #NoEstimates Debate

Questions

Page 28: The #NoEstimates Debate

What is and isn’t estimating, given people form and act on expectations of an uncertain future every day?

Question 1

Page 29: The #NoEstimates Debate

● Estimating = Giving ranges of actual or relative time based on past observation, WIP, team size, etc.

● Guessing = New teams, with competing priorities, asked to give single dates in unfamiliar domains

● There is nothing intrinsically wrong with estimating, so long as we:○ Understand its limitations○ Use it only in appropriate situations○ Don’t rely on it for big up front decision making○ Update our estimates (and everyone’s expectations)

based on real data frequently

Answer 1

Page 30: The #NoEstimates Debate

Why would we choose not to judge likely outcomes if worthwhile human endeavours necessarily carry risk?

Question 2

Page 31: The #NoEstimates Debate

● #NoEstimates is about alternatives to estimating the cost of delivering software, not the value it generates

● We must hypothesise (estimate) the value of things in order to decide if we will pursue them

● My argument is that rather than estimate cost we can control (fix) it in “drips” using fixed Agile teams

● Delivery of working software allows us to reassess value iteratively based on the reality of user / stakeholder feedback and market conditions

Answer 2

Page 32: The #NoEstimates Debate

If we elect not to take on the risk of predicting an uncertain future, who do we think should, and why?

Question 3

Page 33: The #NoEstimates Debate

● We should embrace the delicious uncertainty of software, be excellent in what we do and aim to delight rather than “meet requirements”

● Software products and services have ongoing value, so the final cost and value can never be known up front

● We can’t fix price and scope, but we can work collaboratively and continuously with our customers to build the best possible result for budget or time constraint

● We can provide flexible pricing and termination options to our customers based on similar past work

Answer 3

Page 34: The #NoEstimates Debate

Off the shelf library software costs $50k.We could try building our own at $2,500/day but might fail.What should we do?

Question 4

Page 35: The #NoEstimates Debate

● Answer depends on many things like whether we have an established team, are we capable of delivering features every few days, etc.

● Need to establish the problem rather than decide between solutions; Do we need the software at all?

● What are the consequences of spending more than the OTS product costs? Is the $50k a constraint?

● How would ongoing maintenance costs compare?

Answer 4

Page 36: The #NoEstimates Debate

● 4 weeks not far into the future, so probably have an instant sense of “Is it possible?” and“Can we build something better?”

○ Do we know enough about the domain?○ What are minimum features we need?○ How many people do we have? ○ Do we have any other WIP?

Answer 4 (contd)

Page 37: The #NoEstimates Debate

Neil Killick, Agile Coach / Trainerneilkillick.com / iterative.com.au neil_killick

Copyright Neil Killick, Iterative, 2013