7/19/98

The software industry disturbs me. Copyright and patent laws were developed to tradeoff between the welfare of society and the welfare of individuals. The time scales built into these laws were the timescales of people - a generation for patents and a lifetime for copyrights. These timescales are very wrong for the software industry.

To see how these timescales are wrong, let's try to measure how fast things happen in the software industry. There are several ways to look at this.

1. How fast does the underlying hardware change?
A: About every 1.5 - 2 years the speed of hardware has doubled historically.
2. How far in advance are products predicted?
A: A year or two in advance.
3. What is the useful lifetime of a piece of softwre?
A: Somewhere between 6 months and 3 years before an upgrade is required.

All of these times are around 1.5 years, which is profoundly different from the generation or lifetime of a patent or copyright.

Laws governing a subject ought to use time scales similar to the time scale of change of a subject. Why? This belief rests on two assumptions.

1. Laws are meant to do 'good'.
2. You can only predict the state of a subject for something similar to it's time scale.
Consider that in most of the rest of society, time scales of subjects and laws governing them do match up.

Now, the system is broken. Laws concerning software have time spans on the order of 10 or more software 'generations' with serious consequences for the entire industry. Let's examine some of the consequences.

One of the more important consequences has been the rise of monopolies. Why do mismatched timescales cause monopolies? The rise of monopolies have to do with the kinds of laws which are misapplied, in particular laws which restrict the spread of information. Restricting information spread for large time scales has promoted the development of large code bases which are closed to the rest of the world. These large proprietary code bases in turn cause monopolies for several reasons. First, the users of this code base are used to the way the code behaves, locking them into use future products stemming from the code base. Second, portions of the code base can be reused in new products saving considerable time over any competitor who might want to make a competing product. Both of these effect strongly enforce monopolistic behavior. It is profoundly unsurprising that Microsoft (as a paragon of software monopolies) exists. The laws are setup to make it exist.

Another important effect is that legislation (executive or judicial) time and software development time have come to be similar. Legislative processes should occur quickly on the time scale of an industry if they are to be effective. Legislative processes for patents and copyrights do occur quickly on the time scale of patents and copyrights. Unfortunately, a 'small fraction' of the time scale of a patent or copyright is the same as the scale of a software generation, leading to serious questions about whether legislative processes have any meaning in the software industry. If trying to enforce a law takes a generation to complete so your subject has changed by the time it is completed, does trying to enforce a law make sense?

The open source software movement is essentially a reaction to this mismatch in time scales. What happens to the losing competitors in a monopolistic setting? Or better yet, what happens to the would be competitors who don't even have a chance to compete? Some, of course, join the monopoly. Others who do not have inclination to do so go write their own software and release it for free trying to change the rules of software development by taking advantage of the extremely low cost of copying.

Of the three effects above, only one of them, open source software, is arguably good for society as a whole, bringing us the internet for example.

Monopolies are known to destroy innovation. Consider Micrsoft where the philosophy of "embrace and extend" is used. From the viewpoint of a would be innovator, this philosophy sounds more like "steal and exploit". (note, that I do not use 'steal' in a legal sense here, but rather in a more personal sense) How many ideas have never had a chance to be fully developed? We will never really know because undeveloped ideas are extremely difficult to measure.

The legislative speed mismatch also has serious consequences for society. When legislation is unnecessary, it is sand in the gears of society - something slowing down progress. When legislation is necessary, it needs to be applied quickly in order to have the desired effect. Both cases imply a need for speed in legislation.

Now that we've looked through some of the consequences of the current laws, let's look at remedies. Currently a large portion of software is protected by copyright. I'll argue that copyright is inappropriate for software then try to workout a better scheme.

First, copyright is meant to protect artists. The exact definition of art is a slippery thing, but I can tell you what art is not. Art is not something that threatens the national government or the banking structure. Art is not something which a large portion of society uses and needs every day in order to accomplish tasks.

And yet, 'art' in the form of copyrighted software _is_ threatening the nation in the form of the year 2000 bug. Less dramatically, bugs in software can have profound security consequences and debilitating effects. The use of the copyright metaphor for software has had consequences in terms of lost work and security flaws. Copyright is not a good metaphor because it does not extend responsibility for the product to the developer of the product encouraging the release of poor, unreliable software.

The philosophy of patents is better. Let's assume that the goal of a patent law is making a society of self motivated individuals more efficient. (efficient at what? is a historical philosophical question. For now assume 'more efficient' means more efficient at accomplishing tasks)

Without any law the very low cost of reproduction may slow the development of software because innovators do not have time to exploit their innovation enough to motivate them to innovate. Some concession needs to be made to the individual to promote development.

Current patent law however, gives too much to the individual. From society's point of view, it is desirable that the work of an individual become a new stepping stone upon which new inventors can reach even greater heights.

Consequently, I suggest protecting software with a new form of patent the most prominent feature of which is a much reduced time scale. Patents on the order of a 1 1/2 or 2 years are appropriate for the software industry. Consider the following deal offered to innovators: 1. Society will enforce restricted copying for a period of 1 1/2 years 2. The innovator will submit the source code to a large repository of source code.

Hopefully, this scheme would be adequately appealing to the average innovator and yet, when the source code became available for general use in 1 1/2 years, useful to the public at large.


jcl@cmu.edu