With the rise of e-commerce in India and the world, new and naïve forms of e-commerce business models and technologies are coming up every minute in the market. Some of these services have become an integral part of our day to day life and have changed the way we travel, we shop, we buy items of our daily needs, etc. On another perspective these concepts or models may either be identical or distinct from each other, but all of these streams have one common feature. This common feature is their dependency on multiple software platforms for the effective running and smooth execution of their concepts. Now be it a startup or an IT giant, they all have their technical dependency on in-house or outside Technical teams for their IT resource development depending upon multiple factors like skills, team size, turn- around time, cost, etc. Like any other business, getting software developed also requires to be safeguarded with strong, detailed, and flexible contracts to minimize exposures keeping in mind the dynamism of the IT industry. Based on my experiences as a technology-law consultant, below mentioned are a few points that should be essentially considered at the time of drafting, negotiating, and finalizing such agreements.
Design and Development Process related issues such as size and experience of team, nature, and complexity level of software to be developed, the methodology of development, prescribing and specifications of the development structure, nature, and number of documents required in the development of software. It should also be flexible to cater to an increase in team and expansion or variation in the change of software to be developed.
Testing is an integral part of software development, hence questions such as the process for testing the software and at what points, clients access to the results of tests, evaluation process, results, and its implication, costing for the same, whether inclusive or exclusive shall be kept in mind.
Intellectual Property Rights are the most important and commercially critical part related to software development. Issues such as licenses involved, third party licenses to be sought, platform used whether open source or specific, open source license terms, nature of client rights involved and developer licenses, sub licensing rights etc. need to be addressed to at time of software development.
Warranties and Indemnities are again a critical part of the process of software development legal documentation. Warranties are promises that a particular state of affairs obtains; indemnities are undertakings to compensate by a defined measure (usually going beyond standard contractual damages) in defined circumstances. Warranties and indemnities are used to allocate risk between the parties to the contract. Issues such as warranties by developer related to originality and genuineness of software under development, limitation of liability related to any exposure, level of indemnification by the developer in case of time lapses, non-delivery or product quality inferiority to the client or as the case may be must be kept in mind while evolving such documentation. Who will control and conduct the dispute and any settlement with the third party, specific warranties as to the performance, stability or security of the software, other warranties, and indemnities essential in the agreement.
Installation and Integration of the developed software with one or more software(s), operating systems, specific API accesses or any other futuristic technology, the onus of party taking care of such integration for technical support or commercial charges as the case may be must also be well defined in order to avoid any vacuums in terms of execution and implementation of such software development.’
Maintenance and technical support with respect to the developed, evolved, integrated software should also be aptly defined in order to avoid any ambiguity and confusions in development channel. Issues such as to what extent developer will cater its support and what shall be onus of client should be expressly described based upon structure, team size and complexity of such software under development.
Updates and Upgrades is part and parcel of IT market, forming bases of dynamism of this industry. Issues such as what sort of upgrades and updates are essential with respect to dependent soft wares, which party has what obligations, updates and upgrades to be available in general and custom software modules, dependency on support services, whether upgrades and updates shall be forced or optional.
Source Code Escrow is a part of the business to safeguard clients and to maintain stability against exposures to business dependency. It becomes very essential as substituting a software platform completely becomes very difficult or impossible at large because of integration, implementation, and dependency of business on such software, which requires constant updates, upgrades, and maintenance support. What if in such a situation developer goes out of business, goes bankrupt or by any means go out of the trade. You cannot wait and decide such situations then and there. Ideally, source code can be stored safely with a professional third party/escrow agent in order to avoid any risk if at all any such issues arise, who will pay for such a support, in what contingencies source code be released to the client, for what time period escrow agent will keep sourced code secure, etc. are some of the issues to be addressed to at the time of drafting.
Dispute Resolution is one part of any business contract that seems more of a necessary evil. Till times and relations are good, this part of the contract stays silent. But still, it is a road map in a worst-case scenario. Issues such as jurisdiction for dispute resolution, the seat of arbitration, rules to be followed, governing laws, etc. should be aptly defined in any such agreement. Ideally your arbitrator should be one who has ample knowledge of techno-legal affairs in case of predefining of the name of an institute or arbitrator.
Renewal, Termination, Amendments and Exit
This clause needs to be most cautiously drafted providing entry and exit points in a contract. Issues such as by which party and under what circumstances such agreement can be renewed, how can terms already agreed between parties can be amended, edited, updated, how can a new party be introduced, and existing party be released must be clearly defined. In case of termination, under what contingencies can either party terminate this agreement and its implication on licenses granted under this or any dependent agreements, whether any charge will have to be paid to either party in case of such termination, if any software installed and active under this agreement has to be removed, or allowed to be continued.
Besides these there might be other integral structures for any such software-related contract/ document based upon the nature of understanding between parties/ size, kind of technologies/commercial interests involved with such business process.