#NoEstimates Thinking

Post on 02-Jul-2015

4812 Views

Category:

Software

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

Transcript

Massimo Iacolare @iacoware

#NOESTIMATESthinking

#iad14

my journey

MYTH

Estimatingsucks!

Estimatingsucks!

End of story. Questions?

Estimatingsucks!

Relax, I’m kidding ;-)

End of story. Questions?

Estimatingsucks!

Relax, I’m kidding ;-)

End of story. Questions?

kind of…

just lazy?

#NoEstimatesfrom

#NoSalaryto

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

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'

“#NoEstimates is a critique to how estimates are

usually handled not to how they should be done”

EDD

ED

EVELOPMENT

STIMATESRIVEN

D

WHY ESTIMATES DON’T HELP

WRITING SOFTWARE

DEALING WITHUNCERTAINTY

every project brings something new

DomainTechnology - toolsprocesspeople

DomainTechnology - toolsprocesspeople

we learn by doing+

ESTIMATES ?

UNCERTAINTY&

upfront

Oil & water

unreliable

MOST useful at the beginning

maximum ignorance

Cost of a featureessential

complexity +

Foundamental theorem of agile software development

Cost of a featureessential

complexityaccidental complexity+

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

to our e-commerce?

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

to our e-commerce?

BIASESoptimism bias

anchoring bias

LOSS AVERSION

AVAILABILITY BIAS

SELECTIVE PERCEPT.

…many more

sunk cost fallacy

we suck at making predictions

side effects

Set Expectations

Foster plansdetailed plans

detailed backlog

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

even when you start”vasco duarte

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

even when you start”vasco duarte

learn by doing

Hinder Adaptation

Hinder Adaptation

loss aversion

promote cost-based

mindset

cost ↳number

↳certainvalue ↳ ???

↳ UNcertain

cost ↳number

↳certainvalue ↳ ???

↳ UNcertain

availability bias

Costs become the target to Hit

same cost more features

same cost more features

more features =

better software

more features ==

better software

more features ==

better software

in case you are a developer

more features ==

better software

more features ==

better software

in case you come from javascript=

more features ==

better software

in case you come from javascript=

Fallacy

minimize output maximize outcome

more features =

bigger codebase =

Hinder ADAPTation

more features =

bigger codebase =

Hinder ADAPTationagain

BETTER SOFTWARE

BETTER SOFTWARE

BETTER features =

RECAP

plagued by fallaciesfoster detailed plans

hinder adaptationCOST-based mindset

don’t help with uncertainty

Where’s the exit, please?

step 0

sign the contract

get off to a good start

get off to a good start

affect execution

the perils of fixed-price fixed-scope

fixed price - fixed scope

requirements (estimated plan)

a price

a delivery date

fixed price - fixed scope

requirements (estimated plan)

a price

a delivery date

premisesrequirements captured the problem

you understood the problem

Uncertainty doesn’t exist

estimates are correct

execution goes smootly

premisesrequirements captured the problem

you understood the problem

Uncertainty doesn’t exist

estimates are correct

execution goes smootly

premisesrequirements captured the problem

you understood the problem

Uncertainty doesn’t exist

estimates are correct

execution goes smootly

customer problem

fp-fs

things go wrong

you failyou suck

customer problem

fp-fs

things go wrong

you failyou suck

bigger penalty fees

customer problem

fp-fs

things go wrong

you failyou suck

bigger penalty fees

more analysis

you f*ck me, I F*ck you

fixed-price, fixed-scope contracts

Agile contractsCapped time-materialincremental delivery

the exit, please?

adopt a development style which doesn’t rely

on estimates

we learn by doing so we should hit the

target iteratively

adopt a development style which foster a

healthy, mature relationship with my

customers

do the right thing

do it right

do it iteratively

do the right thing

do it right

do the right thingsolve the right problemthe starting point matters

map the problem with story mapping

jeff patton

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

help build customer trust Visualizing your strategy

story mapping benefits

build a shared understanding

spot story’s holes

build effective releases

walking skeleton

plan to reduce uncertainty

prioritize by outcome, not features

avoid silosUsers catalog cart promo payments

avoid silosUsers catalog cart promo payments

avoid silosUsers catalog cart promo payments

avoid silosUsers catalog cart promo payments

avoid silosUsers catalog cart promo payments

avoid silosUsers catalog cart promo payments

avoid silosUsers catalog cart promo payments

avoid silosUsers catalog cart promo payments

avoid silosUsers catalog cart promo payments

avoid silosUsers catalog cart promo payments

avoid silosUsers catalog cart promo payments

avoid silosUsers catalog cart promo payments

keep plans lightweight

half life of requirementsembrace flexible scope

do it rightget better at software development

how hard can it be?

do it rightget better at software development

how hard can it be?

support an iterative-incremental style of development

what do we need?

tight feedback loop

slice scope

exploit iterative development

technical excellence to keep it all together

tight feedback loop

tdd ↔ continuous delivery

slice everything

defer commitment

generate options

always assume there’s a simpler way

exploit iterative

developmentUncertainty-Jeff-Pattondon’t know what i want

“if you work on it only once you are

not doing iterative development”

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

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

iterative development is the result of your

well trained technical abilities

nurture your skills

technical xp practices

pair programming

tddsimple design refactoring

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

Woody Zuill

Individuals and interactions over Processes and tools

Working software over Comprehensive documentation

Customer collaboration over Contract negotiation

Responding to change over Following a plan

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

Massimo Iacolare

co-founder of the awesome

freelance

.net and js expert

love shipping features

love making users happy

quality addicted

Lambacon - marzo 2015, bologna

Thanks

Questions?joind.in/event/iad14

top related