My startup does product development. Whenever you develop a complex piece of software for a client, there’s potential the client will be unhappy or there will be bugs in the code that cause problems. It’s impossible to completely debug anything. How do I best protect my startup from a potential lawsuit?


Ethan Stone

Ethan Stone

by Ethan Stone, Stone Business Law

First, a quick but important clarification: I’m not your lawyer and this answer doesn’t establish an lawyer-client relationship. I’m giving a generic answer to a generic question to educate the users of this site.

This is a difficult question to answer in the abstract. The real answer is that you should have a competent lawyer draw up a set of standard agreements to use in development jobs, including a range of typical variations with comments and instructions, so you don’t have to reinvent the wheel or incur big legal fees on every sale. You also need a competent lawyer to give an efficient review to agreements that come in on your customer’s forms. By “efficient” I mean not trying to make it perfect, but simply highlighting the most problematic provisions and making sure you’re aware of the risks you’re taking and the easier ways to mitigate them. Unfortunately, there just aren’t five magic words that you can put in all your contracts to make sure you’re never subject to suit. And if there were, you’d get a lot of resistance from your customers if you tried to put them in your contracts.

That said, here are a few thoughts on the typical sources of liability and ways that they can be controlled.

1. Warranties. A warranty is, generally speaking, a contractual obligation to make good on any shortfall from an agreed level of quality. You should be very careful about making warranties. Don’t do it at all if you don’t have to. You should certainly avoid making broad warranties (e.g. that the code will be of “professional quality”) and you should disclaim a series of warranties that might be read into your contract if nothing is said (e.g. a warranty that the product won’t infringe other people’s IP). In this regard, software development contracts typically disclaim any warranty of bug-free code or error-free or uninterrupted function. If you are going to make “service level agreements” (SLAs), in effect a form of warranty although often not phrased that way, be as specific as you can about what you’re promising. If you give warranties, try to get them to mesh well with the insurance you carry.

2. Remedies. The best approach to dealing with genuine customer concerns without risking your business is to specify the remedy you will provide for a problem and specify that the remedy is exclusive. So, for example, contracts often provide that you will defend against claims of IP infringement and/or substitute a non-infringing product. If you’re careful about how you word these provisions (especially if they mesh properly with the insurance you carry), you can go a long way to limit your risk without making your customers unhappy. Likewise, good SLA provisions will often state a specific penalty for falling short (e.g. a certain number of violations of a certain severity per month might result in a discount on that month’s payments). Again, the strategy is to start out by addressing the customer’s legitimate concerns and concentrate the negotiation on how much protection the customer is really willing to pay for. On these same lines, you need to be extremely careful about provisions requiring you to “indemnify” your customers. A cleverly drafted indemnity provision can do an end run around many of the protections you thought you put into the contract.

3. Charge for Maintenance and Support. This is a variation on specifying remedies. Again, the point is to directly address your customer’s concerns in a way that limits the customer’s expectations and your costs. By stating up front that maintenance and support is a paid service, you show your dedication to customer satisfaction and concentrate the discussion on what help the customer needs and how much it’s willing to pay for that help. Ideally, this strategy can also produce another revenue stream and provide a built-in method to maintain customer contact and work on business development.

4. Limits on Total Liability. As a backstop, software development and license agreements usually limit the developer’s/licensor’s total potential liability under the contract. A common limit is fees actually received, but there are a lot of variations.

5. Dispute Resolution Provisions. The right dispute resolution clause can save you a lot of exposure in two ways: First, it can discourage people from suing you in the first place. Second, it can make the resolution of disputes quicker and less costly. Returning to my first sentence, the key words are “right” and “can.” The wrong dispute resolution clause might not help at all and might make things much worse. People have been known to fight for years in court about exactly what the arbitration clause meant to keep out of court. It’s also worth emphasizing that the two benefits mentioned above aren’t always what you’re looking for. Sometimes, you can get the first benefit (discouraging litigation) by jettisoning the second (cost savings). I had a Swedish client who hired a local Arizona software developer for a small piece of work. I asked the client about his preferences for dispute resolution and he said he preferred arbitration before the International Chamber of Commerce in Paris. I pointed out to him that the ICC filing fee was gigantic (I remember it being $50,000, although I just checked and it now seems to be $3,000) and that the clause would require everyone to go to Paris. He replied that these were the major attractions of ICC arbitration for him. He figured that in most disputes he could get a lot of self-help by simply withholding payment. Providing for ICC arbitration in Paris pretty much guaranteed that the developer wouldn’t sue him. I’ve had clients who insist on jury waiver in all their contracts to avoid random results on potentially important issues. I’ve had clients who refuse to waive jury trial because they figure they will almost always be more sympathetic. There are a lot of factors and a lot of possibilities in this area. Two things you should not assume are that arbitration is always cheaper or that the model clauses provided by AAA and other dispute resolution service providers will be effective (let alone appropriate). Remember that their primary goal is to make it as easy as possible for you to name them in your contract, not necessarily to make your dispute resolution quick, easy, cheap or accurate.