
10 tips on not getting screwed by a client (from a developer) - richardsondx
https://medium.com/how-i-learned-ruby-rails/how-not-to-get-screwed-by-your-client-when-youre-contracting-21c95eef0c4a
======
new_hackers
some sour grapes here.

I realize you feel jaded, but airing your business openly does not endear you
to future clients.

Overall your tips are good.

About your estimates: ALWAYS estimate the time to deliver. As humans we tend
to underestimate because in our heads we (generally) want to please people. So
we give an underestimate, or a partial estimate.

I recommend this:

    
    
        * break the project down into logical phases
        * estimate the minimum time it would take if everything goes well
        * estimate the maximum time it would take if things go badly
        * add up the mins and the maxes
        * add a pad 
        (what if I get sick for a couple of days, 
        what if the customer isn't able to be contacted,
        etc)
    

Give the min and max estimate to the customer. They may end up going with
someone else. But you don't get stuck with an impossible task either.

It also helps quantify the unknowns. When the customer looks at it and says
"it may take between 1 hour and 2 weeks????" That is when you state that there
are too many unknowns to give a more accurate estimate. Then guide them
towards a path of more concrete understanding and tighter estimates.

Also, deliver in and bill in phases. Let your customer know they are able to
walk away at any phase, but they will owe for each phase that will be
accomplished.

Thus, the "scoping deliverables" phase may take 1-4 hours of BILLABLE work.
But if they don't like what they see then they can walk away.

