This issue is why I'm not a contractor. I can't deal with estimates because they are always wrong. People claim to understand that, then fly off the handle when it comes up wrong.
Overestimating on purpose isn't the right way either, and not just for ethical reasons. Finishing early makes the client think you cheated them, and actually working the whole time makes you think you cheated yourself. Especially if you end up having underestimated after all.
And changes? Ugh. Clients truly don't understand why X is harder than Y, and they think it should cost the same.
I've been pretty successful in the past at guiding management into solutions that are easy to code and maintain, rather than the nightmare they asked for, but having to explain all that to a new client each time would be too much.
Personally I wouldn't do flat fee work unless the profit margin was astronomical or there was some other factor that made it heads-I-win, tails-I-win situation (this doesn't mean the client has to lose.)
Some kinds of work are eminently estimatable, if the requirements are stable. One time I was working at a job shop for a client who needed a PHP CRUD app. Because this was built within a framework, I was able to break the requirements down and estimate tasks to within 15 minutes and be able to schedule a week's work with about 10% accuracy.
The one trouble is I'd call up the client and show them what I was doing and she'd talk for 2 hours on the phone (which we'd bill $240 for at our rate) and have an endless list of small and medium-sized tweaks she wanted. Had I not put my foot down, she would have blown the budget and schedule completely. I did put my foot down and she fired our agency.
Fixed fee projects create moral hazard for the client: if you're really good in your sales process you might be able to get 4 out of 5 clients to be reasonable and make a profit on them. If you want to keep the 5th client you'll have them overrun the budget by a large enough factor that you lose what you made on the other 4.
I completely agree. It's tiresome to repeat yourself over and over, specially when you know it's also in the clients' best interest to not work with someone who guesses (and therefore often overestimates to be on the safe side). I'm hoping our prospective clients will read this blog post first and then -still- want to contact us. They are the gems you want to work with.
To be fair there definitely are people who get burned several times by eLancers and cut-rate web shops in their town and eventually realize that they get what they pay for.
An estimate should always be a range. And it should always cover the "cone of uncertainty".
If you don't know, reflect it in your estimate. Get the client prepared for falling within the range. And comfortable with the cost on the far end. Because while you hope it doesn't happen, it very well could.
In my experience a range of, say, £5000-7000 usually means £5000 to the client and it can take hours/days/weeks to budge that perception no matter how initially prepared they seem. I've also found people who, while comfortable with the upper estimate if it goes there, will then expect freebies on top as recompense for making them pay 'extra'.
Contracts and making sure you have fully prepared the client go a long way here.
If they consistently believe/say/whatever the low end, you have not done your job in preparing them. Every single time they mention the low number, you mention the high number.
If they expect freebies or feel as if they are paying 'extra', you have failed in setting expectations.
Overestimating on purpose isn't the right way either, and not just for ethical reasons. Finishing early makes the client think you cheated them, and actually working the whole time makes you think you cheated yourself. Especially if you end up having underestimated after all.
And changes? Ugh. Clients truly don't understand why X is harder than Y, and they think it should cost the same.
I've been pretty successful in the past at guiding management into solutions that are easy to code and maintain, rather than the nightmare they asked for, but having to explain all that to a new client each time would be too much.