I've been in the situation recently where I've been asked to estimate a project for contract work. I know my hourly rate, no problems there, but I have huge difficulty estimating how long something will take.
If you overestimate, you may not get the contract, if you underestimate, you end up working for peanuts to get the thing done.
So my question to you is; how do you estimate a project's timescale/cost?, and how do you negotiate with the customer to protect yourself in the event that the project runs over time budget, as they generally tend to?
thanks in advance, and apologies if this has already been asked.
Paul
Suit: Don't waste your time trying to work out what you expect the schedule to look like. Figure out what they can bear, and negotiate a deal that guarantees you get most of the money they can spend with the least risk to you. Your liability is in what you promise contractually, so hire a good lawyer to help you minimize your legal liability.
Me: Race to do the project before negotiations need to wrap up. Then write a beautifully detailed schedule with visible checkpoints, negotiate with confidence, and deliver checkpoints slightly a head of time on average. Use a little of your spare time to meet their mid-project change requests and build in a feature that tickles your interest and will delight them.
Coder: Negotiating a schedule is like negotiating how long it'll take to produce a baby. It'll be done when it's done, but if you get me a girlfriend I'll get it done faster.
Software Engineer: Charge your customer a standard hourly rate to record their requirements and break them down into function points. Estimate function point complexity and risk based upon your organizations prior prior projects function point productivity. Schedule a week with the customer 3 months from now to present your analysis and estimates including confidence intervals and costs in each scenario.