Illustration: Greg Mably
|
The four pillars of intellectual property—patents,
copyright, trademarks, and trade secrets—all play roles
in protecting software. No wonder this is one of the
most slippery subjects for an engineer’s lawyer.
Luckily, the courts have established a framework that
matches the way the real world works (up to a point).
The framework begins by considering three milestones in
software development: function, design, and code.
At the highest level of abstraction stand the
functions that software performs. These functions are
often specified formally. For the first word-processing
program to include a cut-and-paste function, the spec
might have read: “The program shall allow a user to
highlight a section of text and move or copy that
section of text elsewhere.”
Design refers to the plan by which the software will
carry out the functions— which in patent applications
often appears as a flow chart showing how the various
subroutines, modules, and algorithms interact.
Finally, there is the code—the instructions that carry
out the functions according to the design.
It is in moving among these three levels that the
disparity between patents and copyright becomes
clearest. By law, copyright can never protect
functionality. And, there is a great uncertainty
concerning even how much of the software design
copyright can reach. Older court cases touting ideas
like the “look and feel” of a software interface and the
protection of “selection and arrangement” constituted
attempts to protect software design. Those cases have
now mostly been discredited. Even the notion of
copyright protection for the code is limited, because it
doesn’t apply to code taken from the public domain or
mandated by hardware or software constraints.
The good news about a copyright, though, is that it’s
relatively simple and inexpensive to register one. The
code doesn’t have to be inventive, new, or unobvious;
technically, it doesn’t even have to work. So in spite
of the limits, you are well advised to register a
copyright for all important software code.
The trade secret is encumbered with a lot of
conventional wisdom that happens to be dead wrong
Patents, in sharp contrast, are designed to protect
functionality, usually not by covering specific lines of
code but rather by covering a software “engine” that
takes certain inputs, manipulates them, and provides
certain outputs. The bad news is that patents are
expensive, and you have to prove that the functionality
you want to protect is new and unobvious.
Patents can also protect software design. An
example: suppose someone else has already invented the
cut-and-paste function, but you have designed a faster
or more intuitively comprehensible way to perform the
function. The “and improvements thereof” allowance in
patent land would protect your refinement.
Next on the list of IP weapons is the trade secret,
which is encumbered with a lot of conventional wisdom
that happens to be dead wrong. Trade secrets do not
offer free protection, they do not provide a fallback
position, and they include several severe restrictions.
They cannot protect function if it is publicly
known—that cut-and-paste function, for instance, is not
only not a trade secret, it’s an advertised feature.
Trade secrets can, however, protect design or code,
provided that you take active (and sometimes expensive)
steps to invoke a company-wide program that will hold up
in court.
The final weapon is trademark, which has little to do
with function, design, or code but protects only the
commercial name of the program. “Windows” is a
trademark; so are the names of the software products
advertised in this magazine. Trademark registrations are
only moderately expensive and can be obtained fairly
easily.
The function, design, and code demarcation should be
kept in mind as we continue to debate any meaningful IP
reform. Meanwhile, for any important software product,
the general consensus is that all species of
intellectual property should be explored and their
various levels of protection exploited.