Estimates aren’t very easy. In fact, I’d say that it’s the hardest part of being a consultant because of the time and effort that goes into making a decent estimate. It’s really just an educated guess.
Think about it for a second. You’re being asked to figure out how much time and money it will take do something without actually doing the work. And in most cases a client has given you a vague, rough idea of what they want. If you’re lucky.
If you’re unlucky, the client has an OPC (Other Peoples Code) project that they’re bringing to you to fix. What’s even worse, they give you a paragraph of what the application does, with no specifics, and expect it to be done quickly and cheaply and correctly.
The other thing that sucks about estimates is knowing that we humans are notoriously bad at determining how much time something will take. We’re good at estimating a lot of things but time estimates are ephemeral at best. I started my career as an electrical engineering doing project engineering work. It only took a few small projects (and getting chewed out when my estimates were horrible) to realize that my ‘it only takes a day to do that’ estimate turned into three days (or more).
So I have my multiply by three rule. Take your estimate, which is really the ‘if everything works perfectly the first time and I can devote 100% of my day to it’ estimate and then multiply by your reality factor.
The real trick is learning from your past successes and mistakes. Now that I have a standard tool set of classes, controls and modules that I’ve used on a dozens of projects it’s easy to say that adding ‘X’ is 15 minutes worth of work and the reality factor is 1.5. Creating new controls, since it has a high degree of initial failure, might have a reality factor of 2 to 3. If you have a feeling that a client is going to be really picky, maybe that reality factor goes up a little. If the project requirement details are scarce the factor goes up again.
Trust your gut on this one folks. The figure at the bottom of the spreadsheet seems high sometimes. You’ll be tempted to lower some estimates to make it more palatable to the client. Sometimes you might have to do that to get the job, but try to resist the temptation. As a consultant your pricing is based on what your time and experience are worth along with all the other things that go into being a business. You have overhead, marketing, taxes, insurance, and you have a retirement plan, right?
So what’s your Reality Factor?