There are several factors to be consider when determining what should be included as escrow materials. Most importantly, you need to determine what it takes to support or maintain the software. The following are the most important entities that should be included in the deposit materials.
The source code is the core of a software escrow and is the primary entity that should not be left out. Based on our experience after escrowing a large number of software projects, the following should be included:
- Third-party Dependencies – A software is built using third-party libraries, frameworks, license keys, and other dependencies, which can be a challenge to retrieve years later when the source code is released to the licensee. Therefore, the software provider is advised to include all the necessary third-party dependencies to ensure that the licensee is able to use the software without any hassle.
- Internal Repositories – Repositories are essential for technical verification because it ensures that all the needed internal repositories are present for when the escrow is released.
Apart from the source code, a properly documented software product greatly helps the software user in understanding the structure and framework of the product in the event of a release. The software documentation must include:
- Configuration Instructions: This documentation includes clear configuration steps of the software, such as database configurations, application startup options, passwords, usernames, and server configuration files, among other useful information that can help the licensee with the software.
- Build Instructions: This documentation includes the instructions and steps taken to create the source code. While it is technical and should be written considering the reader has the technical knowledge, there should be context to what the code or query describes. Not all licensees can grasp the technicality of source code. So, this documentation should be refined to a greater extent. On the other hand, there is no need for this type of documentation if the software is designed using an interpreted language.
- Any Other Critical Documentation: Any other aspects without which the software won’t function properly should be mentioned and included in the documentation in order to make the licensee’s life less miserable. For example, if the software is encrypted then the decryption tools needs to be deposited along with the software.
If the software provider has access to the licensee’s customer data, then it is important to include it in the documentation as part of an escrow material.
Virtual machines make the process of escrowing easier. This benefits the licensee a lot at the time when the release occurs as virtualization makes the escrowing entire production possible.
One of the most underrated escrow items that are often overlooked is the list of developers and their contact information. The primary reason why escrows are released is the software company going out of business. This means that the developers who worked for the software provider are also out of work. Having the list of developers worked on that software will certainly help the licensee to support and maintain.