27 May 2011 by Published in: business 4 comments

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.

The Copyright Clause

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.

The Problem

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.

How the Clause Works

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.

The Forum Clause

Oh boy, this one’s important.

The Problem

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.

How the Clause Works

The clause just says, in advance, that disputes will be settled on your home turf.  This turns a lawsuit that is impossible to litigate into one that you just put on a nice shirt and take $50 to the small claims court and pick up your judgment.  This magical incantation turns a contract that literally isn’t worth the paper it’s printed on into one that is absolutely painless to enforce, even without legal representation.  A judgment is yet-more magical document that lets you do scary things like garnish wages, get law enforcement to actually go and confiscate property from the person, and other strong-arm tactics if that’s what it takes to get paid.  Remember that “No person shall be deprived of life, liberty, or property without due process of law” thing?  Judgements are that due process, and with them, you can get paid.

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.

Legal Costs Clause

The Problem

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.

How the Clause Works

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.

Testing Clause

The Problem

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.

How the Clause Works

Basically the clause says you’re going to do the work in a professional manner, but ultimately the client has the responsibility for ensuring that the software works as expected and can’t just throw the blame back on you for producing “buggy” software that didn’t account for their weird packet loss.

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.

Deadlines Clause

The Problem

“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.”

How the Clause Works

The deadlines clause basically lays out that each party has five business days before they have to provide something to the other party.  Five isn’t a magic number, just something that seems to work for us in practice.  The “business days” thing takes care of your holidays like Memorial Day or whatever.

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.

Severability Clause

The Problem

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.

How it Works

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.

Want me to build your app / consult for your company / speak at your event? Good news! I'm an iOS developer for hire.

Like this post? Contribute to the coffee fund so I can write more like it.


  1. taylor
    Sat 28th May 2011 at 9:51 am

    Good tips. The only quibble I have is that “a severability clause” generally means splitting the contract up into pieces, not ending it. The proper term is “a termination clause”.

    The other thing to add is a “attorneys fees clause” so if you do have to sue you can collect your attorneys fees as well.

  2. zach
    Mon 30th May 2011 at 12:05 pm

    Thanks for sharing your life experience. I have seen some of these before, the deadlines clause was an interesting way to cover yourself. I have just started in this legal endeavor myself, so my thoughts may be primitive, but I thought I would submit them anyway.

    Mske sure to have a clause similar to this to make payment of invoice clear:
    Client shall pay Developer all undisputed portions of the correct and complete invoices for services rendered in accordance with this agreement within fourteen (7) days after receipt of the invoice.

    This may be more for the customer, and Im sure you already have it:
    The parties acknowledge and agree that Consultant is an independent contractor. This Agreement shall not create the relationship of employer and employee, a partnership, joint venture or other relationship between Customer and Developer. Customer shall have no authority to bind, obligate or commit Developer by any promise or representation without the prior written approval of Developer.

    This clause is for worst case scenario, aka – hard drive + backup failure:
    Force Majeure. Notwithstanding any other provision of this Agreement, no party to the Agreement shall be deemed in default or breach of this Agreement or liable for any loss or damages or for any delay or failure in performance due to a cause beyond its reasonable control. The parties shall promptly resume performance hereunder after the force majeure event has passed.

  3. Anonymous
    Sun 11th Nov 2012 at 11:06 am

    From your contract’s Copyright Clause:

    >> Upon completion of the project and receipt of full payment, this project is considered a “work for hire” under U.S. Copyright Law

    It turns out that software cannot be considered “work for hire” under US law. The reason is subtle. Contrary to what one may think that the term “work for hire” implies, “work for hire” is actually a legal term defined in the US Copyright Act. The Copyright Act uses a very narrow definition for “work for hire” — a definition that includes only 9 specific types of works and under which software does not qualify. If you use the legal term “work for hire” in your contracts, many sophisticated clients will object, because you are incorrectly designating their work as “work for hire”and that could have damaging effects on their ownership rights. The correct alternative for software works is to use copyright assignment and avoid the words “work for hire” altogether.

    See articles below for more info:



Comments are closed.

Powered by WordPress