DEV Community

Cover image for Deadlines Without Estimates
Ben Brazier
Ben Brazier

Posted on • Originally published at torvo.com.au

Deadlines Without Estimates

In my last article Why Estimates Are Waste we covered some problems with estimates but this raised some questions about managing deadlines. Most companies think that in order to meet deadlines we need to estimate and plan out all of our work. This isn’t the case and today we will cover why.

Smaller Releases Lowers Risk

Large Releases Are Higher Risk

Software delivery in large organisations is often managed by identifying a deadline far into the future, determining what is required for the deadline, then aiming to deliver on or just before that date.

This leads to a large amount of time spent estimating and planning what can be done and in what order. The risk involved in this planning work should be taken seriously because the further in the future we plan the harder it is to be accurate. And as mentioned previously, estimates are only as valuable as they are accurate.

“there’s no value in wasting time estimating something that you know is going to change, and making long-term plans based on those estimates is foolhardy” — Allen Holub

Having a large amount of time between identifying customers needs and delivering value to them also increases the risk that the solution doesn’t work or isn’t what the customer wants.

So how can we reduce the risk of large releases?

Deliver Frequently

We may have a deadline set for 12 months from now, but what stops us delivering sooner?

Instead of delivering a large solution in 12 months we can deliver a small one in 3 months. This gives us faster feedback and if we are going in the wrong direction we have saved 9 months of development. If things are going well we can continue to deliver every 3 months whilst incorporating feedback we wouldn’t otherwise have.

Continuous Delivery

What if instead of delivering in 3 months we deliver today?

We might not even be able to get a working version today, but how close can we get? If we try and deliver today it becomes clear that we need to only focus on the most important piece of work. This mentally lets us work with priorities instead of estimates.

Prioritisation Over Planning

We don’t need plans, we need priorities. Priorities let us define what is important and trying to deliver a solution today can help guide us.

We need priorities to identify what to work on but we only need enough prioritisation to continue working. Any effort spent not trying to deliver value to our customers as soon as possible is waste and slows us down.

This is why in order to deliver more value faster all we need to do is:

  1. Identify the most valuable task.
  2. Work on that task.
  3. Repeat.

If everyone in your organisation follows this process when delivering software I believe it will be a lot more effective than any other process you’ve seen.

Contact me on:

Discussion (1)

Collapse
chema profile image
José María CL

DDD by Eric Evans is useful to understand the complexity management too