22 Jun 2007

Software Patents

Last month, John Gruber linked to a post entitled "Outrageous" by Mark Pilgrim. It is the story of how Mark was forced by his managers at IBM to patent a software technique for embedding accessibility information into HTML documents that he would rather have seen go open-source to speed adoption. I read this article with some interest, as at the time I had just begun my third summer internship at IBM and therefore had some familiarity with the company's patent strategy. IBM takes a lot of pride in being an industry leader in patents filed each year, and they cite it as an example of the innovation of their employees. Mark describes it in a somewhat different light:

"It’s an institutionalized form of madness, outrageous, all-consuming, and incurable. I’m ashamed to have been a part of it."

It's interesting then, that now, a little over a month later, the team that I am working on has decided to file a invention disclosure with IBM. Before IBM will pay to file a patent, the inventors must convince an internal review board of the uniqueness and importance of the proposed patent to ensure that IBM does not waste money filing patents which have not been adequately researched or have no potential to generate licensing revenue.

The patent that my team wants to file is, of course, a software patent. I don't know how I feel about this.

I can't discuss the specifics of the project we are working on, but judging by our initial research of prior art, no one has yet patented this type of application with the features we wish to claim. In addition, patents have been granted for similar applications which makes it look likely that ours would be granted.

But when I think about the software tool that we have created, I cannot really convince myself that it is patent-worthy. The software was developed to re-engineer a tedious manual process. We saw a need, and decided that it could be filled with software. There are no unique algorithms (although algorithms are not patentable), no amazing new code tricks, just functionality that the people at IBM decided it would be nice to create software for.

Unlike Mark's patent, this software would not be applicable outside the semiconductor industry, which makes me feel better about potentially filing a patent for it. But I'm not sure that I agree with the concept of software patents in general. Patenting a software program is about the closest you can get to patenting an idea. The patent system is not about protecting ideas - it's about protecting specific implementations of ideas, however broad they may be. (For an example, check out the Google Patent Search for random number generator.) The inventor must demonstrate in the patent that a prototype would be feasible to construct. Software, however, is independent of its implementation. It doesn't matter whether you wrote the thing in C++, Java, or even Scheme, it's the compiled (or interpreted) machine code that matters. Software is not even tangible; it only exists as an encoded stream of bits on a computer. In order to patent it, you have to use special wording to the effect that you want to patent the memory containing the software that makes the computer perform the steps you are claiming.