With rise of e-commerce in India and the world, new and naïve form of e-commerce business models and technologies are coming up every minute in market. In fact some of these services have become integral part of our day today life and have changed the way we travel, we shop, we buy items of our daily needs, etc. On other perspective these concepts or models may either be identical or distinct of each other, but all of these streams have one common feature.
This common feature is their dependency on multiple software platforms for 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, costing etc.
Like any other business, getting a software developed also requires to be safeguarded with strong, detailed and flexible contracts in order to minimize exposures keeping in mind the dynamism of IT industry.
Based on my experiences as a technology-law consultant, below mentioned are few points that should be essentially considered at 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, methodology of development, prescribing and specifications of the development structure, nature and number of documents required in development of software. It should also be flexible to cater to any increase in team and expansion or variation in change of software to be developed.
Testing is an integral part of software development, hence questions such as 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 is 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 is again a critical part in 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 developer in case of time lapses, non-delivery or product quality inferiority to 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, 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 client 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 a 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 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 arises, who will pay for such a support, in what contingencies source code be released to client, for what time period escrow agent will keep sourced code secure etc. are some of the issue to be addressed to at 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 contract stays silent. But still it is a road map in worst case scenario. Issues such as jurisdiction for dispute resolution, 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 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 nature of understanding between parties/ size, kind of technologies/commercial interests involved with such business process.