Seattle Community

Avonelle Lovhaug
Avonelle Lovhaug
Professional Software Developer
Shoreview, Minnesota
Greatly helpful
8.0
out of 10
3 votes

5 Estimating Strategies to Keep Your Projects Profitable

A poor project estimate can take a great business opportunity and turn it into an unprofitable nightmare. Here are some strategies for creating project estimates that are more accurate.

Written Mar 08, 2008, read 533 times since then.

 

In my work as a software developer, I spend a great deal of time on project estimates. The ability to effectively estimate the time and effort it will take to complete a project can be the difference between making a nice profit and descending into the red.

Unfortunately, as I’ve told customers and colleagues before: “The one thing we know about estimates is that they are wrong. If they were accurate, we’d call them something else.”

Here are five estimating strategies that can help you be more accurate, keeping your projects profitable and on schedule:

1) Keep it small.
Break down your project into tasks that are no larger than a single day of work (and even smaller if possible.) The larger the pieces you are estimating, the more likely you are forgetting a task or step. For example, instead of the task “pack my house” with an estimate of 2 days, break down the job into packing each room (or closet and dresser). You’ll find that when you add the time back up, you will end up with more time than your original number.

2) Two minds are better than one.
This can be tricky when you are a freelancer, but if it is possible, have someone else review your estimate, especially on a larger project. Or even better, have them put together their own estimate separately, and then compare them later. If you both come to roughly the same numbers, you can feel more confident that your estimate is accurate.

3) Take a break.
If you can’t have someone look over your estimate, give yourself a few days to clear your head. I try to give myself at least 2 days between putting together a first estimate and producing the final bid. Often walking away from an estimate for a few days helps me to see tasks that I have been missing.

4) Use padding for protection.
A lot of people build a "fudge factor" or padding into their estimates. The idea is that there is uncertainty in every estimate, and we tend to under-estimate the effects of that uncertainty. Therefore, it makes sense to add some padding to the estimate, knowing that inevitably there will be something we forgot to include.

Many people recommend doubling the overall estimate as a way to address this concern. Personally, I prefer doing this at the task level, not the project level, and to do it based on my confidence of the specific task’s estimate. For example, if one task is particularly familiar to me and I am relatively confident about the estimate, I might add a 10% fudge factor. But for a task that I am less confident about, I will add a more aggressive percentage, 25% or more. I do this instead of simply doubling the estimate because an estimate that is too high might mean that my bid is too high. I’d rather have an accurate bid than one that is so high that my bid loses out to someone else!

5) Make people accountable.
It is preferable for the person who will actually do the work to estimate their own tasks. Thus, if your estimate includes tasks that others will perform, get them to estimate the time involved (or at least get their feedback before you finalize your estimate.) This is especially true in the software development world, where a task that would take one developer 2 hours might take another developer 10. Think about how a difference that large could affect your project schedule!

Bonus Tip
The past is your friend. Historical information is the best predictor of the effort required to complete a project. Have you previously completed a similar project? Examining how long another project took can give you clues about how to estimate this project.

And even if past projects aren't exactly the same as the one you are estimating, you may still find there are lessons to be learned. I use a spreadsheet template for my estimates that contains tasks that I have performed on a lot of other projects. When I'm creating my estimate, I can easily delete the tasks that don't apply, but at least I don't have to worry that I have forgotten something obvious.

Keeping these tips in mind should help you to create better and more accurate estimates for your projects.

Learn more about the author, Avonelle Lovhaug.

Comment on this article

  • David Billings
    Posted by David Billings, Portland, Oregon | Mar 10, 2008

    Thanks, Avonelle. This has always been a challenge for me. I worry that if I bid too high I'll lose out to someone else (and may not know why), and if I bid too low I'll be swamped with work but not able to pay the gas bill.

    What struck a chord with me was the historical perspective you mentioned. That can be difficult when just starting out.

    As an artist, I often create promotional pieces or artwork for contests to increase my exposure. Something that helped me get that historical perspective early on was to track my time closely on those non-paying projects. When I did get the opp to estimate for a paying client it was much easier to calculate the time.

    Great article, thanks!

  • Avonelle Lovhaug
    Posted by Avonelle Lovhaug, Shoreview, Minnesota | Mar 10, 2008

    David - I think you are so right about tracking your time closely. However, it is something I really don't enjoy doing. Because I charge by the project and not hourly, I don't have to track my time that carefully. However, without accurately tracking all the time expended on a project, that historical information is lost.

    What I have decided to do is to compromise a bit. I don't track my time at a detailed level for all projects. However, I do occasionally track it for some projects, just to verify that my estimating skills are staying relatively accurate. It can definitely be an eye opener sometimes!

  • Jasmine Holmes
    Posted by Jasmine Holmes, Gilbert, Arizona | Mar 11, 2008

    First off, your article is great! I have been learning to perfect the art of estimating throughout my first year of business. I had never thought about adding padding to a project but I do see the value in it. I also like your advice of adding on a stage basis adjusting for the complexity of the task. Coming in too high on a bid is job suicide but your method seems like the perfect compromise between the two.

    About time tracking, I am a firm believer in tracking time on every project you work on because the historical data is key to creating better estimates in the future. I know it can be a tedious process but it can be simplified by using as software. Then time tracking is a matter of hitting a start and stop button—the software does the work for you.

    Thanks for a great article. I am going to implement your tips today as I work on my latest proposal.

  • Avonelle Lovhaug
    Posted by Avonelle Lovhaug, Shoreview, Minnesota | Mar 11, 2008

    Jasmine - I'm glad you found my article useful. My observation about padding is that the people who advocate things like "just double" the whole estimate are those who aren't impacted directly by the loss of the business! Job suicide is exactly right - yikes!

    While I really don't care for tracking my project time on a detailed level, I do agree that it is a necessary evil. I mind it less now that I don't bill by the hour, and so I'm just using it for my internal information. I think when people are billing by the hour the numbers can become less accurate. Here's what I mean: when I worked for that consulting company, we were billed out by the hour. But, we also had to provide estimates for our projects. If a job was estimated at $10,000, but it came in at $15,000, the person looked bad. So, a lot of people would work extra non-billable hours trying to keep the project within budget on paper. That made time tracking a farce.

    Of course, when you are running your own business this is probably less of an issue, because you certainly are less worried about your performance review! (Just whether or not they'll hire you again!)

  • Bruce Henry
    Posted by Bruce Henry, Seattle, Washington | Apr 08, 2008

    I think that you are exactly right that we should be aiming at a detail of tasks that are around 1 day in duration when beginning development.

    Our estimates are what often are so wrong (as you pointed out). I think that one of the biggest reasons is that we’re giving estimates like “2 weeks”. “2 weeks” isn’t really an estimate, it’s a guess, a prediction.

    An estimate is something like “1-4 weeks” or “3-5 days”. It really should be a range. One big downside of single-point guesses is that the guess is likely to be treated like a promise (particularly by your customer).

    There are few tools (e.g. LiquidPlanner) that handle estimating in ranges well so this can be hard. But if you always give all of your estimates in ranges (e.g. 4-6 person weeks, 1-3 days, 6-9 staff months, etc) it is quite clear that it is an estimate, not a prediction or a promise. Giving a range opens the discussion of what could happen (risks) that would push the effort towards the worst case end of the estimate or bring it in towards the best case end.

    Another nice thing about ranged estimates is that when you are asked to estimate something with poorly defined requirements you can give wide ranges to communicate the uncertainty. Well defined projects with believable requirements get estimates like 5-7 weeks whereas poorly defined, nebulous requirements get estimates like 4-20 weeks.

    Your customer will appreciate this because folks in other functions (e.g. marketing, operations, manufacturing,...) need some idea of when they are likely to take delivery of the software. A person or team that can accurately (not precisely) give estimates for these things gives their client a real competitive advantage.

  • Avonelle Lovhaug
    Posted by Avonelle Lovhaug, Shoreview, Minnesota | Apr 08, 2008

    Bruce - I think you are exactly right. When we are communicating with others about estimates, it is preferrable to provide them as a range rather than as a single number.

    Typically I call this a "ballpark estimate", but that is somewhat redundant. Since most of my work is charged as a fixed bid, I often don't have to communicate estimates directly to others (except for "estimated completion dates" - but that is really not the same as "estimated time to complete"). However, occasionally a customer will ask me to provide a non-binding ballpark estimate range based on the information we know so far. Communicating estimates with a range really helps to convey the uncertainty of the situation, and helps them to differentiate it from a binding bid.

  • Nancy Newman
    Posted by Nancy Newman, Kirkland, Washington | Apr 16, 2008

    A very helpful article, Avonelle, Thanks.

    In my work as a consultant, I find creating estimates for projects to be one of my most dreaded tasks! I particularly liked your ideas about padding per segment, and not by the overall project costs.

    Another piece of the puzzle for me has been to clearly lay out the scope of what I intend to deliver. Generalized descriptions of tasks and outcomes can leave you wide open to the client having a different interpretation of what you are promising, and expect outcomes that require more work than your estimate intended. I also build in "check-points" at which the estimate will be re-evaluated in the context of the project progress to date, and potentially re-negotiated.

    As for tracking time, even when you don't bill by the hour, I find that the clearer sense I have of how much time I'm committing, helps me consider my "resentment point" as to when I might feel the project is taking more time than I feel comfortable with - and therefore am resentful that it is no longer "psychologically profitable."

    Thanks. Nancy

  • Avonelle Lovhaug
    Posted by Avonelle Lovhaug, Shoreview, Minnesota | Apr 17, 2008

    Nancy - you are so right about scope! And I love your idea about check-points. I may have to try that on a future project.

    "Resentment point" is a good way of thinking about it. I find too that if I adjust my pricing based on things like how interesting the particular project is, or if the customer is easy or hard to work with, or if I have more flexibility with the schedule, then I can affect that "resentment point".

    Thanks!

  • Nancy Newman
    Posted by Nancy Newman, Kirkland, Washington | Apr 17, 2008

    Thanks, Avonelle,

    Actually, your comment about clients that are hard to work with reminded me of another thing...

    In the scope, I include my expectations for the clients role. Often time my work is dependent on something they need to contribute, and if they don't, I'm stuck with project time ticking and inadequate input to move forward. I have learned the hard way to lay out the flow between my role and theirs as well as define cost impacts if they drop the ball. It's tricky to do, but it's important to at least have the conversation!

    Nancy