A Practical Guide to Software License Agreements: Source Code Escrow Agreements

Software license agreements often include a source code escrow agreement that allows the customer to access and use the source code of the licensed software if specific events occur. If a Customer needs the self-help solution that Source Code can provide, then Customer must request and properly administer an appropriate Source Code Escrow Agreement.

Object code and source code

A computer program is usually written in a programming language (eg, C++ or Java) that can be read, understood and modified by experienced programmers. The resulting version of the computer program is called “source code” and is converted (“compiled”) into a machine language format, called “object code” or “machine code”, which can be installed and executed on a computer. Object code is not easily read or understood by programmers and is difficult to modify. Therefore, in most cases, programmers must have access to a computer program’s source code and related material (for example, explanatory notes and instructions) in order to modify (for example, to fix a bug or error) or improve (for example, to add new features) the program.

Source code breakdown

Software publishers generally provide customers with copies of licensed software only in object code form. There are many reasons for this approach, including: (1) source code is valuable intellectual property, and unauthorized use or disclosure of source code may result in material loss or irreparable harm to the vendor; and (2) customers who do not have access to source code are more likely to purchase software maintenance and other services from the vendor. This arrangement can be advantageous for customers using off-the-shelf software, as the software vendor is usually able to maintain the software in a cost-effective manner for the benefit of all customers.

However, in certain situations (for example, if the licensed software is expensive to acquire and implement, custom-developed for the customer, not easily or quickly replaced, or essential to the customer’s day-to-day business operations), a customer may not wanting to rely entirely on the software vendor. to provide required software maintenance services. Instead, the customer may require an additional self-help remedy—a right to access and use the source code to maintain the licensed software if the vendor is unwilling or unable to do so—provided through a source code escrow agreement.

Source code repository

Source code escrow refers to a three-way agreement – ​​between a software vendor, one or more customers, and a trusted third party (an “escrow agent”) – that allows the customer access to source code and related items of Licensed Software if a specified event (referred to as a “Release Event”) occurs. The most common release events are the bankruptcy of the software vendor and the breach by the software vendor of its contractual obligation to provide software maintenance services. If a Release Event occurs, Customer has the right to access and use the source code and associated materials to maintain the Licensed Software for Customer’s use, but not for any other purpose.

The fundamental elements of a source code escrow agreement include: (1) an obligation for the software vendor to periodically deposit with the escrow agent updated versions of the source code and related materials; (2) a procedure for Customer to periodically verify Seller’s compliance with Deposit Obligations and the quality of Deposited Source Code and Related Materials; (3) appropriate, clearly defined and verifiable releases; (4) a license to Customer to use the Source Code and Related Materials if released from Escrow; and (5) a procedure for expedited dispute resolution (eg, a dispute as to whether a release event has occurred).

Recommendations

When a customer negotiates a software license agreement, the customer should determine whether they need a source code escrow agreement. The need for a Source Code Escrow Agreement and the value it will provide to Customer will depend on a variety of circumstances, including: (1) the importance of the Licensed Software to Customer and the likely cost and time required to replace the software; (2) the likelihood that the software vendor will not provide promised software maintenance services; (3) the quality and completeness of the deposited source code and related materials; (4) the likelihood of litigation as to whether a Release Event has occurred and Customer’s ability to resolve the litigation in a timely manner; and (5) Customer’s technical and financial ability to use the Source Code Elements to maintain the Licensed Software.

In many situations, it may be better for a customer to replace licensed software than to attempt to use the source code to maintain the software if the software vendor does not. Nonetheless, a source code escrow agreement could benefit the customer by creating an incentive for the software vendor to perform the vendor’s software maintenance obligations.

If a customer needs the self-help solution that source code can provide, then they should request a source code escrow agreement and properly administer the agreement by periodically verifying that the software vendor has escrow the code. appropriate source and associated materials for the licensed software.