I'm a freelance since 10 years and I develop hardware and software. Usually the pattern of a job is the following:
- A customer contacts me asking for something
- I submit him a quote with the proposal of my supply conditions
- If he accepts and signs the quote I do my job
- He helps me to validate the project
- Billing and payment
Some words on point 4: in most cases I cannot fully test the board or the software without some support provided by the customer. I.e. if the board has to be connected to an industrial machine I need to go there with his technicians, and so on.
One of the worst problems I often face is when the customer receives the stuff (pcb or software) but doesn't actually test it - even for 9+ months. And he doesn't pay me because "he hasn't tested it yet".
One day he wakes up and requests me to be immediately available because "my project doesn't work".
Well, sometimes this is known and expected because as said I actually need to complete the development on field, others he changed his mind in these months and he wants something different.
My supply conditions look like these:
the delivery date is guaranteed if I receive all information and support as described in the quote
after 30 days from delivery the project is assumed to be completed and fully working if no feedback is provided back. Billing will follow.
any change to the specifications of the project should be discussed and might lead to extra costs
(They are actually written in Italian - I apologize for any grammar error).
When I point out these conditions in such a situation, these are the most common answers:
I don't care/read them
The project doesn't work as I expect, hence it's your fault
Because I wasn't able to use your project for N months (well because you didn't use it!) you will be paid after other N months
These conditions are not acceptable to me (so why did you sign them?)
What do you suggest to prevent these uncomfortable scenarios?
Of course losing a customer is a valid option, but too many of them show this behavior. Perhaps there is something wrong in my pattern?