Top Banner
Massimo Iacolare @iacoware #NOESTIMATES thinking #iad14
132

#NoEstimates Thinking

Jul 02, 2015

Download

Software

Why estimates lead us in the wrong direction and what we can do about it!
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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