Some of the thorniest problems programmers end up wrestling with don't involve advanced algorithms, new APIs, or obfuscated code. Far too often, the nastiest ones revolve around legal issues--copyrights, trade secrets, software patents, employment agreements, distribution contracts, and the like. In fact, in these days of intellectual-property confusion, the biggest difference between a one-person code shop and a multimillion-dollar corporation seems to be the number of lawyers on retainer. The bottom line is that software developers--whether they're independent contractors writing software for retail or in-house programmers creating proprietary code--need to have a basic understanding of their legal rights and responsibilities.
In general, the programming and legal professions cross paths in two areas: individual rights and software protection. For example, when you go to work for a company as an employee or contractor, you take along a certain body of knowledge--skills, algorithms, utilities, and so forth. If you write a program using one of your homegrown tools or techniques, do you give up rights to it? What's the best approach to protecting your software: trade secrets, copyrights, patents, or onerous licensing agreements? Much to their attorney's delight, many programmers are using all of the above to protect individual pieces of software because it's unclear exactly what is the best form of intellectual-property protection.
When you get down to it, however, the law isn't rocket science, no matter what lawyers would have you believe. While I wouldn't advocate Mrs. Bobbitt's defending herself before an all-male jury, you can still educate yourself to the point where legal-babble is at least as understandable as Visual Basic. Software Development: A Legal Guide and The Software Developer's and Marketer's Legal Companion, both written by lawyers experienced in software development and intellectual-property issues, do just this for software developers. Predictably, the two books cover much of the same territory, and both provide electronic versions (on MS-DOS disks) of ready-to-use forms, agreements, letters, contracts, checklists, and similar boilerplates.
Of the two books, Stephen Fishman's Software Development: A Legal Guide generally goes into more depth, particularly on volatile topics such as software patents. (The 60-page chapter on patents was actually written by patent attorney Leigh Hunt.) In addition to providing a historical and legal background on software patents, the book also discusses how to determine if your software is patentable, how to go about getting a patent, where to search for prior art (the locations and phone numbers of dozens of nationwide patent-depository libraries are listed), and how to understand the patent-classification system (not as easy as you'd expect). The discussion of software patents was refreshingly honest, considering that it was written by an attorney--or maybe it's just that I agree with the author when he says, "only the powerful (or very determined) can play the patent game." Finally, the author discusses what you can do if you're accused of patent infringement.
To my mind, trade secrets have always been a better way than patents to protect software. However, my understanding of trade-secret law has been largely anecdotal. Fishman's detailed analysis of the topic and his discussion of the steps you take to identify and protect secrets filled in the gaps for me, particularly when he compares trade secrets to both copyrights and patents.
Interestingly, Software Development also has a timely chapter on multimedia, a subject fraught with legal land mines. While Fishman's focus is for the most part on how you obtain permission to use copyrighted materials (text, photos, video, audio, and so on), he also examines public domain and the fair-use exception to copyrighted works.
As for individual rights, Fishman devotes specific chapters to employment agreements (from the perspective of both employer and employee), independent-contractor agreements, agreements to develop custom software, and ownership of software created by employees and independent contractors. Particularly useful when dealing with the Internal Revenue Service are the guidelines Fishman provides for software companies that use independent contractors.
Fishman's orientation in Software Development: A Legal Guide is largely no-nonsense reference--just the facts, ma'am. Gene Landy's Legal Companion, on the other hand, is more readable and loaded with anecdotes. (Landy's chapter on trade secrets and confidentiality agreements starts off with the well-documented travails of Gene Wang's jump from Borland to Symantec.) That's not to say that because Legal Companion is more entertaining, it's less valuable: While Landy's book overlaps with Fishman's, Legal Companion delves into topics such as beta-test agreements and software liability that aren't directly touched upon in Fishman's book.
It's significant that the Legal Companion is written for software developers and marketers. To this end, Landy also examines distribution and dealer agreements, shrink-wrap licenses and warranties, and end-user agreements. Of special note is a chapter on international software distribution (including export controls), in which Landy discusses how European and Japanese intellectual-property laws differ from those in the U.S., as well as the ins and outs of setting up distribution agreements with non-U.S. distributors.
Landy further provides guidelines for negotiating software-publishing agreements, including license and royalty issues, sublicensing, sales auditing, warranty and indemnification issues, and termination provisions. This is followed by a chapter on distribution channels (including shareware), pricing, warranties, franchise and antitrust laws, and related information.
Between them, Software Development and Legal Companion also provide hardcopy and electronic versions of nearly 40 documents, ranging from nondisclosures and multimedia privacy releases to source-code escrow and shrink-wrap license agreements. In most cases, the forms are explained or annotated so that you can use them without having to consult a lawyer.
Copyright, patent, and other registration procedures are also detailed; Legal Companion even has an official copyright-registration form bound into the book.
Using just one of these boilerplate forms or letters will more than pay for the cost of the book.
Having to worry about legal issues can be a distraction to the actual programming process. However, in this day and age, writing software without considering legal ramifications is akin to driving at night without lights--you can't see where you're going, and you can't see what's coming your way.
Neither Fishman's Software Development nor Landy's Legal Companion will solve your problems once subpoenas are being served, but either of them may save you from getting that mired down in the first place. If nothing else, the two books make it possible for you to carry on a meaningful dialogue with a smooth-talking latter-day Perry Mason when (not if) you have to engage legal counsel.
Software Development: A Legal Guide
Stephen Fishman
Nolo Press, 1993, 300 pp., $44.95
ISBN 0-87337-209-3
The Software Developer's and Marketer's Legal Companion
Gene K. Landy
Addison-Wesley, 1993, 548 pp. $34.95
ISBN 0-201-62276-9
Copyright © 1994, Dr. Dobb's JournalSoftware Development: A Legal Guide
The Software Developer's and Marketer's Legal Companion
Boilerplates
Conclusion