This article is written by Pooja Wagh Who is pursuing a Diploma in Advanced Contract Drafting, Negotiation and Dispute Resolution from Lawsikho
Like in any other agreement or contract, the software development contract also consists of two parties. This contract specifically states the wants and expectations of both parties. It defines what the aim of the project is and they will be delivering the same. Furthermore, it also states the responsibility that lies with each party if there is any dispute between the parties.
This contract can be customized according to the expectations of the parties. After the completion of the contract, what both parties are going to receive is also mentioned in this customized contract. There are specific things that the parties need to agree on in order to enter into a software development contract.
In general, this contract defines the terms on which a developer party sells and transfers the customized software to a client. The client will use the software in their products, services, or servers. If you are a software developer who covets to understand how the legalities of Software Development contracts work, this article is for you!
What is a software development contract?
An intellectual property created by a software developer using his programming knowledge and skills is termed as “computer software”. Usually, the software is created and customized in a way to meet the requirements and specifications mentioned by the company.
The rights and duties of the software developer are protected under the Copyright Act, 1957 regarding the software created, as the ownership rights are vested upon him. However, by signing an agreement or a contract, he is authorized to transfer his rights to a third party. A contract or an agreement entered into between a software developer and a company is termed as “software development contract”.
Purpose of drafting software development contracts
The main aim of drafting a software development contract is to delineate the extent of rights of both parties concerning the software. The requirements and concepts of the company are specifically mentioned in the contract.
Considering the requirements and time limits specified by the company, the software developer creates or develops the software. The developers in these types of contracts are usually hired for creating computer software for software companies where it can be used for commercial as well as private purposes. The software development contracts specifically mention the terms and conditions regarding the use of software and any use beyond that is prohibited.
Types of software development contracts
When it comes to custom software development contracts, there are different types of contracts to choose from. Your first step is to make sure that you are entering into the right contract while signing the contract.
To customize software development contracts, there are essentially four types viz.
Time and materials
This type of contract usually deals with how many hours are spent on your software by the developer and how you will pay them. In simpler words, there is a trade between money and hours. It is beneficial for both parties. The developer does not rush into creating software to get done with it quickly.
The company knows exactly what they are paying for. They can make changes according to their customized needs as the software development progresses. The developer is aware of the fact that throughout the project, there will be quite a bit changes in the original agreement.
Hence, even though the timeline for the project is longer than expected, this contract makes sure that the developer will be paid. It provides both parties the flexibility needed to focus on a project. As a result, stronger trust and communication between both parties are ensured.
The developer and the company agree on a fixed price for the software that needs to be delivered in this type of contract. The company cannot change the scope of the software after finalizing the same with a specified price. In a larger budget software project, the time and costs of the project could exceed the fixed bid for the developer, but he cannot ask for more once agreed upon a final price, thus the same can be beneficial for the company as it is low-risk for them.
However, in a project with a specific budget, it will be comparatively easy to plan and get things done with a fixed bid. Additionally, the developer may choose to remain within the specified budget by choosing less expensive tools for the project.
The fixed bid is a variant of the fixed budget. The developer and the company, in this type, agree on a fixed price for software that can be changed as the project development progresses. The developer needs to complete the project and create as much as possible within the agreed budget. This type is suitable for projects with a tight budget, but it may not work for a project with larger expectations.
Capped budget with accelerated bonus
This type is also a variant of the fixed budget with a slight change. The developer and the company agree on a stipulated price for software that needs to be delivered. If the developer delivers the project before the deadline, he receives a bonus from the company.
However, there are two possibilities in this type of software development contract- firstly, the developer may get encouraged by the bonus to work efficiently, and secondly, in order to get done with the project as soon as possible, the quality of the project may deteriorate.
Essential clauses of a software development contract
Scope of services to be provided
The details of the project, as agreed by the developer and the company, must be specifically mentioned while writing a software development contract. The procedure for modifications shall also be mentioned if there are any changes to the original details and the same shall be verified by the parties.
- The Company has a requirement for software in respect of its business.
- The Developer has expertise in software development for commercial purposes.
- The Company (in reliance on the Developer’s software development expertise) wishes to appoint the Developer to develop the Software in accordance with the type, time, cost and the terms of this Agreement.
Project type, time, and cost
The time and cost required for the project to be delivered shall be mentioned along with the type of software development contract being used by the parties. If the developer needs an extension of the deadline, the procedure for the same must be included in the agreement. The process of how the payment needs to be done shall be mentioned in the agreement along with the bank details.
- This Contract is a type of Fixed Budget, where the budget of software is agreed by both the parties.
- The Developer agrees to develop the required software within 60 days of the date of execution of this Agreement. However, if the Developer needs an extension, which shall not exceed for more than 15 days, he shall inform the Company 3 days prior to the deadline.
- The Company shall pay the Developer the Fees which shall be Rs. 30,000/-
- The Developer shall render invoices to the Company in respect of the Fees as follow:
- 30 percent of the amount on the execution of this Agreement.
- 20 percent of the amount before Acceptance testing.
- 50 percent of the amount on successful confirmation of the Acceptance Tests.
The parties shall carry out the acceptance testing to ascertain if the software is prepared according to the requirements of the company. It is a good practice for the developer to deliver the project only after he has carried out the acceptance testing of the project, but it can be carried out by the company also.
The agreement shall specify the details about who will do the testing, what will be the process to conduct testing, how they will communicate the testing results, and so on.
- Before installing the Software, the Developer undertakes to provide the Client with evidence of all system testing of the Software carried out by the Developer, specifying the test data used and the results achieved.
- The Company within ten (10) days of receipt of the completed design of the Software by the Developer inform the Developer and seek the Developer’s agreement to the number of days the Company expects the Acceptance Testing will take (hereinafter mentioned as ‘Acceptance Testing Period’)
- The Company will prior to the commencement of the Acceptance Testing provide to the Developer written details of the nature and purpose of the Acceptance Testing and the results expected to be achieved by carrying out the Acceptance Testing.
- During the Acceptance Testing Period, the Company must perform Acceptance testing with the co-operation and assistance of the Developer.
- If the Software fails to pass the Acceptance Testing, the Developer must at its own cost within 30 days after the end of the Acceptance Testing Period, correct the Software so that it provides the functions and meets the performance criteria set out by the Company and agreed by the Developer.
- The Software will be deemed to have passed the Acceptance Testing if the Company provides to the Developer written confirmation of the successful Acceptance Testing of the Software prior to the end of the Acceptance Testing Period; and if the Acceptance Testing Period expires without the Company making any written complaint or incident report to the Developer concerning the Software.
Intellectual property rights
The intellectual property rights, i.e. the ownership clause must be clearly defined in the software development contract; so that any kind of infringement is avoided by the parties after the product is delivered.
The company shall state that they will be the rightful owner of the product after it is delivered to them. By doing so, the reuse of the project or the product by the developer would be prevented. The legal rights of the company shall be specified in the contract.
- The Company holds the Intellectual Property Rights of the Software developed by the Developer under the terms of this Agreement.
- The Developer warrants to the Company that the use of the Software by the Company will not infringe the Intellectual Property Rights of any person.
- If a claim is made that the Software infringes the Intellectual Property Rights of any person, the Developer must use its reasonable endeavours to:
- procure promptly for the Company the right to use the Software free of any claim or liability for infringement; or,
- replace promptly the Software with non-infringing substitute software.
If there is an exchange between the parties about any type of confidential information, it should be mentioned in the contract and the same must be verified and agreed upon by both parties. Many times, the contracts survive because of the confidentiality clause itself and hence, it must be stipulated in the contract.
- Each of the parties agree and undertake to the other that they shall each, during and after the term of this Agreement preserve the confidentiality of, and not directly or indirectly reveal, report, publish, disclose or transfer or use for its own or any other purposes Confidential Information except:
- in the circumstances set out in clause below;
- to the extent otherwise expressly permitted by this Agreement; or
- with the prior consent in writing of the party to whose affairs such Confidential Information relates.
- The circumstances referred to in clause above are:
- where the Confidential Information is in the public domain;
- where the Confidential Information enters the public domain otherwise than as a result of a breach of the obligations of the party in this clause;
- if and to the extent the party makes disclosure of the Confidential Information to any person in compliance with any requirement of law, in response to a requirement of any applicable regulatory authority to which the party is subject where such requirement has the force of law, or in order to obtain tax or other clearances or consents from the Inland Revenue or other relevant taxing or regulatory authorities, or to the employees directors, agents, consultants and professional advisers of the party.
- The restrictions contained in this clause shall continue to apply after the termination or expiry of this Agreement without limit in time.
Term and termination
The parties shall decide the type of software development contract and then the term for the contract may be decided by the parties. The term may not be specific, but it can be approximate, depending on the nature of the software required by the company.
The termination, upon infringement of any clause, or whatever the condition for termination of the parties may be, shall be specified in the contract.
- The appointment of the Developer shall have effect from the date of execution of this Agreement until the Company provides the Developer with written confirmation of the successful outcome of the Acceptance Testing of the Software or earlier termination in accordance with the terms of this Agreement.
- This Agreement may be terminated by the Company immediately upon written notice to the Developer if:
- the Developer fails to provide the Software Ready for Use within 60 days from the date of execution of this Agreement.
- the Developer breaches any other provision of this Agreement and fails to remedy the breach within 15 days after receiving the written notice requiring it to do so.
- This Agreement may be terminated by the Developer immediately by giving written notice to the Company if the Company failed to pay any amount due under this Agreement and then fails to make that payment within 15 days after receiving notice from the Developer requiring it to do so.
- This Agreement may be terminated by either party immediately:
- if the other party breaches any provision of this Agreement and fails to remedy the breach within 15 days after receiving written notice from the non-defaulting party requiring it to remedy the breach; or
- by written notice from the non-defaulting party to the defaulting party if the defaulting party breaches a material provision of this Agreement and that breach is not capable of being remedied.
Like in any agreement, the clause of “Dispute Resolution” is one of the most important clauses in the custom software development contracts. It defines how the parties will resolve the dispute without going to court, what will be the procedure accepted by parties for dispute resolution, and other such things are mentioned in this clause. This clause aims to avoid the expensive and time-consuming process of going to court.
- If any dispute or difference arises out of or in connection with this Agreement, the Parties shall seek to resolve the Dispute amicably by using an alternative dispute resolution (ADR) procedure agreed upon between the Parties.
- If the Parties reach an agreement as to the resolution of the Dispute, such agreement shall be recorded in writing and signed by the Parties, whereupon it shall become binding upon the Parties.
- If the Dispute has not been resolved to the satisfaction of all parties, or if any Party fails or refuses to agree to or participate in the ADR procedure, then the Parties shall be free to litigate in accordance with governing law and jurisdiction clause.
The developer shall give a warranty to the company about the software and development of the software. The developer shall also mention that the software delivered to the company is under the ownership of the company and the software shall not violate any rights of either party.
If there is any problem regarding the software, the warranty for the same must be given by the developer to fix the issue. However, they can stipulate the time for the warranty to be considered.
- The Developer warrants to the Company that the Software:
- will be compatible with the Hardware and the applicable system software;
- will provide the functions and meet the performance criteria set out by the Company.
- will be free from material defects (viruses and errors).
- If at any time before the 12 months after the date the software is Ready for Use, the Developer becomes aware or the Company advises the Developer of any failure of the Software to comply with the warranties given under the above clause, the Developer must promptly correct that failure.
- All remedial work or replacement of the whole or any part of the Software carried out by the Developer is warranted by the Developer to the same extent as the Software from the date the work was completed or the part was replaced as the case may be.
In case there are any unforeseen consequences, even if the contract is well-drafted, the parties shall be ready for everything. So, in a custom software development contract, the force majeure clause must be mentioned.
The force majeure may contain anything like a flood, wars, etc. In present times, the force majeure clause generally applies due to government orders or quarantine situations. If the contract doesn’t contain this clause, the party cannot invoke it. If they do, it may be considered as a violation.
- ‘Force Majeure’ means anything outside the reasonable control of a party, including but not limited to, acts of God, fire, storm, flood, earthquake, explosion, accident, acts of the public enemy, war, rebellion, insurrection, sabotage or failure, epidemic, quarantine restriction, labour dispute, labour shortage, power shortage, failure or delay in transportation, including any act or omission (including laws, regulations, disapprovals or failures to approve) of any government or government agency.
- If a party is wholly or partially precluded from complying with its obligations under this Agreement by Force Majeure, for more than 60 days then without prejudice to any of its other existing rights, the Company shall have the right to immediately terminate the Agreement.
If the contract is terminated by the parties, for whatever reason, the parties shall not defame each other and they shall not offer employment to any employee of the other party. This clause must be well-mentioned in the contract.
During the period of this Agreement and for 60 days thereafter, regardless of the reason or cause for that termination, neither Party will directly or indirectly engage in any conduct that will substantially diminish the value of the other Party’s business including, without limitation:
- Solicit or attempt to solicit any business from any of the other Party’s customers, clients, or prospects;
- Offer employment to or hire any employee or subcontractor of the other Party.
Miscellaneous (boilerplate clauses)
The general conditions or the general clauses of governing law, notices, no waiver, assignment, excusable delays, etc shall be mentioned while drafting the custom software development contract.
- This Agreement shall be governed by the laws of India. Such Courts shall (subject to the exhaustion of the procedure set out in the foregoing for alternative dispute resolution) have exclusive jurisdiction for the settlement of all disputes arising under this Agreement.
- All notices to be given under this Agreement will be in writing and will be served by hand or courier to the address of the recipient shown on the front page of this Agreement or any other address the recipient may designate by notice given in accordance with this clause.
- No delay or failure by either party to exercise any of its power, rights or remedies under this Agreement will operate as a waiver of them nor will any single or partial exercise of any such powers, rights or remedies preclude any other or further exercise of them. Any waiver, to be effective, must be in writing.
It is very important to think of all the circumstances while drafting any agreement or contract. The contract of custom software development is no exception. The clauses must be well-drafted to avoid any confusion and overlapping. The parties shall wisely choose their preferred type of contract. A contract that suits the requirements of both the parties and their project, i.e. software that needs to be delivered, may be beneficial.
- LMS Portal (LawSikho)
LawSikho has created a telegram group for exchanging legal knowledge, referrals, and various opportunities. You can click on this link and join: