

Ask HN: Client wants me to set estimates and not go over... What should I do? - erikpukinskis

I've been working for a client for several months. Up until now, the estimates have been pretty casual: sometimes they ask when I think something will done. Often they just assign me a story and I bill them for it.<p>But recently a feature took substantially longer than estimated (they pressured me to lower an estimate, and I stupidly caved). Now they're asking that I make an estimate for a feature, get approval, and then not bill for more than the estimate.<p>What do folks think I should do?  To me, software engineering is fundamentally a chaotic activity.  Sometimes something you think will take an hour takes a day.<p>What seems fair to me is that I set an estimate, and then bill for the estimate, regardless of how long it actually takes... that way my underestimations are compensated with my overestimations.  Then I can track my velocity and over time get paid for the time I actually work, rather than constantly absorbing the overages.<p>What do other folks do?
======
jules
Give them high estimates. You taking the risk should cost them a premium. Make
sure they understand that. And fix the scope, or they'll try to maximize the
amount of time you work for the fixed budget.

~~~
mishmax
Yeah I would overestimate the cost, tell them exactly what they're getting,
and if they ask for something new don't be afraid to tell them if it's not
part of the estimate, and send them a new estimate.

------
toast76
The answer is quite simple. Never do a variable amount of work for a fixed
price. Billing on "estimates" is a risky proposition for both sides, and you
need to explain this to your client. They may win sometimes, but you may also
win. Explain to them that they may end up paying double the actual cost if
you're forced to estimate high, and they'll quickly work with you to refine
the pricing.

Some clients will try get this past you by requesting a "quote estimate"
instead. Which is them saying, "we will pay less if it's less, but we won't
pay more". I have one client who does this constantly. The best way around it
is to specify EXACTLY what you will provide them, and EXACTLY what they must
provide you. If anything changes, it's a variation and you quote the change
before doing any more work. They'll soon get the picture that uncertain work
leads to uncertain pricing...no matter how they try to do it.

If you are uncertain as to how long the work will take, you need to improve
your estimation skills. Sorry! Software engineering is most definitely NOT a
chaotic activity. Every task can be broken down into smaller quantifiable
components. Estimate on the components to come up with your quote. If you
can't accurately estimate how long something will take, then it won't matter
how you quote, you will eventually lose out.

I use the (average of best case + worst case) + slippage (15-20%) method which
serves me pretty well. I learnt this from a large engineering firm I contract
to which they use to quote $10million+ jobs. It evens out uncertainty and
leaves you with some wriggle room.

------
iuguy
You need to tell them (in the most diplomatic manner possible) that they can't
have their cake and eat it.

The can have the work at a fixed price if they want, or they can pay for time
but it's unrealistic to expect both. It sounds to me like they were very
unhappy with the job that took longer than estimated, and you need to address
this if it's the root cause of their change.

------
andrewtbham
It sounds like they feel like they got burned on the one feature. One thing I
try to do is if something starts to run late is let them asap. When did u tell
them it was running late?

