I have a big dilemma. Let me first set the stage and then you can all give me an idea of what my best options are:
January: I get a prospect for a custom subscriber website with an ecommerce cart. I deliver a proposal and contract detailing a subscriber module with a sponsorship module for a specific business usergroup who can “sponsor” other members for a trial membership. The site also requires an affiliate program being available to the “sponsor” roles with the option of a “free discount coupon” for the sponsor/business usergroup to print out and hand to their clients. Client signs off on this contract with this specification for this specific business usergroup.
February: Client writes a “Business Model” for her business. I review it, note that the requirement for “Quickbooks integration” was not in scope for the website. A phone call has us discussing the “business usergroup” which now includes other business entities but no mention of any other changes.
I review PCI Compliance (now more of an expert than most people on the planet and led me to develop my blog site specifically on it) After this review, I realize the CMS ecommerce functionality will not help them, particularly after they refuse to use Paypal. I go out online and research up a new payment gateway company that will allow them hosted payments and scheduled payments w/ the ability to use tokenization to make additional charges & schedule subscriber payments. I explained to them that it took a long time to decypher the API for this company but I got it done.
I work my tail off, putting over 200 hours into the project. (I had told the client that I would split the cost of development and regain my costs via resell of the software). I end up being late but detailed everything that was done to create this new module to the CMS. Finally get the first beta up for testing 3 weeks later than the deadline in the contract. Fortunately the contract states “Customer acknowledges, however, that this delivery deadlines and other payment milestones listed int he Project Proposal, are estimates, and are not required delivery dates.” which I use when they continue emailing that they are not happy.
Client asks for a testing script on the software. I write a step by step process for testing the software. Client’s husband (a 30 year veteran of programming) goes through the testing over the course of a week. Client’s husband emails twice and has one phone discussion. Client’s husband admits that he does not know how the software is suppose to work. He discusses the website with client.
The first email is full of questions/ fixes and the second email details database changes in a rough ER diagram. They discuss that the affiliate program should have multiple levels for different types of affiliates. This is news to me. The contract and the “business model” which was not part of the signed contract say nothing about multiple levels. I give them a date to try to finalize stuff but life happens & I email them back and explain the problems & go through the 30 requested changes with what I had done (about 15 of them) and what was out of scope of the original signed contract.
During a couple conversations I mentioned that I had a few interested parties who wanted to use the software when it was done on their own sites. One was going to be a client but left because it wasn’t fast enough, another was another developer who was interested in a development license.
I have a phone conversation with the client and programmer husband this last Sunday. I begin by explaining what is out of scope, client begins arguing with me. Says that we discussed this and it was in scope of the project. Starts screaming at me that all I care about are the other potential clients and not about making the best possible site for her. Client walks away from the phone and I continue with her programmer husband. We go line by line over the changes requested. He requests a new deadline date. I say, ok, I’ll get you one tomorrow with a realistic deadline.
While sitting waiting for my child’s surgery to complete yesterday (Monday), I think about this application, the things that are requested. My stomach in knots over everything, I talk to a colleague who is a solution architect and worked on software for one of the big 5 banks in Canada. We go through my contract. He says the contract has been violated by them. The tiered affiliate program is out of scope and that the Arbitration agreement cannot be used because we are having a “conflict” rather than as the clause says arbitration over a “understanding of the agreement”. (After my discussion with him, I’ll be reworking my contract!)
I sit down after going through the 30 points with my friend, decide how long it will take, pad the time to cover any issues and send an email with a new timeline. Client emails back and I quote: “That is way too long. The deadline for content is this Friday, and for skinning the site Sunday. If you cannot meet this deadline, send my money back.”
I am trying my best to resolve this amicably. Right now, I’m attempting to at least get the fixes into the backend, I don’t know if I can accomplish the other requested changes.
Right now, I’m planning to try to get everything done by Friday to please this client. However, in the event that I do not, I’m wondering what my best options are? Enforce the contract and wait for the legal stuff to start, just refund the initial deposit (and this is something I now will forevermore call a “retainer” which is “nonreturnable” and worked against) and get a signed agreement on the refund that states client will never speak about me or my work.
What does everyone think?