x







   
007 Deposit Detailed Documentation!

By Tipton Cole, Tipton Cole & Co.
Software Development & Consulting
Special to
the escrow advisor

A thorough software (source code) escrow requires much more than just the program source files. Commercial application programs may involve hundreds, thousands - even tens of thousands - of necessary files. The knowledge required to coordinate all of those files is an essential element of the intellectual property protection that is ensured via third-party escrow.

Where Do the Files Belong?
Each file that is part of the system functions correctly only when it is located in the right place. Location requirements are varied and can be devilishly subtle. Generally speaking each file must be located in a particular directory relative to the application "root" directory. Complications arise when the application has more than one root or when a program determines just where the root is by referencing a variable system setting value (see below). Some applications, however, require that certain files be in a fixed location on a known drive. All of this is further complicated when the application files are distributed across multiple disks or multiple computers or even across multiple locations on the internet.

Whatever the requirements of your particular application, it is essential that all of the file locations are documented either directly in writing or by means of a transparent installation mechanism that makes it clear where each file belongs.

File Generation or Compilation
Some files in the application may be generated, in whole or in part, using specialty programs such as form or report generators. Typically these generators require some description or specification from which they then create much more extensive executable or data files used in the application. Both the description or specification files and the generator programs are required in order to re-create important parts of the overall application.

Compilers are themselves very sophisticated computer applications and have their own complex array of options for identifying which files are to be used as source code, how they are to be interpreted, and where the results of the compilation are to be created. In order to assure that the beneficiary of the escrow can make good use of the source code files, all compiler settings and options, often expressed as specialized "make" files, should be included in the escrow corpus.

System Settings
System settings can take several forms: environment variables, registry values, file names, initialization files, configuration files, specialty files. A single application program may employ any one or any combination of these files. A simple mistake in the name of a file, its location, or a single character of punctuation can cripple an entire application or critical function. This problem is exacerbated by interactions (intentional or unintentional) between or among several settings. It is not at all uncommon for an application system (or even a single program) to employ multiple methods to achieve similar results - or to use multiple methods to confirm or duplicate a single result.

Conclusion
Modern computer applications can be very complex systems with hundreds or thousands of moving parts. The relationships between or among these parts need may not be obvious or easily understood without extensive documentation. Without extensive documentation as a reliable guide, it may be impossible to generate and install a workable copy of the application. Therefore it is vitally important to escrow full system documentation along with the source code and to test the accuracy and completeness of the documentation as part of the escrow verification.




Contact info@guard-it.com for more information.

Copyright 1999-2008 Guard-IT Corporation. All rights reserved.