How to Estimate a Programming Job

A while ago, Steve hired a programmer, who then contacted me about the job. See, it was his first freelance gig, and he didn’t know how to estimate the time to complete. Here’s what I sent him, minus the specifics of the job:

If you’ve never done an estimate of hours before, think in terms of HOW you work. For example, if you work 4 hours / night, and this will take 3 full nights to do, then it’s 12 hours. Most things are at least 1 hr; nothing is under 1/2 hour. Then double that number, and that’s what you should estimate. This will also double your time to complete the project, but never miss a deadline that you set. Spell out exactly what’s included – anything not written down is not included. Make this a bullet-list.

Then track your time and what you’re doing; again, anything beyond what you quoted is additional. When you bill, however, bill actual time, as long as it’s not over your quote. So if you quote 24 hours, but you do it in 14, bill 14. You’ll have happy clients that way.

I’d estimate this project like (everything within ()’s has been replaced with generic terms):

Research (some web 2.0 service) API – 1 hr
Research (another service) API – 1 hr
Database design – 1 hr
Import (set of data) & (other data) – 2 hr
(Data reader) – 1 hr
Cron to (do work) via (service) – 3 hr
(Output page) – 1 hr
Admin tool to manage (some data in the database) – 1.5 hr
Admin tool to manage (more data in the database) – 2 hr

This totals 13.5 hours, so my estimate would be 27 hours. When you’re asked to do something that’s above this estimate, tell the client you can do that, but its beyond the original estimate and would be an additional x hours. Even if it’s small (1/2 hr), bill them extra for it. They’ll respect you and won’t take advantage of asking for free things.

Depending on the size of the project, get 1/2 up front and 1/2 upon delivery. Some projects I do 1/3 1/3 and 1/3.

I used this method for years and always have more than enough work to do; if you’re good at what you do, and you’re fair about it, people will come back to you.

So if you’re just starting to take on freelance programming jobs, I hope this post helps you accurately quote your jobs, retain your current clients, and earn more from the referrals that’ll come in.

How To & Tips
Share this Story:
  • facebook
  • twitter
  • gplus


  1. Robert
    3595 days ago

    If this actually works and you have always been able to meet your delivery dates (both big ifs) then every programmer in the world needs to read this. So many programmers miss their deadlines it’s pathetic.

  2. grandpajim
    3595 days ago

    This is good advice for eny programmer – freelance or employed.

  3. PolarLava
    3595 days ago

    Very good Eric. I wish things worked out this well in my world. It’s getting better, but we all know it’s far from being an exact science and is more of a fine art. 🙂

  4. Trackback: » How to Estimate a Programming Gig - By Steve Poland - web startup ideas and brainstorms, straight up! (formerly Techquila Shots)

  5. Pingback: Hotchkiss Consulting

  6. Trackback: Quoting Programming Work | Hotchkiss Consulting

  7. Trackback: How To Estimate a Programming Job « planetOzh

  8. Eric Hall
    3581 days ago

    I have doing web design and development work in the Fort Wayne area (my home town) for almost 5 years now and have informally stumbled upon the practices you talk about. Great advice and served as a good reminder for me.

  9. Trackback: I’m Presenting at BarCamp Buffalo - Nagel Family Website

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.