I am a lone developer who built a billing system for a customer as moonlighting job. We had worked together previously on a number of occassions and as a reults no contract was ever signed between the two of us, no were any precise requirements given up front. The customer supplied some very high level requirements and I worked with him to extract more detailed requirements as the system was built.
The customer has been successfully using the system for a few months now for it's exact indended purpose and it meets all of his requirements that were outlayed when the project began (a fixed price quote was given). He has paid the full amount of the software about 6 months ago. The customer hasn't yet accepted the software as 'live'. He has sent me two small defects in that period since he stared using the system for it's intended purpose. On both occassions I had a fix installed with two days.
After not hearing form the customer for over a month, I spoke with him yesterday, as he was wanting a quote for new work. I informed him that I am not taking on new work as I do not have time. At this point he told me if I do not do this work for him, for which he will pay, he will ask for his money back on the existing system. He rationale was that a system that cannot be supported is of no use to him.
He owns all intellectual property for the system and has all source code. When I mentioned that any developer could support the system, he said he wants the original developer to support it.
I have a very bad business relationship with this customer, after a number of refusal to pay invoices, and both do not wish to continue working with him, or doing any moonlighting of any type for any one, as I no longer have the motivation or the time, with a young family to look after.
I was wondering what the best way to handle this situation would be. I expect I'll need to seek legal advice. Is the customer entitled to his money back? ...even though he is using the system for it's intended purpose and he has generated considerable invoices from it (well into the hundreds of thousands of dollars, money he would not have been able to make without the system) and he yesterday said there are no problems with it. If push comes to shove I am now prepared to return the money. What about getting compensated for the work to build the system?
The question of providing ongoing support was never raised before an agreement to do the work was made. This has now been going on for 3 years, when it should have been a three month engagement. The system was completed, awaiting UAT, 3 months after we worked out the detailed requirements in September 2008. Since then I have made small paid changes and a number of free changes, as the customers business evolves, but he still hasn't formally accepted the system is live, even though I've told him it is Live and it meets all his initial requirements.
Really not sure what to do as the experience has put me off software development. A problem, as it's been my career for the last 10 years and the sole source of income for my family.