Two issues need to be addressed with regards to software patents. First are the requirements to get a process patented. The second is the length of time that the patent is valid.
Patents have two requirements that are relevant to this discussion, they must be both non-obvious and novel. How do we ensure that only patents that meet these requirements are accepted by the patent office? Furthermore, how do we ensure that prior art doesn’t exist and that the proposed solution isn’t obvious to a skilled person in the field? The patent office recently completed a peer-to-patent project. This research project allowed anybody to comment on a patent application, show prior art, or help clarify any aspect of the potential patent. This project relied on Wikipedia-esque help, where people who care about the industry will volunteer their time to ensure that bad patents won’t get through. I believe that this a step in the right direction and I hope that the project will be adopted and become mandatory as part of the approval process for any software or business method patent. However, it doesn’t solve the entire problem. This process does not help with the non-obvious requirement of the patent. As I have previously stated, everything is obvious when someone shows you the answer. In the peer-to-patent project, the reviewers see the patent application. I think for the non-obvious type of analysis, a blind study would better serve this purpose. The patent office should create a pool of programmers and keep a database of their related skills. When a software patent is submitted, the patent office searches the database for programmers with skills in those related areas, then selects three to five programmers to perform the blind study. The study would involve giving the selected programmers the problem that the patent seeks to solve and some amount of time (24-48 hours or varying based on complexity) to outline or pseudo-code a solution. If none of the selected programmers are able to determine the solution described in the patent, then the non-obvious prong of the patent would be met. This would prevent patents that do obvious things with new technologies from being granted. Take Apple for example. Apple creates some new technology, say a touch-screen smart phone, that is rightfully protected by patents. Then it goes on to patent the software that interfaces with this technology. The problem with these second patents is that they are obvious. Apple has basically patented doing something with a finger on a touch-screen that people have been doing for years with a mouse on standard computers. I don’t believe that just because the technology is patentable, various ways of interfacing with that technology are de facto patentable. A proposed blind study approach, using programmers willing to work for free just to ensure the quality of software patents, would prevent such obvious patents from being granted.
The second major issue is the length of software patents. Patents currently have a potential life of twenty years. I don’t think that patents were meant to grant a monopoly to the holder for the entire life of the invention. They should only be granted for a limited time, long enough to recoup research and development and get a head start on the competition. This is just long enough to encourage innovation. Twenty years in the software world is equivalent to two eternities in the physical world. The problem with the current patent duration is that by the time the patent is no longer enforceable, the technology is outdated and irrelevant. For all intents and purposes, this prevents other companies from ever using the technology (without licensing agreements) and creates a permanent monopoly over the process. The patent system walks a tightrope between the anti-competitive effects of monopolies and the anti-innovation effects of not allowing ownership of intellectual property. Allowing the monopoly for some portion of the inventions usefulness is good for innovation and competition because it gives incentives for innovation without suffering the full effects of a permanent monopoly. Allowing the patent length to exceed the usefulness of the patent, however, hurts innovation and competition. Even worse, the current length of software patents disproportionately effects small companies and start-ups. As I have discussed before, large companies have patent “war-chests” that protect them from patent litigation. Small companies and start-ups, however, do not. I believe a more reasonable time frame would be better for software patents, something along the lines of five to eight years. This would give inventors time to market their product, without fear of copying for a period of time long enough to build a brand and recoup investments, while preventing a per se permanent monopoly over the invention.
So there it is, my thoughts and feeling on software patents. While I most certainly do not believe that software shouldn’t be patentable (see the proposition in New Zealand), I do think that the patent office should do more to ensure that only deserving inventions get patent protection. Much of the backlash against software patents stems from the patent office approving patents that are obvious or non-novel and that hamper the ability of programmers to create new software. If the patent office were to take greater precautions to ensure that this didn’t happen, I believe much of the opposition to software patents would disappear.