TRADE SECRETS AND THE SOFTWARE DEVELOPMENT CYCLE
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.
|