Why software shouldn't be covered by patents

This is an 1999 article from Tord Jansson of Blaceenc who explains quite nicely software patents from a developer perspective. The author states as its objective."The purpose of this article is to inform and educate and nothing else." Tord Jansson is not associated with this campaign or website. The original article is found at his bladeenc.mp3.no website.

Why software shouldn't be covered by patents

written by Tord Jansson
First revision.

This is just a short text, outlining the major reasons why patents shouldn't be accepted on software. I could write pages on this subject, but this short summary will have to do since I'm really busy for the moment.

Let me first say that I'm not an opponent against patents on physical, mechanical inventions. I do believe that patents in certain areas can serve a purpose and those are the areas where they belong. Just because we have patents on mechanical inventions doesn't mean we should have patents on software, design, business models or other areas where they do more harm than good.

I will here concentrate on software patents since I'm a software developer myself.

What makes software different?

The main reason why we shouldn't accept patents on software is because software and the process of development and innovation in the software industry is very different from that of the rest of the industry.

1. The number of potential inventors

In any normal industry where you deal with physical objects like the car industry or electronics industry you only have a handful of inventors. Even the big car developers only have a few hundred scientists working on improving the technology and inventing new solutions. Worldwide we probably only have a few thousand scientists working on improving things like the car engines, suspension etc. Most of the people in the industry works with producing and assembling parts and although they do an important job, they are no source of innovation.

In the software industry, every programmer is a potential inventor. Nearly every professional programmer faces new challenges daily where they need to be innovative and find new solutions. The essence of programming IS to develop new products and innovate new solutions where the old techniques doesn't fit in. Just counting the professional programmers we have millions of inventors in this industry and if we add to that all the college students, researchers and people programming in their spare time (which also can be highly innovative) we have tens of millions of potential innovators.

The sheer number of inventors makes a large difference in many ways:

  • The chance that you should be the first with any innovation you have made is abysmal to say the least. Considering the staggering amount of brainpower that has worked on inventing new software algorithms and techniques over the years I would say that it's today nearly impossible to come up with something new. What we do is to constantly reinvent something that already has been invented but forgotten again.
  • It's nearly impossible to find out if prior art exists (i.e. if the invention already have been invented) because of the incredibly large pool of already written software. It would take many lifetimes for someone to go through it all and see if a small and obscure, but ingenious, algorithm has been used anywhere before or if it indeed is a new invention. Add to that the fact that there is no central repository for source code and that most software only is available in compiled, binary format since the source code is locked into some company's safe (or lost forever due to magnetic decay, lost backups etc) and we find that it's totally impossible to even go through the 1% most likely code to already contain the invention.
  • Even if you invent something totally new it's very unlikely that somebody else won't invent the same thing within a year without knowing of your invention. Why should we grant the first inventor an exclusive right to use the invention even if it's obvious that the second inventor has made his invention totally independent? Should this second inventor be forbidden to use something he invented all by himself just because someone else also had the idea somewhat earlier?

2. The relative price of a patent

To apply for a patent is a long and costly process. However, for the big multinational car company it's really nothing. If you already pay tens of millions of dollars a year for R&D, the relative cost of issuing a patent for every innovation that comes up is in many cases not even a rounding error.

For a small innovative software developer on the other hand, where innovations are merely a byproduct of production, the relative cost is much, much higher. Production must be halted, or at least slowed down, if the inventor shall be given the time to make a technical description of the product and the product must still be finished in time. Besides, small software developers with only 1 to 10 employees (which are very common in this industry) can't afford the process anyway. And even if they did, they wouldn't have the resources necessary to track down potential users of the technique and demand royalties and they would absolutely NOT be able to afford to sue them if they denied to pay.

The big software developers on the other hand can both afford a special department for handling these issues and afford to sue companies that don't pay. Indeed, the mere threat of suing a smaller developer, that can't afford the legal expenses anyway, is often enough to get them to comply with any kind of horrendous licensing fees for a questionable patent on an obvious invention.

3. The cost of innovation

The cost of innovation is much higher in the technical industry. Having a special laboratory with scientists and special equipment costs a lot, especially since a lot of tests needs to be done in the physical world, involving the costs of making single prototypes of very advanced physical objects to test a new idea. The cost of innovation in the technical industry can therefore be sky high.

Therefore the technical industry needs some kind of guarantee that when they come up with a new invention, they will be able to recoup the costs without their competitors just copying the invention to a much lower cost. Patents were designed to tackle this very problem and in this area they often work very well. By giving the inventor a 20 year monopoly of implementations of the invention they have a good chance to recoup the cost before the invention becomes free for everyone else to use.

In the software industry on the other hand, inventions happens all the time, as part of the production and is therefore normally very cheap. Therefore we don't need patent protection in order to innovate.

A software developing company that is contracted to do a specifically hard job that requires some serious invention to take place recognizes that it's a harder than average job with higher than average risks and therefore demands higher payment in return. The calculated cost of the innovations that needs to take place is already included in the budget for the project. When the project then is finished they have (if the calculations were correct) already been paid for the cost of the innovation.

And in the case of students or hobby programmers innovating, the innovation comes at basically no monetary cost at all. They are doing it for fun or as part of their education and could in most cases not afford the cost of applying for a patent anyway.

4. Time to market and cost of duplication

A small start-up company producing physical goods, containing innovative new features, will find that most of the costs are in product duplication and distribution. Setting up a factory, negotiating with material providers, hire workers, buy machines, rent storage room, establishing sales channels etc all takes a lot of time and money for a small start-up company. It might take years before everything is in order and production is up at full speed.

Before they can do all this they need to expose their product in various ways. They need to attract investors by showing them their new wonderful product, they need to do some market research by asking people what they think about their product and somewhat later they probably want to get their product presented in media to build up demand for the launch.

During all this exposure there is always the risk that an already established company steals their idea before they reach their market.

Patents can here work as the small innovative company's protection, giving them a 20 year incubation period where they can establish themselves and grow to a size where they don't have to worry so much about their product being outcompeted by a clone from an established competitor.

In the software industry nearly all the cost lies in the development and initial exposure. As more and more software is being distributed over the Internet you don't even have any duplication or administration costs. A small company with an innovative product can keep it a secret until it is ready for sale, then it can throw it onto the market in unlimited quantities and easily establish themselves before anyone creates a competing product, which normally takes between one and two years, depending on the complexity. Patents are therefore not of much use in this situation.

5. Necessity of patents for protection of innovations

If somebody makes an innovation in the physical world, it's often very easy to dismantle the mechanism and examine it. A new car engine for example is quite easy to examine, just open the hood of the car, pick out the engine and start picking it apart.

In the software world it isn't that easy. To dig through hundreds of thousands of byte compiled assembly instructions in search of a specific algorithm isn't easy. It takes much effort, requires a high skill level in assembly language and compiler technology (quite uncommon among todays programmers) and above all, it takes time. This is today only used as a last resort when everything else fails and you really need to get to that piece of information. Normally its simply more cost effective to develop something similar yourself, inventing your own algorithms for doing the same thing. Software innovations are therefore in many cases already effectively protected.

6. Relative cost of finding patent breaches

For the same reason that it's so hard to dig into somebody else's code to steal algorithms, it's also very hard to find patent breaches.

In the physical world, you can just cut open that car engine to see if the cylinders are working in the same way or the sparks are positioned in the same way etc.

In the software world it's much harder to find out, rendering patents quite useless for protecting that ingenious algorithm that you might have innovated and request royalties for.

Good reasons for not accepting software patents

I hope that the six points above are enough to convince anyone that the software industry is very different from the normal physical production industry and wouldn't benefit from patents in the same way. But just because the industry and rate of innovation won't benefit from patents doesn't necessarily mean that they are bad and worth fighting against.

But software patents are bad and it is important that we fight against them. Here I'll list some of the major bad effects we can expect if software patents are accepted.

1. It would limit the network effect

In the software world we have something that is generally referred to as the network effect. It is often expressed as "the value of a program equals the square of the number of users". The Internet itself is a good example of the network effect. Today the Internet is extremely valuable to society as a whole. Due to the number of users on the Internet it can provide for a great deal of our infrastructural needs and if all the people in the country would be connected it would be incredibly valuable because of the services it could provide.

Imagine on the other hand an Internet with just a few thousand users. It would be almost worthless. There would be hardly no use in providing any kind of service over the Internet. Since you only could reach these few people, it wouldn't be worth the cost.

The same phenomena also translates to a lot of software. A good example is Microsoft Office which might be a quite good product on it's own, but it's tremendous value comes not from it's technical qualities, but from the fact that everyone uses it. You can easily transfer documents and spreadsheets between colleagues, offices, business partners etc since you know that everyone has that program and therefore can read and alter the documents. There might be better Office Suites in which you can produce better material easier and faster, but they can't compete with the tremendous value that Office gives to its users in form of the network effect unless they have perfect MS Office import and export abilities (which no other Office Suite has since Microsoft does the best they can to keep their file format proprietary).

This kind of network effect does exist in the physical world as well, but to a much smaller extent. Our roads work according to the network effect, but you don't need to have the same brand of a car as everyone else in order to drive it on the roads or fill it with gas at the gas station.

But in the software industry it's crucial. The value to society of the innovation is much higher if it is available for everyone else to implement in their software. Let's just imagine that somebody came up with a new revolutionary compression technology, basically making all the data that's compressed with it half the size.

If this invention was free for everyone to use, we would soon see all kinds of programs implementing it for both their data files and documents, which in effect would be equivalent to give us a twice as big hard drive. This would save millions of people money all over the world since they would be saved from some expensive hardware upgrade. We would have a network effect.

If this invention instead was given a patent, the patent holder would try to squeeze as much money as possible out of it, requiring you to pay for an expensive license if you wanted to implement it. Even if the licensing would be very cheap it would still be too much money and administration to make it worthwhile for most software developers to bother. Only very few software companies who are developing software that is dealing with extremely big files (database and video authoring software comes to my mind) would find it worthwhile to aquire a license since it would be a unique selling point for their product. The effect would be limited to less than 10% of what would be possible if the technique was free, producing just a modest saving for some small groups of users.

2. Patents are used to lock out competitors and create monopolies

The above explained network effect directly leads us into the next subject, the way that patents are used.

In the physical world, patents are normally applied for on small technological inventions that can give your product an edge in the competition. If we once again take a look at the car manufacture industry we find things like new kinds of suspension, improved engines, new safety components etc.

In the software world, patents are very often used for another reason: To lock out competitors. As explained earlier, it's the network effect that is really valuable. If you can make your product used by a large majority of the computer users, its value is increased exponentially and with that, the possibility to make profit from it. The next step, once you've made your product the standard tool in its area of use, is to lock out your competitors. The more effectively you can lock out your competitors from your established standard, the less of an alternative they are and the more you can increase the price of your product without your consumers leaving.

A patent is a VERY effective way to lock out your competitors!

If you can get a patent on some compression or encryption technology (it doesn't have to be efficient, just different enough so you can get a patent) you just have to compress/encode the files saved from your program using that technology and suddenly nobody else can sell a program that can read your file format without your permission. All competitors are effectively locked out from the file format you created and can't import or export files to/from your format, which you have managed to establish as the industry standard.

The ones who will have to pay for this in the long run are the consumers who are forced to use just one product (the only one that can load/save the files that are industry standard) to a ridiculously high price. Further innovation is also stifled since the company with the monopoly isn't especially interested in innovating any more.

Things like this is already happening to an alarmingly high degree since software patents are allowed in the US. The MP3 format, with all the licensing restrictions is a recent example.

3. The use of patents as weapons

Another alarming trend in the use of software patents in the US (where software patents are accepted) is the way some large companies (IBM. Microsoft etc) are applying for all the software patents they can think of. All the patents they are granted are then put in their patent portfolio as a potential weapon against fellow software companies and a valuable asset during negotiations.

If a new small software developer suddenly appears with a brilliant product that threatens their market share they can just dig through all the thousands of patents in their patent portfolio until they find something that they can use as a weapon. Then they sue their new competitor, arguing that they are violating their "intellectual property" (a horrible name that I find to be a contradiction in itself, but it is the established term) and demands that they are forbidden to sell their product (since it is an ongoing violation of their "intellectual property") while the case is tested in court. If they succeed in this it doesn't matter if they were right or not. They can easily stall the case so it takes more than a year before it has dug its way through the legal system and in the meantime their competitor has no income (but extra expenses due to the legal costs), their "thunder" will have been stolen and the big company will have plenty of time to create an almost identical product on their own.

Please also note that these large companies also cross-license their entire patent portfolios, giving each other full access to each others patents. Making all of them practically immune against the same kind of practices.

4. The pace of technological progress

The pace of technological progress in the computer industry as a whole is much higher than that of other industries. Ideas and techniques that would have been revolutionary just a few years ago are obvious to anyone within this industry today. Providing anyone with a 20 year monopoly on a technique is therefore much more harmful than in other industries and is bound to stifle further innovation. Remember, it has taken both Microsoft and the Internet less than 20 years to get from nowhere until where they are today. A more suitable time span for patents in the software industry would be 3-5 years.

5. The free software movement

The Free Software movement is definitely one of the most exciting developments in the software industry today. I won't go into any detail explaining the potential this new way of software development brings to society as whole. There is plenty of material explaining this out on the Internet.

Let's just say that this movement has the potential of improving the network effects in the software world dramatically, provide better software, cut down software development and licensing costs and give the power back to the users of the software which would slow down the crazy and costly software upgrade cycle that most users finds themselves trapped in today.

The most successful products resulting from this movement so far are Linux (a famous Operating System), Apache (a web server that provides more than 60% of the pages on the Internet) and Perl (a programming language, popular for web related development).

The Free Software Movement is by many people seen as the future of software development and promises to bring many badly needed changes to the whole software industry. But if we strangle it while it's still in the cradle, it won't get the chance.

It is generally agreed that software patents is the single greatest threat against future development of free software and all the leaders of this movement have expressed great concern about this situation.

Conclusion

I hope that this short and compact explanation is enough to make most people understand that it's very important for the future of both the software industry and all the people who use various software products in their daily work that we don't accept software patents. Many (mostly large) companies are still in favor of software patents, but that's because they believe that kind of system would favor them more than their competition, not because it's good for the industry or consumers.

To me it's obvious, software patents do much more harm than good.

Tord Jansson

Software developer

About the author

Tord Jansson was born 1974 in Sweden and is by the time of writing 25 years old. He has worked as a professional programmer and project manager for more than 6 years. In 1994 Tord joined the small group of people who formed UDS AB, today one of Sweden's most successful computer game development studios with approximately 50 employees. He has recently quit his job at UDS in order to return to his home province and set up his own software company. Tord has sympathized with the free software movement for more than two years and actively taken part for a little more than a year. He got first hand experience of the dark sides of software patents when he was threatened into removing his hobby project, a free MP3 encoder called BladeEnc, from the Internet due to patent claims.

The purpose of this article is to inform and educate and nothing else. I do not claim any copyright to it, so you may change and reproduce it anyway you see fit. However, if you do make changes, please make sure to not put words in my mouth. Make it easy to distinguish what I have said and what is your additions or modifications. If that isn't an option, please state that this is a modified version of the text and provide a link to my original on http://bladeenc.mp3.no/articles/software_patents.html or don't mention my name at all.