4

I am a contractor in a software development project that is a bit of a nightmare and suffering from Scope Creep.

Background:
I took on a project to develop a web application for a client. I was to work with developer, an employee of the client, who I thought was an experienced developer but turned out to only have very limited knowledge of web development. The verbal agreement was that the other developer would do all the front-end (HTML,CSS,JavaScript). My mistakes include (but are not limited to);

  • agreeing to an accelerated project timeline (I said 12 weeks but they got me down to 4 weeks),
  • fixed project price, thinking the other developer could do their part
  • agreeing to a project without making them clearly outline all their needs (animations, webgl integrations, etc).

It's now been 6 weeks and I have implemented the features outlined in the contract (5 templates, audio feature, custom posts, custom field integration).

The Problems:

  • The client keeps adding on more requests. He considers them expansions/alterations of the features I agreed to do in the contract but in fact, these changes are significant time consuming changes.
  • The developer introduces bugs.
  • The developer is meant to maintain the project after my exit but doesn't have the skills or experience to even deploy it.
  • I have tried to train him on deployment. He currently has a problem where he cannot compile the project in production mode, but it works fine for me on 2 different computers and OS's. He can't fix it and so both he and the client think it's my project setup.

What I want to do:
At this point I want to leave them with the project as is. It's not nice but I believe I have implemented the features outlined in the contract. I invoiced the client in 2 installments, 50% after 2 weeks (which has been paid) and another 50% 3 weeks after that (not yet paid). I am willing to forgo the second installment, and hopefully that keeps legal action away even though my reputation might take a hit.

What actions do I have available to me? Should I or am I obliged to fix the junior developer's issue? If the junior can't fix it, the client can't maintain/deploy the project.

Should I say no to performing tech support for the developer? Should I agree to do some of the changes the client wants? Should I say no to all of them?

  • 1
    Is the agreement only verbal? Be aware that the legal consequences could be better answered in other Exchange community – Ripstein May 24 '18 at 13:00
  • @MrRipstein thanks for your comment. I'm looking for ethical and practical advice moreso than legal advice. There is a written signed contract, with a specified total fee, list of features/items to be produced (vaguely stated), project due date (already past). – mk11 May 24 '18 at 13:03
  • 4
    Your question might be more on-topic (and get better answers) at freelancing.stackexchange.com – mustaccio May 24 '18 at 13:11
  • Does the contract have an outline of the deliverables? And no "Thou shall build me a website" does not count as one because the contents of the site are ambigious. – ValarMorghulis May 24 '18 at 13:16
  • 2
    Are you currently doing work outside the scope of this contract and not getting paid for it? Don't do that. – Glen Pierce May 24 '18 at 14:12
8

One of my mentors had a long career in contracting and explained some general guidelines to me that worked well through out their career and in my experience (although I have limited contracting experience):

  • Do your best to get clear requirements. Double and triple check them beforehand.
  • Every time - unless it takes less than 5 minutes - that you are asked to do something that is not in the contract you have to call that out, even if you are going to do it. Customer satisfaction is huge, and if you're going to give someone something you need to make sure they know you're doing them a favor and it will allow you to use this as leverage in other negotiations. When you are going to do it, use language like: "this was not part of our original agreement, but perhaps I can help."
  • Avoid doing any significant work that wasn't specifically outlined in the original agreement. If you give people things for free, they will value you less (it doesn't make sense, but it is true).
  • Don't be a pushover. If you have fulfilled your contract, demand payment in full. Do not offer to lose 50% of the money they owe you because their developer is incompetent and they want things for free.

To specifically apply these principles, you should:

  • Explain that you have finished all of the parts of the project stipulated in the contract.
  • Explain that the person working from their side has not fulfilled their side of the contract.
  • List any and all work you have done that was supposed to be done by your counterpart in their organization and any and all work you've done beyond the contract.
  • Demand payment in full before doing any further work on the project.
  • 8
    Just an aside: A video production truck chief I knew had a system. He had four laminated blue cards with "By the Way" printed on them in big bold type. When park & power was done, he would give the cards to the producer. He told them, "You get 4 By the Way's for things you forgot to put in requirements. I won't complain at all, but each one costs you a card. When your cards are gone, you're done." Solved a lot of problems and set clear expectations up front. – Wesley Long May 24 '18 at 14:49
  • I'd be hesitant to do cards as some things you forget might explode the scope of a project, at least for CS: "by the way, I need this to integrate with a non-standard database." But I like it that it clearly sets expectations and calls out whenever something new is added. – dbeer May 24 '18 at 15:04
  • 1
    Not trying to suggest this as a specific plan. I'm trying to say that if you set expectations early on, you'll all be happier. You have to allow for some flexibility, but you need to keep it manageable. – Wesley Long May 24 '18 at 15:36
4

IANAL, but:

If you have completed what was outlined in the contract, then you have completed the contract. What ever the client wants over and above that is something different entirely. If you honestly believe you have fulfilled your contractual agreement to the client, I would bow out and even consider going after them for the last installment.

IF however you think there are still parts of the contract outstanding, you should tidy those up as quick as possible and get out.

I do not see anything unethical about leaving a completed project just because the client wants more. They should know better then to make a contract that wasn't entirely what they wanted. That's life, they got what they agreed to.

Your Answer

By clicking "Post Your Answer", you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.