As a sort of precis I am going to give you the tl:dr, the less you pay in planning the less accurate the result.[1] It’s that simple. Unfortunately it is the probable underlying cause of all the woes I have seen in running projects.
They want us to guess but be accurate. They want a breakdown of stages, costs and deliverables with a scoping of what is involved.
This isn’t an advocacy for any type of method structure like waterfall or agile, it isn’t a rant about needing to have oodles of precision to the n(th) degree. It is quite simply that a high percentage of the work is not the construction, it is the plan.
Time for some explanation and maybe another car analogy.
Why does an Estimate Take so Long?
-or-
An Accurate Estimate is Going to Cost Money?
I have heard this response a fair time as well and I am afraid the answer to both of those is in the opening. But let me show you using images and allegory. When we are asked to estimate on building a project there is an expectation, and some might believe is, that this should have no cost to prepare; be broadly accurate; have a upper, or fixed, price that can be clearly defined and adhered to.
Now, we can do broad costs in time and money. We can listen to the idea and the 50,000 foot view and say yeah that’s going to take about this long, with this many people and cost around this much. The broad guess, for that is what it would be, cannot be relied upon as guide to the eventual cost, it just frames a rough idea.
That’s not what the client, or person who is asking, actually wants. They want us to guess but be accurate. They want a breakdown of stages, costs and deliverables with a scoping of what is involved. Most important they want this scoping done quickly and without cost to them.
So step back and think about this. If we use the car metaphor for a moment. You are asking us to build a car. Sure we all know what a car looks like. Sure we know the technologies that are involved in construction. Sure, we have built a car before. Our car might look like the following picture and I can say it will cost £90,000 and take 9 months to build:
But this is just a picture of a car with a guess at price and time. It might be good enough to show to people as the end product, but you couldn’t give it to an engineer.
There are no details. We don’t know:
- The dimensions?
- How many people it carries? What’s the minimum? Is there a maximum?
- Does it go off-road?
- How fast does it go?
- How much fuel does it use? What type of fuel? How clean is that fuel?
- How many cylinders? How many gears? How many wheels?
- What length of time will you use it? How often?
And we can go on and on. The issue is that we are not creating something from an existing manual or schematic. The car is unique, it has your constraints and needs.
In addition we have to build this car with no idea of how all of those things affect it while it moves. We also usually have no precise idea how you want to use the car? How will your clients use it and for how long? We also have to allow for changes to be made to the car, while we build it, that will either add new features or adapt to circumstances or failures in the new thing we are building. We have to draw schematics and write instructions as we go along so that the engineers know what they are building, and yet also have them in advance so that we can give you a more accurate price and time to build.
If you want to this to be done with any modicum of success you have to plan and consider. You have to build in stages and use the information learned as you build to modify your approach. To have flexibility you have to account for the time that takes to understand how to be flexible. Essentially to have any degree of accuracy what you are actually producing starts to look like this:
Conclusions
Plans can be worked out in advance, but think of them as a schematic. Like an engineer or an architect creates. The more accurate they are the more they cost in time and money to prepare. Not only that, but the level of good understanding, long term skill, and previous expertise in doing plans well is a requirement. This is a professional task that can only be done well by someone with a high degree of proficiency.
So don’t fixate on precision if you want a broad estimate. Everyone is happy at giving a general sense of time and costs as long as there is an understanding that they are just that, broad, without any specificity. If the truth diverges, and it will, usually widely, then don’t hold anyone to account for that. If you want a cost and a time estimate for free, understand that it will be a guess, it might be an educated guess but it isn’t something you can plan on.
And therein lies the nub of the problem, broad and inaccurate guesswork is often not what is asked for. Companies need a more accurate expectation of costs and time and they need this to plan their other activities.[2] So they should expect to invest time and money in the drawing of plans. Don’t expect a high level of accuracy or understanding if you are not willing to pay.
You must also consider in the possibility for increased costs throughout the development process. This isn’t an excuse to spiral any of them, it is an acceptance of the advantages to flexibility, adaptability and change. If you want any element of variation then you must incorporate that variability, you can’t just have variable requirements without a variable cost.
So don’t fixate on a final goal, focus on stages, plan and cost for those and expect to pay for the planning if you want to do this well.
[Don't forget that you can join in this conversation by using the comments form or by tweeting at @shadowcat_mdk]
Notes
[1] Where I say pay, cost or price in this article I am referring to all elements such as time, money and sometimes people and things.
[2] In a separate post I will be discussing how it is more profitable to see costs as a recurring budget.