Thursday 10 April 2014

Useful estimates

When someone asks me to produce some kind of documentation, I always respond with asking back "What is it for, and who will use it and for what purpose? Documentation quickly becomes outdated and needs continuous updating. We need to know all this before providing it."
We should respond the same thing when asked for estimates (just replace "documentation" with "estimates" and you're good to go).

Unfortunately I think the #NoEstimates "movement" tends to "drag down estimates in the dirt". I feel I need to lend it my hand...
We need to recognize that estimates have a lot of value. Sometimes it's actually not even a good option to try do away with them.
Here are some:

NB! When I say "you" below, I mean "the team" including product owner (of course) in collaboration with "customer" (or whoever is paying for the software you produce).

Prio

When there are items in the "backlog" (or other "idea list" you have) that have roughly the same value (actual or perceived), estimates provides great knowledge. Maybe you want to pick the "easiest" items or maybe you want to do the opposite and tackle the "hardest" items. I'm not talking about risk or value here, they are roughly the same (but still, estimates may provide great knowledge even for those).

Worth doing

Sometimes some items or projects doesn't have a clear "payback". They actually exists. Or maybe the "payback" is quite difficult to measure. But it's still an item or project the business wants to do (anyway, it's not your money). Then an estimate provides great knowledge to decide if it's worth doing. If it's too "expensive", maybe it's not worth doing it at all, not even a small increment/PoC/MVP/walking skeleton or anything.
Or maybe it is? Then we still need to define how much to spend on it and estimate if we can produce anything useful or gain enough knowledge for it.

If we can't measure the "payback", how can we know it's "too expensive"? I don't think it matters, it might just be a gut feeling or a wild guess (just like our estimates..?). But remember, it's not your money.

Worth doing #2

This is the most obvious, in my opinion. This is when you "know" what the investment is worth. You know what the goal is and how to measure the "success".
Maybe you want to start building on the most valuable or "risky" part first. Or build a MVP (Minimal Viable Product) or any other incremental approach. Or maybe you must have it all (that actually happens).
But, whenever you want to spend your money on something, you want to have a sense of how much (and sometimes when to expect it). I think you have the right to get that sense.

As a customer (the one buying your software), maybe I can define the cost upfront? Sure. But it's quite often not how I want to spend my money. "I want it all and I want it know!" :-) Seriously, I usually know what I'm after, I just want to know how much that is.
I might already have a sense of how much it is. Let's then see if we share that view. But maybe I haven't got a clue? I must then have the right to know if it's worth doing.

Anyway, I have a right to know how much this thing is, that I want. Even if I probably (in the end) don't want exactly that thing I thought I wanted. But please, tell me anyway. Tell me that it might be more expensive, or cheaper. Tell me I probably don't want what I think. Tell me what risks you see and other "unknowns" that might be expensive. Tell me how you want to solve that. Where should I put margins.
But let me know how much I should "budget". Let's solve it together.

Whenever I invite people for dinner I have margins. I over-estimate. I want to know it's enough for everyone. Even if it was "waste" in the end. I can eat "the waste" myself later. If my budget is low, I probably cut down on the number of guests, or buy something cheaper to eat. But let's all be honest with this. Be transparent. And my local supermarket will gladly help me with this. They will surely ask how many guests I've invited and what "quality level" I'm aiming for. But they will surely estimate the amount of food I should buy, and I will say I want to have margins.

Can we do the same?

Shared understanding

Sometimes estimates are great to determine if you have the same sense of the "complexity". Or if you share the same view of "done" and how to get there.
This is true both inside and outside the team. Maybe your customer have a budget already, or they might have a sense of the cost already. Let's see if we share it or if it's doable?
If your customer have no budget or no clue at all, estimates provide little or no value when it comes to "shared understanding". Just saying.


Are there other cases where estimates provides great value? Please let me know, and I'll happily consider updating this list.
For the #NoEstimates discussion to be viable we need to consider when estimates actually are valuable.

No comments:

Post a Comment