As you enter a career of being an independent web worker, you can hardly avoid negotiating contracts with potential clients. Inevitably, the first questions that will come up are “how much is this going to cost?” and the closely-related “how long is it going to take?” Providing reasonable (and acceptable) answers to these questions is often the difference between a signed contract and an insincere commitment to call you back later. Whatever your skills as software developer or web designer (or whatever your web work career entails), you need to also understand the basics of estimating.
Unless you’re doing utterly routine piecework (data entry from paper forms or perhaps transcription), estimating is more art than science. But there are some things you can do to increase your chance of turning out a good estimate: one that ends up bearing some resemblance to the time it takes to do the actual work. Here are five tips to help you get started on refining your own time estimates.
1. Estimate in inch-pebbles, not milestones. When you’re faced with a large piece of work to estimate, don’t try to come up with a single number to cover the entire job all at once. Break it down into pieces, and then break those pieces down into pieces until the pieces are small enough that you can see how you would do each one and put a number on them. As a general rule of thumb, if the pieces take more than 4 to 8 hours, they’re not small enough yet. Most people have trouble guessing their time to perform any job that will take longer than that.
2. In estimating, 2 plus 2 doesn’t equal 4. After you’ve broken the job down into tiny pieces and estimated them all, the temptation is overwhelming to add up all the individual estimates and make that the estimate for the entire job. Don’t fall for this. The problem is that you won’t hit your estimates, and the variance is asymmetrical – if you estimate 4 hours for a task, you can’t take much less than 1 hour, but you could take 20 hours if you were wildly wrong. So 2 plus 2 might equal 4 – or it might equal 12. There are fancy applications to apply statistics to this problem, but as a rule of thumb, take your best total estimate and multiply by 2.5 to allow for this.
3. Don’t estimate by wishful thinking. You may know that the client only wants to spend $15,000 on a particular job. If your estimate comes in at $37,500, don’t let this fact pressure you into submitting a $14,900 number in its place. No good will come of not finishing the job or taking only half of the rate you need to live. You should estimate realistically and, if necessary, point out places where the work can be scaled back to fit within a lower budget.
4. Don’t estimate in a vacuum. To produce an accurate quote of hours or price, you need to know what you’re quoting on. If your potential customer didn’t provide a good spec up front, you need to call them, meet with them, or swap email until you really understand the work that you’re agreeing to do. The alternative is to try to move to a more agile approach, where you’re selling hours to be applied to whatever tasks are mutually agreed as the job proceeds – in which case it becomes impossible to estimate a total “finished” cost.
5. Track and correct. Make sure you track your time and, at the end of the job, compare it to your initial estimate. You can use this information to tell you whether your estimates are consistently low, high, or just right – and to adjust your next estimate accordingly. This won’t help on your first estimate, but down the road a year or two you’ll be glad for the increased accuracy, and so will your customers.