It takes a couple of bad clients to bulletproof your contracts. If you’re new at software contracting, you may know enough to know that you need a contract, but you don’t have the experience to know what to put in it. But rather than waiting for that bad client to test your contract, learn from our mistakes instead. The contracts that you sign are in force for years! Run, don’t walk, to your word processor and add these in so that you are protected going forward.
I am not a lawyer. This is not legal advice.
If this isn’t in your contract, add it right now.
Upon completion of the project and receipt of full payment, this project is considered a “work for hire” under U.S. Copyright Law and all copyrights, source code, IP, patent rights, etc. related to the project are transferred to Client. Prior to the completion of the contract and full payment, Developer retains all such rights that Developer lawfully acquires during development, including but not limited to the copyright of computer code produced by Developer during the duration of the Project.
You deliver the software, but the client fails to pay the final invoice. To mitigate this situation, always have a small final invoice. But sometimes it’s unavoidable.
Until you’re paid, you own the copyright of the software you’ve written. This is the same “copyright” that’s used to assess thousands of dollars in damages for sharing a couple of songs, so this is strong stuff. If the client uses the software or sells it to customers without paying you, they are in big trouble. We have a client who is selling an application on the app store after stiffing us for the final invoice. Not cool.
Basically, this clause gives you a second cause of action. You can get them once for “breach of contract” for the “not paying you” part, and get them again for copyright infringement for actually using your software. Another way to see this is as a second level of deterrent. Not only are they going to be less likely to skip that invoice, due to the additional damages a copyright infringement claim can have, but even if they do skip the invoice (say they’re under a genuine hardship), they are legally precluded from using the software, since doing that would open them to copyright infringement damages. And so if they have ten creditors, and they can only pay two, you’re more likely to get paid, since getting paid has a benefit for them (use of the software) beyond simply avoiding a breach of contract dispute.
Copyright litigation is really expensive, so even if you have a really strong claim it may be prohibitive to litigate. One thing you should absolutely do if there’s any chance you’re going to be making a copyright claim, always register your copyright with the Copyright Office. You typically have three months to do this, which is long enough to work out whether or not you’re going to get paid, and it costs like $40. Registration means 1) You’re entitled to “statutory damages”, which means the judge can basically make up an amount instead of you having to prove “actual damages”, which is very difficult, takes a long time, and won’t net you much money, and 2) You can potentially recover attorney’s fees, which is really really expensive for copyright infringement lawsuits, and with a strong copyright claim that’s been registered you may be able to find an attorney to work on contingency since if she prevails she can bill the defendant. Without registration, your chances of doing that are zero.
Oh boy, this one’s important.
You have a contract. You may be under the impression that if the contract says something really clear-cut, like “You will pay the invoices”, and the client doesn’t pay the invoices, you can sue him and get a judgement for the invoices. Open-and-shut, right? Ha.
Well if you’re located in Texas, and the client’s located in Maine, you probably have to go to Maine to litigate your little $600 invoice. Which you’re not going to do. You may try to file suit in Texas, and either the court will laugh at you, or the client will counterfile in Maine, and the whole thing gets hopelessly locked up.
The parties hereto agree that all actions or proceedings arising in connection with this Agreement shall be tried and litigated exclusively in the State and Federal courts located in Travis County, State of Texas. The aforementioned choice of venue is intended by the parties to be mandatory and not permissive in nature, thereby precluding the possibility of litigation between the parties with respect to or arising out of this Agreement in any jurisdiction other than that specified in this paragraph. Each party hereby waives any right it may have to assert the doctrine of forum non conveniens or similar doctrine or to object to venue with respect to any proceeding brought in accordance with this paragraph, and stipulates that the State and Federal courts located in the County of Travis, State of Texas shall have in personam jurisdiction and venue over each of them for the purpose of litigating any dispute, controversy, or proceeding arising out of or related to this Agreement. Each party hereby authorizes and accepts service of process sufficient for personal jurisdiction in any action against it as contemplated by this paragraph by registered or certified mail, return receipt requested, postage prepaid, to its address for the giving of notices as set forth in this Agreement. Any final judgement rendered against a party in any action or proceeding shall be conclusive as to the subject of such final judgement and may be enforced in other jurisdictions in any manner provided by law.
Say for some reason you have a claim against a client that can’t be handled in your standard small claims court–you’re trying to get a judgement other than money (i.e. to physically stop using software they haven’t paid for), or they owe you a lot of money, beyond the jurisdictional limits of a small claims court or something that requires real legal assistance. If you’re a tiny developer without a team of lawyers on retainer, you probably don’t have the resources to pursue that kind of claim–which can get really expensive.
It says that whoever wins in a trial pays the other party their legal fees. If you have this in your contract, and otherwise have a strong case, many lawyers will take your case on contingency, eliminating the need to pay those costs out-of-pocket.
In the event of litigation relating to the subject matter of this Agreement, the non-prevailing party shall reimburse the prevailing party for all reasonable attorney fees and costs resulting therefrom.
No matter how good your spec is, there are things that will be left undefined. We have a fantastic track record of great spec writing, but all projects have a little scope creep. You will get a request for a little five-hour change and decide it’s too small to spec it, what the hell, let’s just code it up. Their network loses every 111th packet, their test environment is ten degrees warmer, whatever, and all of a sudden really odd bugs you didn’t predict come out of the woodwork.
Developer will make reasonable effort to use industry best practices to reduce bugs and memory leaks. However, ultimately Client is responsible for testing the application and providing timely feedback of issues as described in the “Deadlines” section of this document.
“We’re still working on getting that API you need together. We promise we’ll have it together next week, or at least the week after that, and then the project will be able to move forward. We hope.”
Without a Deadlines Clause, nobody really knows what’s expected in terms of getting work product to the client or getting feedback back from the client. The client decides to visit Nicaragua for the month. Past performance is a poor indicator of future timeliness–often times clients are really on the ball the first week of a project and then once it gets to the actual nuts-and-bolts stage something comes up and you’re not on the priority list any more. Having a hard deadline sets that expectation of how the project’s going to progress. The last thing you want is to have a holdup that’s perpetually almost resolved, so you can’t take on a new client to fill the empty space, you just have to twiddle your thumbs, unable to bill for anything. That kind of contract kills consulting companies.
The other thing is, typically, projects get stuck somewhere, and 99% of the time if you’re a competent developer, you’re not the holdup. Having this clause gives somebody a kick in the pants to delivering the stuff that you need to keep moving on the project in a reasonable amount of time, for a well-defined version of reasonable. Inevitably the client will want to know why the project is 50% late, and when you go to the “why is the project late” meeting you can turn to that page in the contract and say “I asked for such-and-such in April, and I didn’t get it until June.” Works every time.
Client shall accept or reject each test build on or before the fifth business day following receipt. If a test build is rejected, Client shall provide sufficiently detailed rationale that the software can be improved to meet Client’s specification.
Client shall answer Developer’s question about the app’s desired behavior or design, provide final artwork needed for a portion of the application, provide APIs or other access to Client’s systems, or provide any other information or access necessary for project progress on or before the fifth business day following Developer’s written request for such information or artwork, API, or access.
Developer is responsible for providing timely test builds, making appropriate progress on milestones, and advising Client of any questions or ambiguities in the application specification.
Following Client’s acceptance or rejection of each test build or Client’s response to Developer’s written inquiry or Client’s submission of final artwork, Developer will provide on or before the fifth business day either a test build showing reasonable progress on Client’s feedback, information, or artwork, or a followup request for additional information or artwork reasonably necessary for continued progress on the milestone.
Beginning in [todo date] and until the completion of the project, if the project is not complete and if Client was late for one or more items in this section during the immediately previous calendar month, Developer will bill Client a monthly time reservation fee of $800 to compensate Developer for continuing to reserve time for Client’s project. Client should be able to rely on Developer dedicating resources to Client’s project during its duration. Developer will accept this fee in lieu of “overbooking” or otherwise accepting projects that would negatively impact Client’s schedule.
Beginning in [todo date] and until the completion of the project, if the project is not complete and if Developer was late for one or more items in this section during the immediately previous calendar month, Developer will credit client a late credit of $800 to the next invoice to compensate Client for Developer’s tardiness.
In spite of your best efforts, sometimes you don’t find out a client is bad until after the project has started. You need some way to get a no-fault divorce so you can walk away. This swings the other way too: I can’t count the number of potential clients who have tried to switch to us from a bad developer, and due to the contract they can’t get the source code or some key component they need to work with us.
It’s pretty straightforward. Either party gives notice to the other party, then you settle up on outstanding invoices or unbilled work, then you transfer the source code and copyright. This gives both of you an out if the project is heading south. It also defines exactly what happens in the event of a breach (i.e. you get paid for the work you did), which is far too often left undefined.
Either party may may sever this contractual relationship by providing written notice to the other party. This will not relieve Client of the responsibility of paying any issued invoices and for work performed but not yet billed. Upon notification of severance, Developer will immediately halt all work and issue an invoice for any work performed but not yet billed. Any deposits paid by Client will be credited to this final invoice. Developer will provide source code to Client and transfer copyright of computer code only after all outstanding invoices have been settled.
I’ve learned some hard-won legal lessons from some of our projects, and if you do enough work, eventually so will you. Talk to a real lawyer, but learn from our mistakes so that you don’t have to make your own. And if you’re a professional freelancer or contracting firm, I’d love to hear some lessons learned from some of your contracts as well.