There is an interesting post on software patents by Gene Quinn, a patent attorney and editor of the IPWatchdog blog. Quinn's advice is that there's always something that can be patented in software.
"Unfortunately, some [software developers] do the programming first and never approach the design as an engineering problem for which they have a unique solution," Quinn writes. "That means no attempt has been made to identify the unique characteristics so what is programmed is many times virtually identical to the prior art."
In the end, the attorney advises developers to focus on the idea and not so much on the code: "When dealing with software and other computerized inventions you should view the innovation as a system that provides a desired set of functionalities. If there is a uniqueness that you can identify you have something that can be patented. You don’t have a bunch of code or compiled 1s and 0s, what you have is an innovation that provides desired functionality."
Quinn stresses that, in the U.S. software can be patented if it is unique and if it is tied to a machine.
There has been a controversy brewing over opinions that software should or should not be patentable. However, Quinn argues that software is really what makes a computer work. In that view, a unique software can represent innovation and should be patentable. Critics of that argument, however, state that new software will have to build always on top of a previous software invention to become, in Quinn's way put, unique. If that is the case, then it is just a matter of time until software innovation could come to a standstill.
The takeaway from Quinn's post may be that not all software features should be patentable and generic functionality could be exempt. The patentable and innovative portion of a software patent, according to Quinn, is not so much the code in which an application is written, as this process simply reflects a form of translation from design to code and the "act of translation does not impart newness."
So, that would mean that, if you are simply writing code, you won't be considered an innovator. If you want to be an innovator in software, you don't have to be necessarily a software developer. In fact, you don't have to have a clue about software development, which is exactly the problem we are currently seeing with IP companies -- such IP companies that may have had an idea for some feature at some point in time, patented that feature and began collecting license fees when a software coder actually translates that idea into an actual product. In that sense, you could envision software-enabled time-travel, hope that it will be invented within the next few years and sue for royalties at that point. Some will argue whether that is the right approach to protect innovators.