Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

A friend of mine did some contracting work to add localization support to an existing mobile app. He was not contracted to add any other features or fix any already existing bugs. He has finished his work, but the client refuses to pay him because of an already existing bug that he hasn't fixed. The only card my friend has left is to rollback the server code to the state it was before he began working, which will probably break the mobile app and hopefully force the client's hand. Is this legal? Is there a better way to handle the situation?

share|improve this question

closed as too localized by Jim G., BЈовић, Walter, Dynamic, Yusubov Sep 22 '12 at 23:36

This question is unlikely to help any future visitors; it is only relevant to a small geographic area, a specific moment in time, or an extraordinarily narrow situation that is not generally applicable to the worldwide audience of the internet. For help making this question more broadly applicable, visit the help center. If this question can be reworded to fit the rules in the help center, please edit the question.

Like has been mentioned...legality depends on the contract and location. Seems like a *** move to roll the code back. If the bug is easily remedied he should just fix it and not do business with them again, else, court and/or take his ball and go home... –  Rig Sep 20 '12 at 16:06
I really do not understand. Does rollback the server code mean the server is under the contractor's control? In which case, the contractor could do a whole lot more (unethically) than simply roll back the server code. –  emory Sep 20 '12 at 22:28
@emory Yes, as I understand it, my friend has root access. Crazy... –  JustinY Sep 21 '12 at 3:01

6 Answers 6

up vote 29 down vote accepted

Actual legality will depend upon jurisdiction. Consult an attorney for a definite answer.

A contractor is entitled to payment for agreed-upon work that was performed. Assuming your friend has met the terms of his contract for the localization enhancement, he is entitled to payment for that and the client is not allowed to withhold payment because of an issue with unrelated prior work.

Rolling back the code may not be such a wise idea. While there is some support for the idea in withholding delivery of goods until payment is received, you added a wrinkle to this issue. The code has already been delivered, and removing the code may break the existing application. Breaking the application could expose your friend to liability, and he could be sued for the damages he caused.

I would recommend consulting an attorney and documenting all future conversations with the client. Get paid for the work and then move on.

Some additional thoughts:

Depending upon the amount of the pay that is owed, and assuming this is a US based case, then your friend may be able to take the client to small claims court in order to get his pay awarded to him. In some cases, additional damages and attorney fees can be included in that claim. I'm not a big fan of suing others, but if a client is refusing to pay for performed contracted work then that is what the court systems are there for.

If he does pursue a claim in court, rolling back the code and breaking their app would hurt his claim. A judge is not going to look favorably upon causing damage to the client, especially when the resulting losses could be significantly greater than the pay that was due. I would consider rolling back the code if and only if he knew for certain it would not break anything. Otherwise the risk to his claim and his ultimate ability to be paid is simply too great.

Rolling back the code would be a de facto failing to meet the terms of the contract, which should be considered. He hasn't delivered anything so therefore he's not entitled to pay. If he successfully rolls back the code, what's to keep the client from saying "thanks, and see ya!" at the same time? They could easily seek out another contractor to get the work performed and rightfully claim the previous contractor (your friend) failed to deliver. Not quite honest, but that's how it could be played.

share|improve this answer
Yeah, if undelivered it would be one thing, but in it's current state such changes would be like a contractor building a deck on your house, then a week later after non-payment coming back and dismantling it. In court property rights could be pressed however, without payment property wasn't transferred and as such the court could demand return of said property (the code or in the analogy the deck wood/parts) –  Jimmy Hoffa Sep 20 '12 at 16:01
@JimmyHoffa - generally a contractor will pursue a lien against the structure (house, building, whatever) at that point in time. At least that's how it works in the US. The courts generally frown upon tearing stuff out because you weren't paid. In the software world, it gets much more murky as these sorts of actions don't have many precedents. There's no way a judge would look favorably upon the rollback if it crashed the main app though. –  GlenH7 Sep 20 '12 at 16:10
@JimmyHoffa - there's precedent for that :) news.bbc.co.uk/1/hi/england/sussex/7361422.stm –  gbjbaanb Sep 20 '12 at 16:59
If you go to a restaurant and don't like the food, tell the waiter it is unacceptable. They won't bill you for it. Don't be surprised when they take it away. –  emory Sep 20 '12 at 22:36
Can you get a lien on the server? That seems the legal way to secure a debt. –  MSalters Sep 21 '12 at 10:13

If your friend did contracting work, presumably, he or she has a signed contract. If there is a signed contract, one party to the contract has fulfilled his obligations, and the other party refuses to fulfill their obligations, the proper response is to sue and let the courts mediate the dispute. Assuming that the contract language and the situation is as you represent it, the court will award your friend his or her payment.

Vandalizing a system is never an appropriate response. Doing so probably opens your friend up to criminal, not merely civil, charges and makes it much less likely that a judge would believe your friend if the matter of payment was litigated.

share|improve this answer

If he is a contractor, he should consult the contract he signed, along with appropriate legal counsel, paying attention to the areas on dispute resolution. Contract dispute resolution law varies by location, and some provisions of a contract are enforceable, some are not, so only a legal professional with experience in the region can give an exact answer.

Quite likely, if the person who wrote the contract was competent at their job, there are significant penalties that your friend would open themselves up to, by making unilateral actions, instead of following the agreed upon procedure.

share|improve this answer

Disclaimer: I am not an attorney.

It is my layman's understanding that, in general, "self-help" (legal term for this kind of thing) is not legal.

If the contract is in writing, and it clearly specifies that he is only to add the localization, not fix pre-existing bugs, then it should not take much more than a letter from an attorney to get the client to disgorge.

If the contract is not in writing, your friend is probably screwed.

Your friend needs to talk with an attorney and find out what options he has.

share|improve this answer

Even if legal, nuking the customer by doing a rollback might not be a wise idea. Doing so will likely result in the (non-paying) customer badmouthing you in his circle with a(n edited) version of what happened that makes you look like the victim. This could result in potential future customers deciding not to do business with you.

Even if your rollback does force the current customer to pay up, loss of business from other potential customers could end up being a larger net loss over time.

share|improve this answer
I worry about what paying customers think. If non-paying customers decide not to do business with me so much the better. –  emory Sep 20 '12 at 22:34
@emory - paying customers have friends. Those friends could be non-paying customers. In the process of not worrying what non-paying customers think you could end with 2 less customers. –  Ramhound Sep 21 '12 at 15:48

Disclaimer: I am not an attorney.

Your friend and the employer might have agreed upon a verbal contract which I have had some dealings with when trying to sort out a house. If he has witnesses to prove that the employer agreed upon the terms he gave he might have a case.

As for rolling back the server, although this would be great about getting back at the employer in the long run it might not be the best idea. Depending on the work he has been doing in might end up being a very bad thing to do, such as a GPS sending people to wrong places, hospitals etc. I also agree with Dan Nelly as he could pass on your details to not hire becasue of the problems you had given him.

However there should be a written contract both sides had to sign, if either side has broken a term in this contract then the contract becomes void and your friend will have a case against the firm. (also what happened to me when sorting out a house). If your friend takes it to court the company might agree on some new terms and pay him the right amount, however he might have a case to sue.

Disclaimer: I am not an attorney.

share|improve this answer

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