For many projects, there is a very simple reason why the final invoice winds up being more than the estimate: The project at the end is different from the project at the beginning.
Let me back up. At the beginning of every project, there is a plan. I usually write a statement of work that defines what exactly we’ll be delivering at the end of the project. (This is also sometimes referred to as the project’s “scope.”) It’s basically a preview of your receipt. If all goes well, at the end of the project, you’ll get an invoice for the same amount with the same things on it.
Recently, I’ve had a few potential customers call, expecting to use the development process as a way to flesh out their ideas. They think that developers can just start writing code without a definite plan as to how the whole product will come together at the end. “We’ll work that out as we go,” they say.
Say our project is to win a formula-one race. We have a top-of-the-line car design, and we’re installing only the finest engine and using the finest fuel. It’s sure to be a winner. However, if the finish line to our race is draped between two other cars ahead of us on the same track, our project won’t have a fair chance of finishing — let alone winning the race.
No mainstream project — racing, web development, or otherwise — has ever succeeded like this. Moreover, successful projects can describe their plan in a just a few words that anyone can understand. “Our project is to win a formula-one race.”
Augmenting the service offering part-way through is usually doable, but is oftentimes not desirable. “We want the driver to enjoy high-tea service during the race.” Sure, let’s build in a crumpet box and a china cabinet, and we should be all set. Our description gets a little longer (and more bizarre), but it’s not breaking any laws of thermodynamics.
The project, at the beginning, was building the car. Now, at the end of the project, it’s two things: building the car so the driver can enjoy tea during the race. It isn’t to say that the project hasn’t gone to plan: The car can still win the race. It’s just when customers change their mind part-way through the development process, they oftentimes don’t anticipate that the decision will affect the final cost. Tea sets cost money, you know.
Not that changing your mind is a bad thing — if a bolt of lightning strikes you in the middle of the night, and you realize that a particular feature absolutely requires modification, it can be done. It just means going back and adjusting the plan. Adjusting the plan just means adjusting the budget. If we can’t alter one, then chances are we can’t alter the other.