Dr. Dobb's Sourcebook March/April 1997
Like most employees, programmers know the amount of their paychecks and when they are going to be paid. But if you ask who manages the company's intellectual property, a puzzled look is often returned. This is surprising, especially in light of a recent Los Angeles Times estimate that investments in high technology soared to $1.3 billion in the third quarter of last year -- much of it tied up in intellectual property. As with any investment, organizations clearly need to take steps to protect their intellectual property.
Every company needs a comprehensive program for managing and protecting intellectual property. This program should take a soup-to-nuts approach, beginning in the employment interview process and extending through project completion. Admittedly, the points I'll raise in this month's column may seem one-sided on behalf of the company, particularly in terms of employer/employee relationships. However, by clearly identifying the rights and responsibilities of both the employee and employer at the outset, misunderstandings (and possible litigation) can be avoided later on.
During the pre-employment interview process, programmers should disclose on employment applications any obligations for maintaining confidential information from another company, obligations to assign future development work or not to compete, and any existing or threatened legal action.
Legal-related information that surfaces should be carefully considered. In Avtec Systems, Inc. v. Peiffer, Kisak-Kisak Inc. failed to investigate information that placed in question its right to use a program written by one of its employees based on information obtained during his prior employment with Peiffer. This failure was held to render KKI liable for trade-secret misappropriation.
In many cases, employees should sign a written employment agreement that makes it clear that the programmer is being hired to develop software and that all of the results of his work are owned by the employer. To avoid future disputes, the agreement can also provide that the employer owns all software conceived or developed that is related to the employer's existing or planned business at any time during employment, regardless of whether it was developed on company time or with the use of company facilities or information. Of course, many programmers bring a body of knowledge -- including routines they've previously written -- with them when they come to a job. An itemized list should be attached that identifies excluded software. Restrictions imposed by the law of the state in which the programmer works must also be considered.
The agreement should also require programmers to disclose all software they conceive during their employment to the employer in writing, and should require programmers to alert management to any infringement issues that arise.
The agreement should require the programmer to protect the confidentiality of a broad variety of information, both during and after his employment. The agreement should specify each category of information that the programmer must protect. In addition to software, the categories should include the identity and characteristics of customers, suppliers, consultants, and other employees. Financial information, such as costs and profits, should also be itemized. The agreement should require the programmer to exercise diligent efforts to prevent the disclosure of this confidential information to anyone outside of the company. It should also prohibit use of the information for purposes other than for the employer's benefit, prohibit nonessential copies of the information from being made, and require the programmer to turn over all documentation containing the information to the employer upon termination of employment (or earlier if requested).
While software is being developed, careful attention must be given to avoiding infringement of intellectual-property rights held by others.
Source or object code from another company should never be used, in whole or in part, without a license. When there is a license (a shrink-wrap license, for instance), it should be carefully studied to ensure that it authorizes the redistribution being contemplated.
Frequently, concepts are used from another company's software, but not the source or object code itself. The courts are currently interpreting the Copyright Law to provide considerable latitude for this. However, the license under which a company's software was procured may restrict this latitude (for instance, prohibiting decompilation). Although the extraction and use of these concepts may not violate the Copyright Law, such practices may violate the license agreement. The license agreement should be studied to ensure that it does not prohibit the extraction and use of concepts. Most license agreements do.
Patents covering software are becoming more prevalent. A company's software should be closely examined for markings indicating the presence of a patent. Any patents found should be carefully studied. Only a person trained in patent law can competently determine the question of patent infringement. (For more information, see my column entitled "Determining Software Patent Infringement," Dr. Dobb's Sourcebook, January/February 1996.) If you have any doubt, get an opinion from a patent attorney.
A search should be performed to verify the availability of any product name. If sales outside of the United States are contemplated, an international search is needed. Typically, the search is performed in stages of increasing depth and geographic scope, thus reducing costs when a problem surfaces during a preliminary search.
Procedures need to be established for responding to allegations of infringement made against your company. Someone in the company should be assigned to manage these allegations and everyone should know who that is. Employees should be directed not to respond to allegations of infringement themselves.
Not stepping on the toes of another company, of course, is important. Equally important is maximizing the protection the law provides to the developed software. This can prevent competition, provide licensing revenue, and provide opportunities for partnering agreements. Specific tactics include the following:
Documentation. Document the development of the software. Concepts, flow diagrams, and source code should be periodically preserved in a manner ensuring that the date of their creation and their content cannot later be reasonably challenged. Using bound notebooks with significant contributions being dated and witnessed by other programmers is one technique. Storing the information on computer-readable media, although expedient, is insufficient if the date or content can be altered easily.
Registering Copyrights. The copyright on all versions of source code should be registered with the U.S. Copyright Office no more than three months after first being distributed to anyone outside of the company. Meeting this deadline will provide the right to obtain money for any unauthorized copy without having to prove that the unauthorized copy caused your company to lose business. It will also give your company the right to obtain an award of attorney fees against an infringer.
Registering a copyright is simple and inexpensive. The necessary forms and instructions can be obtained from the U.S. Copyright Office at http://lcweb.loc.gov/ copyright/.
Applying for Patents. Don't overlook the possibility of obtaining a patent. Unlike copyrights, patents protect broad concepts and do not require proof of copying to establish infringement. Moreover, software can be protected by both a patent and a copyright simultaneously.
Invention disclosure forms should be provided to all software developers. In addition to describing the software, the form should require that the advantages of the software be described. It should also require a description of how to write and use the software without undue experimentation; the very best mode of implementing the software; all relevant prior art; the date when the software was or will be first offered for sale (used for its intended purpose without a substantial experimental motive), or described in a document made available outside of the company. As an incentive, provide a bonus to any programmer whose software is ultimately patented.
A mechanism should be in place for assessing the value of software so that determinations can readily be made whether to apply for a patent. Among the criteria to consider are the likelihood of the software being used in a product by your company (or another company), the advantages of the software, and the ease of obtaining similar advantages with other software. The procedures should ensure that an application for patent is filed in a timely manner and that the programmers promptly assign their rights to their employer.
In the United States, an application for patent usually must be filed within one year of the date the software incorporating the invention is first offered for sale. This deadline can run, even though the offer for sale occurs before the software is completed. In UMC Electronics Co. v. United States, an electronic system recorded the number of times an aircraft was subject to specific acceleration levels. Before the system was completed, the inventor offered to sell the system to the Navy by responding to a bid request. The response did not propose to develop an experimental system, but offered the completed system as an ordinary commercial sale. Even though the system had not yet been completed, the court held that this offer triggered the one-year deadline.
Quality-control procedures should also be implemented. The patent application should be reviewed for completeness and accuracy. Communications with the Patent Office should also be reviewed to ensure that the invention is not characterized too narrowly and that representations about its content or advantages are accurate.
Docketing procedures are also important. United States and foreign filing deadlines need to be monitored, as well as deadlines for responding to communications from the Patent Office and for paying maintenance fees.
Trade Secret Protection. Some software can be more effectively protected as a trade secret. Trade secret protection is often a good choice when the technological advancement in the software is not visible to the user (as in a search algorithm). An effective trade-secret-protection program requires written commitments from all those coming into contact with the software to protect its confidentiality. For customers, this means a commitment not to decompile the software or to otherwise extract its internal concepts. Physical security measures must also be taken. Access to the confidential information must be restricted, and the information should be marked "confidential."
Trademark Protection. The name chosen for the software should be registered in each country where sales are contemplated. Registration in the United States ensures that the trademark will be protected in states where the software has not yet been marketed. Registration in foreign countries is often essential to ensure that the trademark is not lost to another company.
Infringement Management. Procedures should be established for handling reports that your intellectual property (copyrights, patents, trade secrets, or trademarks) is being infringed by another company. The validity of the infringement suspicion needs to be verified, and prompt action must be taken. Otherwise, your rights to legal relief can be diminished or lost.
An active licensing program can also be the source of significant revenue. The benefit of that revenue, of course, must be balanced against the loss of an exclusive position in the marketplace.
Software should be licensed, not sold. The license agreement should prohibit decompilation of object code, interfacing with other software, making upgrades or enhancements, and outsourcing maintenance of the software. Obligations of confidentiality must also be imposed if the software contains trade secrets.
The importance of a good license agreement is underscored by last year's decision in ProCD, Inc. v. Zeiderberg. ProCD marketed a CD-ROM containing information from more than 3000 telephone directories, compiled at a cost of more than $10 million. Zeiderberg purchased one of these CD-ROMs on the open market for about $150. He then resold the information over the Internet. ProCD sued for copyright infringement and breach of the shrink-wrap licensing agreement.
ProCD's copyright-infringement claim against Zeiderberg failed. The court held that the copyright law does not protect databases of telephone information. But its claim for breach of the shrink-wrap license prevailed. The appellate court held that the shrink-wrap license was enforceable, along with its prohibition against commercial use of the information in the CD-ROM. Had this clause in the license been omitted, a $10 million investment would have turned to dust.
Although popular, shrink-wrap licenses have not yet been universally approved by the courts. If this form of contract must be used, the outside of the packaging should clearly state that any payment is only for a license and that the license will not be granted until its terms are reviewed and accepted when the software is loaded. The customer should be given the right to return the software for a full refund if the terms are not acceptable.
All promotional material should be reviewed for legal sufficiency. Of particular importance are the trademarks. Their proper use should be verified.
Copyright notices should appear wherever possible. This includes in source and object code and on boot-up screens, disks, manuals, and packaging. The notice should consist of © followed by the year in which the software was first distributed and the name of the copyright owner. When covered by a patent, the patent number should also appear (again, wherever physically possible).
When incorporating modules from another company, try to secure a written commitment from the other company to stand behind any infringement allegations made against your company because of use of these modules.
Significant conflicts can arise when employees leave a company. In one famous instance of this kind, indictments against two officers of Symantec were issued by a grand jury, alleging that the officers stole trade secrets from Borland. The indictments followed an investigation by the district attorney's office into allegations that a Borland officer took confidential material with him when he left Borland to join Symantec. Borland also contended that, prior to his departure, the officer transferred company secrets to Symantec via e-mail. Civil charges against the two Symantec officers were also filed by Borland.
Exit interviews should be conducted at the termination of all employment. A copy of the original employment agreement should be provided to the departing programmer, along with a reminder about the programmer's continuing obligations. An effort should be made to reacquire all materials provided to the programmer and to inventory these materials for completeness. Following termination, a copy of the employment agreement should be mailed to the programmer, together with a letter reminding him of his continuing obligations.
Once in place and running smoothly, a comprehensive program for protecting intellectual property can substantially enhance the value of your business and its products. However, the process is ongoing and requires constant education for all individuals involved in the process -- particularly programmers.
DDJ