Ask HN | How you guys make Time Estimates

9 points by mabid ↗ HN
I was wondering if you guys could share your knowledge and experience on estimating the number of hours a software project will take. I do freelance RoR work and many of the clients ask for an hourly rate and an estimated number of hours. I find my self totally confused when i try to estimate hours for a large and complex enough project. How should one go about this ?? thoughts , experieneces, suggestions please.

5 comments

[ 2.8 ms ] story [ 17.0 ms ] thread
I do front end dev work, and mostly it comes down to experience. I usually try to work out a small test of some of the more complicated problems beforehand, so I might have a sense of how much time they'll take. Then I break the project down into parts and assign hours to it

You can bill your client for actual hours, or do a flat rate based off the hours you think it'll take. I tend to do a hybrid approach where I bill them based on a flat rate with a defined scope, then can charge more if they change the scope or something takes significantly longer than expected. Most of the time I come in under my hours, but not always. It's worked well for me.

Experience really, but the key is the granularity of the requirements. The more well defined the project scope is the easier it is to estimate and the closer I find my estimates to be. The more information you can get out of the client about what they want the more accurate any estimate is going to be. I would never let myself get tied to any quote that wasn't made for a specific set of requirements.
I find that a key component in any estimation is finding the number of hours I think it will take, then multiplying that number by a factor of 1.5 or 2, depending on how I read the client. It is very important that you get a feel for the client before you move forward, if they seem like they will be a pain in the neck, move on. It is much better to turn down work and find better than create a poor relationship.
Think of how long it would take ideally, then double it, then add a week to clean up before the next project.

It's uncanny how well it works for me.