Engaging a Web/Software Developer? - Read This First
You had a eureka moment, an idea that can make life easier or convenient or friendlier or maybe it will change the world as we know it. You slept on that idea for few days, then sat on it for a few more. You nurtured it in your head. You have imagined yourself spreading wings and expanding your idea, maturing it. You have worked on your yearly business plan and are now all set to build your technology product/software/website.
You start hunting for a development agency or freelancer but then a thought strikes you, is my idea protected? Can I trust the developer blindly and share the details without worrying? What will I get from the developer once the development is complete? Can the developer pass on my plan to another? The developer is among the first ones I am sharing my business plan with, is my ownership of the concept protected? What can I do if developer delays my work? What if the work done by developer is not acceptable to me?
If you do not know the answers to the such questions, it can cloud your mind and make it impossible for you to move forward. A simple solution to the above conundrum is to enter into a Development Agreement with the agency or freelancer which should include all rights and obligations of both parties to the agreement along with the necessary checks and balances to keep your business and developed work protected.
Needless to say, before zeroing in on a developer it makes sense to do your homework. Ask for a work portfolio, go through it carefully. Speak with some of their previous clients and ask around about their experience with the developer. Give basic idea of what you are looking to get developed and negotiate the commercials with the developer.
Once you have chosen the developer, it makes good business sense to keep things in black and white and protect each other’s interests through a legally binding agreement. Some of the important points you need to consider when entering into an agreement with a developer are:
Engagement of Developer – Put down your specific requirements in writing. What information is being provided to the developer and what is expected out of him should be clearly stated. If wider product specifications are being included, they may be annexed to the agreement itself for ease of parties. The period for which the developer will troubleshoot and manage the deliverable should also be indicated in the engagement terms of the developer.
Timelines for Delivery and Acceptance – Milestone dates may be set by the parties after mutual discussions based on the time required for completing each step before the final deliverable is achieved. It is advisable to put in writing the errors, deficiencies and inadequacies of any version of deliverable received from the developer. Once an acceptable version is received, a time should be kept aside for testing the deliverable before finally accepting it. It should be ensured that source code for all versions is kept at a server location designated by you. For the accepted version, all object and source codes, designs, graphics, content etc. should be delivered and uploaded to a designated server location.
Intellectual Property Ownership – IP ownership is an important issue to be considered. Since you are engaging a developer as an independent contractor, all rights in the deliverables should be completely owned by you. You should also consider whether the developer should have the right to use any part of the source code developed for you for any of his future work as a licensee. For any background intellectual property i.e. the IP utilized by developer to develop your deliverable, you must ensure obtaining a proper license enabling you to use the background IP without any hindrance. A possibility is always present that the developer may cut corners and utilize the IP of a third party to develop your deliverable. The developer should therefore represent that no third party rights will be infringed in developing the deliverable and you may be indemnified against any such third party claims.
Confidentiality – Both parties would end up sharing information with each other which they would want to protect from misuse. It is pertinent that such confidential information be protected in clear terms. For this purpose, it should be defined as to what would constitute confidential information and how this information is to be utilized by each party. Further, the agreement should also indicate how the information is to be dealt with after delivery and acceptance.
Compensation – Payment milestones for the developer can be set based on the milestones set for the deliverable. Acceptance of the deliverable after testing should be taken into account when preparing a compensation chart for the developer.
Dispute Resolution – A dispute may seem only a remote possibility when you start but this eventuality cannot be ruled out. In any case, it is necessary that all possibilities are taken into account when entering into an agreement, including dispute between the parties. The terms should mention the dispute resolution methodology to be adopted such as litigation or arbitration. In case of arbitration a number of other factors are to be considered such as rules of arbitration to be employed, number of arbitrators, venue of arbitration etc. In case of litigation, the place where litigation can be initiated and the governing laws should be included in the agreement.
These are some of the important terms to be included in a Development Agreement. Apart from these you should also seek flexibility in termination of the agreement which could be a consequence of delay or breach of agreement by the developer or non-payment of fee from your end. For any kind of agreement however common sense of the parties is paramount. As a starting point, a good draft agreement, like the one available here, can be really helpful.
It is important that you satisfy yourself before entering into any binding agreement. If something doesn’t seem or feel right, it probably isn’t. When you finally decide to bind yourself to the agreement, keep the above in mind to finalize upon the terms of engagement.