Software development agencies and freelancers face many unique risks: clients that have no idea how you are making the final product, constant updates on software, technology and browsers, unverified intellectual property and clients that drag their feet on your requests. I have worked as the Chief Operating Officer of a software development agency until it was successfully acquired and have dealt with all of these issues in one form or another. While I stumbled through a few possible solutions to these problems, I finally discovered the right one – software development contracts. There just really is no adequate substitute for talking to your client about roles and responsibilities and then legally binding them to what you just discussed.
In this blog post, we will introduce you to 5 surprising reasons why you need this type of contract. We will also share some stories of our experiences, which we are sure may mirror some of yours. You should always remember that the number one reason for why you need a contract is to protect yourself and your business. However, that is not surprising and we said that we will surprise you so here we go!
Here are the top 5 surprising reasons why you need a software development contract:
- A contract will allow you to keep the code. Depending on your jurisdiction, anything that you create while working for someone can be considered the property of your client. However, if you are working on a complex project and have spent hours writing code that you may want to use for other projects in the future, you have to specify so in the contract. This means that if you have spent months or even years developing a website for a social network and would like to keep the code for the algorithm for “you may also know”, then you can do so, as long as your contract states that. Then, you can save hours in building the next project that has the same feature. While other jurisdictions may consider this work yours until you have assigned it to your client, the contract should still specify that you can use the code for other projects. Why? So that your client is not surprised by this information a few years later and so it does not lead to client disputes.
- A contract will put it on the customer to ensure that all intellectual property he or she provides to you belongs to your customer. When you are developing a website, your customer usually will provide you with the copy, logos, etc. At this point, you can either spend hours searching the web to ensure that this actually belongs to your client, or you can put it on your client to do so. Why is this important? If you put something that belongs to a third party on the website for your customer, you can get sued for copyright or intellectual property infringement. These lawsuits usually take years and are very expensive. By binding your client to ensure proper intellectual property rights, you can make your client pay for the court costs and legal fees and can save yourself some headache in the long run.
- A contract will specify how many changes a client may ask for. We were once developing a gaming app for a client. Once we finished the designs, the client kept on asking for changes. These changes included color changes, wording changes, graphics changes and changes to the whole layout of the app. At the time, we did not make it clear to the client that he or she is allowed only x number of changes. So we did all of the changes, the project dragged on for much longer than it should have and we actually lost money on the project. Don’t be like we were! Specify what number of changes your client is allowed and what those changes can be. For example, a client can make 3 changes to colors and 1 change to the text of the application. This will help you save time and money and your project will flow much smoother.
- A contract can help you if your client fails to give you copy, etc. and then is upset that the project is delayed. We would venture to say that this has happened to every software development team. The contract can help you by giving your client a set amount of time (e.g. 24 hours) to respond to all of your requests. If the client does not respond, the contract provides that you will have twice that amount of time to implement the addition of copy, etc. and that any delays in the project are not your fault.
- A contract will help you in the case of you just being sick of your client and wanting to end the contract early. We once had a client who would just incessantly call us and get into discussions about possible features for hours on end. This would have been fine, except the client would then refuse to pay us for consultations. Furthermore, the client would act as if we agreed to changes that we really did not agree to and was just generally a pain. We were sick of working with this person so we just used the contract provision that allowed us to end the contract early without having to provide a reason. And then we just moved on to a much better client and had a great experience.
All of the issues that we have just discussed can be solved with the software development contract. It is perhaps surprising to you now, but you do not have to just put up with bad clients. If you are performing maintenance on the websites that you build, check our article on Top 4 Reasons for a Website Maintenance Contract. You are a professional and you and your work should be treated as such. Tweet us at @agencyattorneys and tell us what problems you wish you could solve.
Donata Kalnenaite, Esq.