@karhatsu / #agilia15

#NoEstimates

Going Beyond Estimates

blog.karhatsu.com | Henri Karhatsu | @karhatsu

"#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'."

Woody Zuill

"We are uncovering better ways of developing software by doing it and helping others do it."

#NoEstimates isn't about denying to estimate.

It's about finding better ways to decide.

We need estimates?

Need to decide what to do next

Need to decide the content of marketing material

Need to know when it's ready

Need to estimate

What next decision

Opportunity cost
=
If we choose to build feature A now,
we will build feature B later or never

What next decision

Cost of Delay
=
How much will we lose over time
when not having this feature available?

Attribute substitution

~ Replacing a difficult question
with a simpler question
in order to be able to decide
 

Dangerous attribute substitution

When will this be ready?

How long will the programming take?


What about interruptions, rework, waiting, queues, etc?
(Flight Duration Fallacy)

Asking for estimates

vs.

Looking the data

Example data from real project

http://agiledata.herokuapp.com

Example forecasts from real project

Forecasted work days for the next 10 tasks

http://agiledata.herokuapp.com

Changing the system conditions

When will I get the book I ordered?

Estimates are obviously needed here

Are they?

Software organization structure as a system condition

Initial situation

After splitting dev team

Change in the organization structure made it possible to abandon estimation in daily work (Team 2)

But long before that...

"We do sprint planning estimates because Scrum"

Sprint estimation without benefits

Estimates bringing no predictability

Estimates not helping in decision making

Unmotivated developers

Calculatory cost of sprint planning ~100 000 euros/year

Continuous improvement

Smarter sprint plannings

Splitting tasks

Better collaboration in the team

Improvements in testing

Improvements in CI process

...

Team split

Result

Stable releases every 2 weeks

Increased trust

Deliver working software often in small enough pieces in tight collaboration with the stakeholders.

Trust ▲

Need for estimates ▼

Sometimes you need to change your system conditions first, sometimes you need...

Courage to try

"Creativity is courage"

http://visible-quality.blogspot.fi/2014/11/power-of-stories-and-how-one-hour.html

The big project question

It would be risky to start without estimates

But are you aware of all the risks related to making the project decision based on estimates?

Risks of estimate-driven decision making

Mindset of bigness

Either-or mindset

Faulty assumptions without validation

Commitments based on guesses

Estimates becoming targets

Focus on output instead of outcomes

False sense of certainty

...

Alternatives

Lean Startup

If you are not sure whether
you are building the right thing,
validate your guesses first.

Don't try to estimate a project
that should never be started.

Start with small

Instead of committing yourself to 6 months project,
can you first commit to 1 month?

  • Investment to knowledge (with known price).
  • Working software and learning
  • Possibility to collect data of your progress (ref. forecasting).
  • Possibility to increase trust between stakeholders
  • Option to quit, option to continue

Vendor selection problem

You have already decided to start the project and you want estimates from your vendor candidates to see who is making the best offer.

Don't.

Vendor selection

  • Choose your vendor based on their skills and capabilities.
  • If they promise the solution in 6 months, don't get excited, be skeptical instead.
  • Ask them how they are going to approach the problem.
  • Work together to find out how the work can be split.
  • Work together to find out what are the riskiest parts that should be tested first.
  • Prefer vendors who accept short term of notice.
  • Think about the cost

Summary

Don't be afraid to open the door, go beyond estimates.

There is an interesting world full of opportunities.

Understand the need behind estimating.

Try to find better ways to meet those needs.

Work on improving your system conditions.

Be courageous. Be willing to explore.

It's about seeing the world from a different angle.

museumofselfies.tumblr.com

Thank you.

www.karhatsu.com/agilia15

@karhatsu
blog.karhatsu.com