#noestimates thinking

132
Massimo Iacolare @iacoware #NOESTIMATES thinking #iad14

Upload: massimo-iacolare

Post on 02-Jul-2015

4.812 views

Category:

Software


2 download

DESCRIPTION

Why estimates lead us in the wrong direction and what we can do about it!

TRANSCRIPT

Page 1: #NoEstimates Thinking

Massimo Iacolare @iacoware

#NOESTIMATESthinking

#iad14

Page 2: #NoEstimates Thinking

my journey

Page 3: #NoEstimates Thinking

MYTH

Page 4: #NoEstimates Thinking

Estimatingsucks!

Page 5: #NoEstimates Thinking

Estimatingsucks!

End of story. Questions?

Page 6: #NoEstimates Thinking

Estimatingsucks!

Relax, I’m kidding ;-)

End of story. Questions?

Page 7: #NoEstimates Thinking

Estimatingsucks!

Relax, I’m kidding ;-)

End of story. Questions?

kind of…

Page 8: #NoEstimates Thinking

just lazy?

Page 9: #NoEstimates Thinking

#NoEstimatesfrom

#NoSalaryto

Page 10: #NoEstimates Thinking
Page 11: #NoEstimates Thinking

woody zuill

@woodyzuillvasco duarte @duarte_vasco

Neil killick

@neil_killick

J.B. rainsberger

@jbrains

Joshua Kerievsky

@JoshuaKerievsky

Chris R. Chapman

@DerailleurAgileHenri Karhatsu

@karhatsu

many more…

Ángel Medinilla @angel_m

Page 12: #NoEstimates Thinking

Woody Zuill

#NoEstimates is a hashtag for the topic of exploring alternatives to estimates for making decisions in

software development. That is, ways to make decisions with 'No Estimates'

Page 13: #NoEstimates Thinking

“#NoEstimates is a critique to how estimates are

usually handled not to how they should be done”

Page 14: #NoEstimates Thinking

EDD

Page 15: #NoEstimates Thinking

ED

EVELOPMENT

STIMATESRIVEN

D

Page 16: #NoEstimates Thinking
Page 17: #NoEstimates Thinking

WHY ESTIMATES DON’T HELP

Page 18: #NoEstimates Thinking

WRITING SOFTWARE

Page 19: #NoEstimates Thinking

DEALING WITHUNCERTAINTY

every project brings something new

Page 20: #NoEstimates Thinking

DomainTechnology - toolsprocesspeople

Page 21: #NoEstimates Thinking

DomainTechnology - toolsprocesspeople

we learn by doing+

Page 22: #NoEstimates Thinking

ESTIMATES ?

UNCERTAINTY&

upfront

Page 23: #NoEstimates Thinking

Oil & water

Page 24: #NoEstimates Thinking

unreliable

Page 25: #NoEstimates Thinking

MOST useful at the beginning

maximum ignorance

Page 26: #NoEstimates Thinking

Cost of a featureessential

complexity +

Page 27: #NoEstimates Thinking

Foundamental theorem of agile software development

Cost of a featureessential

complexityaccidental complexity+

Page 28: #NoEstimates Thinking
Page 29: #NoEstimates Thinking

How much time do you need to add “customer promotions”

to our e-commerce?

Page 30: #NoEstimates Thinking

How much time do you need to add “customer promotions”

to our e-commerce?

Page 31: #NoEstimates Thinking

BIASESoptimism bias

anchoring bias

LOSS AVERSION

AVAILABILITY BIAS

SELECTIVE PERCEPT.

…many more

sunk cost fallacy

Page 32: #NoEstimates Thinking

we suck at making predictions

Page 33: #NoEstimates Thinking

side effects

Page 34: #NoEstimates Thinking

Set Expectations

Page 35: #NoEstimates Thinking

Foster plansdetailed plans

detailed backlog

Page 36: #NoEstimates Thinking

“estimating means you’re getting married to a plan, which you know is wrong

even when you start”vasco duarte

Page 37: #NoEstimates Thinking

“estimating means you’re getting married to a plan, which you know is wrong

even when you start”vasco duarte

learn by doing

Page 38: #NoEstimates Thinking

Hinder Adaptation

Page 39: #NoEstimates Thinking

Hinder Adaptation

loss aversion

Page 40: #NoEstimates Thinking

promote cost-based

mindset

Page 41: #NoEstimates Thinking

cost ↳number

↳certainvalue ↳ ???

↳ UNcertain

Page 42: #NoEstimates Thinking

cost ↳number

↳certainvalue ↳ ???

↳ UNcertain

availability bias

Page 43: #NoEstimates Thinking

Costs become the target to Hit

Page 44: #NoEstimates Thinking

same cost more features

Page 45: #NoEstimates Thinking

same cost more features

Page 46: #NoEstimates Thinking

more features =

better software

Page 47: #NoEstimates Thinking

more features ==

better software

Page 48: #NoEstimates Thinking

more features ==

better software

in case you are a developer

Page 49: #NoEstimates Thinking

more features ==

better software

Page 50: #NoEstimates Thinking

more features ==

better software

in case you come from javascript=

Page 51: #NoEstimates Thinking

more features ==

better software

in case you come from javascript=

Fallacy

Page 52: #NoEstimates Thinking

minimize output maximize outcome

Page 53: #NoEstimates Thinking

more features =

bigger codebase =

Hinder ADAPTation

Page 54: #NoEstimates Thinking

more features =

bigger codebase =

Hinder ADAPTationagain

Page 55: #NoEstimates Thinking

BETTER SOFTWARE

Page 56: #NoEstimates Thinking

BETTER SOFTWARE

BETTER features =

Page 57: #NoEstimates Thinking

RECAP

Page 58: #NoEstimates Thinking

plagued by fallaciesfoster detailed plans

hinder adaptationCOST-based mindset

don’t help with uncertainty

Page 59: #NoEstimates Thinking
Page 60: #NoEstimates Thinking
Page 61: #NoEstimates Thinking

Where’s the exit, please?

Page 62: #NoEstimates Thinking

step 0

sign the contract

Page 63: #NoEstimates Thinking

get off to a good start

Page 64: #NoEstimates Thinking

get off to a good start

affect execution

Page 65: #NoEstimates Thinking

the perils of fixed-price fixed-scope

Page 66: #NoEstimates Thinking

fixed price - fixed scope

requirements (estimated plan)

a price

a delivery date

Page 67: #NoEstimates Thinking

fixed price - fixed scope

requirements (estimated plan)

a price

a delivery date

Page 68: #NoEstimates Thinking

premisesrequirements captured the problem

you understood the problem

Uncertainty doesn’t exist

estimates are correct

execution goes smootly

Page 69: #NoEstimates Thinking

premisesrequirements captured the problem

you understood the problem

Uncertainty doesn’t exist

estimates are correct

execution goes smootly

Page 70: #NoEstimates Thinking

premisesrequirements captured the problem

you understood the problem

Uncertainty doesn’t exist

estimates are correct

execution goes smootly

Page 71: #NoEstimates Thinking

customer problem

fp-fs

things go wrong

you failyou suck

Page 72: #NoEstimates Thinking

customer problem

fp-fs

things go wrong

you failyou suck

bigger penalty fees

Page 73: #NoEstimates Thinking

customer problem

fp-fs

things go wrong

you failyou suck

bigger penalty fees

more analysis

Page 74: #NoEstimates Thinking

you f*ck me, I F*ck you

fixed-price, fixed-scope contracts

Page 75: #NoEstimates Thinking

Agile contractsCapped time-materialincremental delivery

Page 76: #NoEstimates Thinking
Page 77: #NoEstimates Thinking

the exit, please?

Page 78: #NoEstimates Thinking

adopt a development style which doesn’t rely

on estimates

Page 79: #NoEstimates Thinking

we learn by doing so we should hit the

target iteratively

Page 80: #NoEstimates Thinking

adopt a development style which foster a

healthy, mature relationship with my

customers

Page 81: #NoEstimates Thinking

do the right thing

do it right

do it iteratively

Page 82: #NoEstimates Thinking

do the right thing

do it right

Page 83: #NoEstimates Thinking

do the right thingsolve the right problemthe starting point matters

Page 84: #NoEstimates Thinking

map the problem with story mapping

Page 85: #NoEstimates Thinking

jeff patton

Page 86: #NoEstimates Thinking

communication toolwhole point of Xp: business people and technical people should talk

help build customer trust Visualizing your strategy

Page 87: #NoEstimates Thinking
Page 88: #NoEstimates Thinking
Page 89: #NoEstimates Thinking
Page 90: #NoEstimates Thinking
Page 91: #NoEstimates Thinking
Page 92: #NoEstimates Thinking
Page 93: #NoEstimates Thinking
Page 94: #NoEstimates Thinking
Page 95: #NoEstimates Thinking

story mapping benefits

Page 96: #NoEstimates Thinking

build a shared understanding

Page 97: #NoEstimates Thinking

spot story’s holes

Page 98: #NoEstimates Thinking

build effective releases

walking skeleton

plan to reduce uncertainty

prioritize by outcome, not features

Page 99: #NoEstimates Thinking

avoid silosUsers catalog cart promo payments

Page 100: #NoEstimates Thinking

avoid silosUsers catalog cart promo payments

Page 101: #NoEstimates Thinking

avoid silosUsers catalog cart promo payments

Page 102: #NoEstimates Thinking

avoid silosUsers catalog cart promo payments

Page 103: #NoEstimates Thinking

avoid silosUsers catalog cart promo payments

Page 104: #NoEstimates Thinking

avoid silosUsers catalog cart promo payments

Page 105: #NoEstimates Thinking

avoid silosUsers catalog cart promo payments

Page 106: #NoEstimates Thinking

avoid silosUsers catalog cart promo payments

Page 107: #NoEstimates Thinking

avoid silosUsers catalog cart promo payments

Page 108: #NoEstimates Thinking

avoid silosUsers catalog cart promo payments

Page 109: #NoEstimates Thinking

avoid silosUsers catalog cart promo payments

Page 110: #NoEstimates Thinking

avoid silosUsers catalog cart promo payments

Page 111: #NoEstimates Thinking

keep plans lightweight

half life of requirementsembrace flexible scope

Page 112: #NoEstimates Thinking
Page 113: #NoEstimates Thinking

do it rightget better at software development

how hard can it be?

Page 114: #NoEstimates Thinking

do it rightget better at software development

how hard can it be?

Page 115: #NoEstimates Thinking

support an iterative-incremental style of development

Page 116: #NoEstimates Thinking

what do we need?

Page 117: #NoEstimates Thinking

tight feedback loop

slice scope

exploit iterative development

technical excellence to keep it all together

Page 118: #NoEstimates Thinking

tight feedback loop

tdd ↔ continuous delivery

Page 119: #NoEstimates Thinking

slice everything

defer commitment

generate options

always assume there’s a simpler way

Page 120: #NoEstimates Thinking

exploit iterative

developmentUncertainty-Jeff-Pattondon’t know what i want

Page 121: #NoEstimates Thinking
Page 122: #NoEstimates Thinking

“if you work on it only once you are

not doing iterative development”

Page 123: #NoEstimates Thinking

tech. EXCellenceyou’ll need to grow your design incrementally…

…so you won’t get stuck and rewrite it every time you touch it

Page 124: #NoEstimates Thinking

iterative development is the result of your

well trained technical abilities

Page 125: #NoEstimates Thinking

nurture your skills

Page 126: #NoEstimates Thinking

technical xp practices

pair programming

tddsimple design refactoring

Page 127: #NoEstimates Thinking

“#NoEstimates is merely a call to refocus on the agile manifesto”

Woody Zuill

Page 128: #NoEstimates Thinking

Individuals and interactions over Processes and tools

Working software over Comprehensive documentation

Customer collaboration over Contract negotiation

Responding to change over Following a plan

Page 129: #NoEstimates Thinking

Individuals and interactions over Processes and tools

Working software over Comprehensive documentation

Customer collaboration over Contract negotiation

Responding to change over Following a plan

#NoEstimates

Page 130: #NoEstimates Thinking

Massimo Iacolare

co-founder of the awesome

freelance

.net and js expert

love shipping features

love making users happy

quality addicted

Page 131: #NoEstimates Thinking

Lambacon - marzo 2015, bologna

Page 132: #NoEstimates Thinking

Thanks

Questions?joind.in/event/iad14