TRADE SECRETS AND THE SOFTWARE DEVELOPMENT CYCLE

R. MARK HALLIGAN, ESQ./Richard Weyand

Last Revision Date: 10/14/01

Copyright 1999-2001 R. Mark Halligan, Esq. and Richard Weyand

There are numerous trade secrets involved in the software development process. Many lawyers and business persons do not understand the various stages of the software development cycle. Since computer software is often the subject of trade secret litigation today, it is important to understand that trade secrets exist at each stage of the software development process. Richard Weyand, President of The Trade Secret Office, Inc., is a technical expert in trade secret misappropriation suits and he has developed the following outline of steps in the software development cycle which, in turn, involve the situs of trade secrets at each level.
The basic steps in the software development process are as follows:
1. Business Investment Analysis. The market niche --who the customer is, what the customer's current choices are, what they are willing to pay, what the likely sales channel is, what the likely investment will be, and what the likely return on investment will be --should all be identified and documented at this point. This deliverable is often referred to as a "Return on Investment" Analysis. This business investment analysis and accompanying information/documentation qualify as protectable trade secrets.
2. Marketing Requirements. Marketing issues --what problems the product must solve, what features it must have, what it must do for the customer, and how it fits into the customer's business environment from the customer's perspective-- must be documented. The deliverable is a Marketing Requirements Document. This analysis and accompanying information/documentation qualify as protectable trade secrets.
3. Functional Requirements. What functions the product must perform, how the functions must work, how the functions must be organized, what specific inputs must be accommodated, what specific outputs must be generated, from the system's point of view, must be documented. The deliverable is a Functional Requirements Document. This analysis and accompanying information/documentation qualify as protectable trade secrets.
4. High-Level Design. The internal arrangement of the software, the division of the software's tasks into internal software modules, the way the internal software modules communicate to each other, the definition of the database structure, and the use of the data and other system resources by the internal software modules must be documented. The deliverable is a High-Level Design Document. This design analysis and accompanying information/documentation qualify as protectable trade secrets.
5. Low-Level Design. The internal structure of each of the internal software modules, and how the data will be used within each module, may be documented. The deliverable results in one or more Low-Level Design Documents. This design analysis and accompanying information/documentation qualify as protectable trade secrets.
6. Coding. The source code for the software must be written. The source code can be written in one or more human-readable forms known as computer languages. Cobol, Fortran, C and BASIC are examples of common computer languages. The deliverable is one or more Source Code Files. The source code and accompanying information/documentation qualify as protectable trade secrets.
7. Compilation and Linking. The source code must be converted into machine-readable form, called object code or executable code. This conversion is almost always completely automated. Each source code file is compiled into an object code file, and the object code files are then linked together into one or more executable files. The deliverables are one or more Object Code Files and one or more Executables. The compilation and linking process and accompanying information/documentation qualify as protectable trade secrets.
8. Unit Testing. Each internal software module is independently tested on a stand-alone basis to test whether it meets the functionality defined for this module in the High-Level Design Document. This testing is usually done by the person writing the code, and is done repeatedly throughout the coding and compilation and linking processes. The deliverables are a Unit Test Plan and a Unit Test Report. These test plans, reports and analyses and accompanying information/documentation qualify as protectable trade secrets.
9. Regression Testing. If a previous version of the software exists, each new version of an internal software module is now tested together with the older, established version of the other software modules. This step is not performed in developing a new software product. The deliverables are a Regression Test Plan and a Regression Test Report. These test plans, reports and analyses and accompanying information/documentation qualify as protectable trade secrets.
10. Integration Testing. The new internal software modules are now assembled into a single software package of one or more executables for the first time. The complete software package is now tested to ensure it meets the functionality defined for the software in the Functional Requirements Document. The deliverables are an Integration Test Plan and an Integration Test Report. These test plans, reports and analyses and accompanying information/documentation qualify as protectable trade secrets.
11. Alpha Release. The tested software package is now installed in one or more alpha release sites. Here the software will be used for its intended purpose for the first time, although it will not be trusted enough yet to be used in a production environment. Shortcomings will be documented and corrected. The deliverables are an Alpha Release Plan, including Alpha Release Documentation, and an Alpha Release Report. The Alpha Release Plan, reports and analyses and accompanying information/documentation qualify as protectable trade secrets.
12. Beta Release. The software package is now installed in one or more beta release sites. Here the software will again be used for its intended purpose. It may now be trusted enough to be used in a production environment, but it is still not ready for widespread release to the full customer base. Shortcomings will be documented and corrected. The deliverables are a Beta Release Plan, including Beta Release Documentation, and a Beta Release Report. The Beta Release Plan, reports and analyses and accompanying information/documentation qualify as protectable trade secrets.
13. Full Release. The software package is now available for sale to the full customer base. The deliverable is Product Release Packaging, including the final Product Documentation. This software package is protected as a trade secret at this stage with a "shrink wrap" license and copyright/trademark protection is also available at this stage to protect the originality of expression (copyright) and source-identification (trademark).
The boundaries between the steps are fluid, with many adjacent steps often being performed in a parallel fashion. Test plans can be drawn up once the requirements are in place. Also, functional requirements are seldom completed before early high-level designs have been started. Finally, unit testing is routinely completed throughout coding, compilation and linking. This trial and error and fluidity characteristics of a specific software development process also qualify as protectable trade secrets.

R. Mark Halligan, Esq.
312.526.1559         Email / Blackberry