…Prehistoric times, ancient times, middle ages, modern age, IT age
Nowadays, information technologies not only support business but have become just necessary for business activities as such. Dependency of companies on their software rises as information technologies develop. Crashes of software applications (especially business critical) may have fatal impacts. However, it is impossible to get rid of this dependency on software these days. Staying competitive requires the companies to use information systems to certain extent in businesses of all sizes and branches. It is not the dependencies on specific applications that are the problem; it may rather be a dependency on a specific supplier, especially if it is a client-tailored system. The business activities of the software user are now directly influenced by the supplier’s ability to ensure maintenance and development of the system in the long run.
Importance of source codes
Coders create software applications by writing a source code, i.e. a record people can understand. The source code is then converted into a format only computers understand called a binary form. Only this binary form of the application is then submitted to the client, as it is fully sufficient for its run and use. If the client demands any changes or corrections of the product, they contact the producer who then carries out the required modifications in the source codes, generates a new binary version of the application and delivers it to the client again. Development of the software makes the existing business plans more effective and implements new ones.
It is possible to provide full technical support and to develop the information system over a long period only with access to complete source codes.
Zdrojové kódy jsou úzkostlivě střeženým obchodním tajemstvím. Výrobci zakázkového software poskytují zdrojové kódy svým zákazníkům ve výjimečných případech. Zpravidla se pouze smluvně zavazují ke kontinuální podpoře a údržbě svého produktu. Jaké má však zákazník jako uživatel software možnosti, pokud se výrobce rozhodne ukončit podporu nebo z jiných důvodů není schopen produkt dále udržovat a vyvíjet? Při řešení toho skutečného problému má na výběr pouze omezené možnosti:
- replacement by some other system – demanding in terms of time and finances;
- application running on without support – usually brings unacceptable risks;
- ensuring the maintenance of the application by some other producer or, possibly, by own sources – requires access to the source codes.
Please read further on to find out how software escrow can minimize the risks related to the situation described.
Software escrow solution
The software escrow is a deposit of source codes administered by an independent third party. This is typically required by the owner of the license, and its aim is to ensure support and maintenance of the software. The source codes are delivered only when the conditions of the agreement are fulfilled, i.e. the producer does not meet contractual requirements for maintenance, producer is in decline etc. The escrow agent plays a role of an independent third party, and besides the deposit of the source codes often offers other services such as technical verification of the code (code review), verification of development environment, software audit etc.
The software escrow services originated in the USA in the 1970s where they came to existence as a solution to insure applications that were critical for companies in terms of their business activities. It was mainly about actual storage of source codes and data on back-up tapes at a third trustworthy party. Involving escrow agents in negotiations about license conditions became a natural part of most software projects in the USA and Western Europe.
Software escrow is an agreement between the software producer, user, and escrow agent to provide the user with access to source codes and software on fulfilling the conditions defined.
License contract or a contract on maintenance typically contains a clause referring to an escrow agreement. The party which initiated the deposit of source codes agrees on the conditions with the escrow agent and then introduces a third party to the negotiations, and this party may comment on this agreement.
The agreement defines the main features of the procedure in which the software producer submits the source codes to the escrow agent to be deposited there, including the details on what will be deposited and how often. Besides the source codes corresponding to the version of the software which is running in the company, the deposit often contains also all the necessary programming tools for the run and administration of the application. Also, the agreement defines what way the software user will receive the digital material in case the conditions are fulfilled.
The escrow agreement has to deal mainly with following aspects of the three-party agreement.
Escrow smlouva musí řešit především následující aspekty trojstranné dohody.
Conditions for releasing the source codes
The agreement clearly defines conditions for releasing the source codes from the deposit. Following are typical conditions:
- software producer goes bankrupt;
- violation of the escrow agreement by the software producer;
- violation of obligations following from the maintenance contract.
Guarantees of the producer
The software producer as a licensor contracts that the deposited source codes contain all the programming tools necessary for compilation of the code (build scripts, build instructions, libraries of third parties, making the development environment run etc).
Technical verification is among above-standard services offered by escrow agents. It is the only real possibility to actually prove that:
- it is possible to fully compile the received source codes and thus create a functional software application,
- the source codes and the programming tools correspond to the version of the software product which is running in the company at the moment.
A license is released together with the source codes, and this license defines the way the source codes should be treated:
- for what purposes the source codes will be used (typically only for maintenance);
- what way the source codes will be treated (to be kept confidential etc).
The escrow agreement should also deal with a force majeure clause. This clause releases all the participating parties from the obligations following from the agreement in following cases: war, natural disasters, and other unpredictable events.