5 things every Software Developer should include in his Software Development Agreement/Contract
The legal issues surrounding software development can be sometimes complex and often confusing. It is not unusual for developers to take up development gigs without any formal engagement in writing resulting in bitter experiences.
By understanding the importance of agreements in a software development engagement you are better equipped to protect your rights in your work. The following list of things that should be covered in your agreement is only indicative and not exhaustive.
Author & Owner of the work:
The developer is the first owner and author of the work. However the developer transfers his ownership in all or any of the work to another person or the client when he creates the work for hire or as part of his employment. The developer can also retain the ownership and license the use of the work by the client or another person with or without conditions. When the client engages your services as a developer, you and your client should decide on what rights would be transferred to the client. If the engagement by the client is to be treated as work for hire in which instance the entire rights would belong to the client, the same should be in writing. If there is nothing in writing to this effect then the developer will own the rights to the work.
Code library & Reuse:
In is only natural for the developer wanting to retain his rights to reuse code that are commonly used functions. It is advisable for the developer to make this very clear to the client at the beginning of the engagement. It is also advisable that the developer offer the client a broad license that allows the client to use and modify such code without any restrictions.
Using Open Source Code:
Open Source Code does not mean it is Free for you to use in any way. There are various licensing methods and requirements of open source code and accordingly it is important for you to understand the license that covers your open source code before incorporating it into your work. The list of open source licenses and comments on the same is made available at www.gnu.org by the Free Software Foundation. If you use any Open Source Code in you work it is important that you detail this to your client and ensure that the client understands the pros and cons of using such code.
Accepted Vs Rejected Work:
Often clients makes several changes rejecting codes and at the end the final work is transferred to the client. Such rejected codes are often reused by the developer in other projects. It is important to be clear on who has the rights to the rejected code that has not been accepted by the client.
Defining project milestones and getting paid:
One of the best practices is to break down the projects into smaller pieces and set several milestones. This will avoid disputes at the end of the project locking your payment and also constant feedback will help you to fine tune the development and estimate the efforts required for such changes. This is also a great way to keep your money flowing into your account in regular intervals.
Understanding Patent & Copyrights:
A software that performs a particular process, methods, algorithms or a system can be protected under the law of patents. The code per se can be protected under the law of Copyrights. India is a member of the Berne Convention and accordingly your work is protected under the law of Copyright in 168 countries who are signatories to the Berne Convention.
Hence it is very important that the terms of engagement are well defined in writing by way of an agreement to avoid any untoward incident on a later date resulting is not only loss of revenue but also uncalled legal proceedings and related expenses.