How good software development agreements can make a developer’s life easier

How good software development agreements can make a developer’s life easier

We help a lot of software developers manage their contracts and relationships with their clients, and we’ve seen them run into a few problems over and over. Here are three common challenges developers encounter, coupled with our tips on how a good software development agreement can prevent them.

1. The “too many cooks in the kitchen” client

When your client is a large organization, multiple employees sometimes give you conflicting feedback. The Marketing Director tells you this; the I.T. team tells you that; and then the CEO suddenly emails you about her awesome idea for the UX. You know what? You don’t get paid enough for this. Your job is to build great software, not to play marriage counselor for your client’s bickering employees. What to do?

Prevention tip: enter the Project Manager Clause. This section in your software development agreement says that for the duration of your project, the client must designate one person to be your point of contact with the entire team. Write that name and email address right into your contract. When you need approvals or reviews of your work, you send one email. Let the Project Manager collect the requisite feedback within her office and get back to you. If anybody else tries to chime in, you politely point to your contract and ask them to route feedback through the PM. This is not laziness on your part — it is vital to ensuring that the project progresses efficiently and free of errors, which benefits both you and your client (whether they identify that or not!).

2. The non-paying client

You make an amazing app for a client, who then stiffs you on your invoice. Now you have two lousy options: eat the loss or threaten to sue her (not a great option, because it may deter future clients from working with you, and it usually doesn’t make financial sense to pay a lawyer to file a lawsuit unless a lot of money is at stake).

Prevention tips: never do work without a signed software development agreement. Make sure your contract gets you paid a significant portion up front, and gets you paid again each time you reach various development milestones (for example, the end of a customer discovery phase or the delivery of wireframes). Reserve the right to stop work without penalty if your client fails to make prompt payments. Finally, consider a clause that says the ownership of (or license to) the software and any underlying intellectual property transfers (is assigned) from you to the client only when they make final payment.

3. Creeping project scope

You agreed to build an app that had X,Y,Z features and would be built according to a timeline with milestones A,B,C. All of this was listed in a nice table in your standard Development & Licensing Agreement. You start building features X, Y and Z. At the first sight of your work, client asks for “just a little change” to feature Z. Hmmmm. Well, it will only take you 20 minutes, so you do it. But now the client starts to ask for more and more tweaks to the deliverable.

What do you do? Say no? Nobody wants to do that. You want to say yes! Great, but tell your client yes in a way that compensates you for the extra time that the changes cost you.

Prevention tip: include a “Change Orders” clause. This paragraph in your contract says that if (when) the client requests changes after work begins, (a) you’ll give the client a written document or detailed email (a “Change Order”) that summarizes the requested change and states the cost that it will add to the project, and (b) that Change Order will amend and become part of your agreement only when the client approves it in writing. You can also require that any and all Change Orders must be paid for up front, or paid half up front and the rest paid upon completion. You’ll never do uncompensated work again.

The bottom line

Always use software development agreements with your clients. It’s best to have your own template or form that you can adjust over time. A lawyer can draft one very affordably for you from scratch, or, possibly even more affordably, customize one you already have with a legal “tune up.” Consider the tips that we suggest here, but make sure to discuss your particular business with an attorney.

*     *     *

Below: A Portland, Maine software developer wishes he had included a Project Manager clause in his contract with his latest client. (photo: Adam Nyhan)

Adam Nyhan

Adam Nyhan represents clients in Maine, Silicon Valley and globally in software, privacy, trademark and business law matters. He is also the co-founder of a Software-as-a-Service startup and a former in-house attorney at a software firm in New York City.