The threat from software patent trolls arises not from an invisible distant origin, but actually from within open source communities. So that's the best place to eradicate it.
When we consider software patents, it's easy to believe they are something outside the open source communities. Mentally, many of us model them as a weapon belonging to "patent trolls" - companies who don't make products in the area of the patents they own (they may have other business interests they are funding) but instead create their income by shaking down businesses who unwittingly stray into their patent minefields.
But I suggest that many of the patents these "non-practicising entities" (as they are known to lawyers) use actually come directly from the development of software and potentially open source software. They start life in "friendly" hands, but there's every chance they will eventually be used in harmful ways. Just look at the proposed sale of Novell's patent portfolio to CPTN to get the idea how. Right now the US Department of Justice seems to agree it's a problem and may even intervene in the sale.
In the corporations where I have worked, programmers have been incented along with other engineers to constantly watch their work for ideas that could be encapsulated in a patent. This "parallel filing" - developers doing work and filing patents on their innovations at the same time - results in the creation of a ring-fence around each activity in which the engineers participate.
The fact is that all US corporations and many EU corporations are "parallel filing" as they engage in software development. That includes corporations who are investing heavily in open source communities. What open source needs is not just the donation of individual patents. While that is a fine gesture of solidarity, it is sadly little more as the patents themselves break the social contract by not actually offering a pattern developers can use to re-apply the patented idea.
There's one other important place that software patents come from, and it's an important one. Startup companies get advised by venture capital firms and the lawyers that profit from them to gather a few software patents, "so you some valuable assets" and "so you can protect yourself". This strong guidance is still given even if the startup is working with open source.
Since most startups exist to be acquired, and since most startups actually go bust before that happens, their software patents then get bought - at fire-sale prices - by patent trolls, perhaps assisted by the same people who recommend the patents be created. Thus patents filed in parallel with development by startups can then be used against the startups' communities.
While the concept is older, the modern idea of patents came from an age of mass production. Innovation was running free during the industrial revolution. Patents expressed an agreement in society to trade a temporary monopoly on an invention to its inventor for the description of the invention so that others could build on it and increase the common good. They were a 'social contract', with rights and obligations both on the inventor and on society at large. Without patents, inventors would obfuscate their inventions so as to evade counterfeiters, and consequently the know-how they created would be lost to future generations.
The timescales envisioned by the patent system were predicated on physical inventions requiring manufacturing investment. Pure ideas - business methods, philosophies, strategies for solving problems - were never subject to the same approach. The lack of manufacturing investment required for exploitation combined with the adequacy of copyright protection meant there was no useful social contract to be established for pure ideas.
The same applies to software. Parallel-filed software patents breach the social contract implied by the patent system. Unlike other patents, software patents do not form a useful body of searchable knowledge as they do not contain within the patent the sort of 'sketch' that another technician would need. Programmers need sample code, and software patents never contain a reference implementation. Instead, software patents are about protection and control.
A software patent does not free me to innovate; it just provides a constraint to my thinking. What a developer needs is the certainty that any innovation they create is safe from hostile action. Under present law that's not achievable as an absolute, but I do believe we can devise ways to be protected from patents arising from our own communities.
We're at a transition point for society. We have moved from the age of mass production to the age of mass connection. More and more invention is happening in the grey area beyond the manufactured. As Lessig pointed out in "Free Culture", this shift has stretched the laws governing creativity to their limits. As we reconsider patents, we must consider what they are and more importantly we must revisit the social contract on which they are based. Just trying to force fit the old approach of patents to the new world of participation isn't working.
What open source needs is instead a declaration by participants in open source communities that all the patents they parallel-filed during the development process are granted with the contribution of the code. The grant needs to be (at least initially) a blanket, unenumerated grant to the community receiving the contribution so that developers know they are safe from any action by that participant. The best place to get this grant is either in the community governance or in the open source license itself.
Making It Stick
Getting those declarations is the most pressing need of the open source meta-community today, and modern open source licenses like the Apache license generally achieve it. But the really big challenge is making the protection stick with the patents through things like the Novell-CPTN transition.
I remain to be convinced that is possible at present, and it needs urgent research and experimentation. Who by? I suggest the corporations benefitting from open source need to be the ones funding that research. We can't expect corporations to stop parallel filing until the patent system is fixed. They have a duty to their shareholders to, at a minimum, protect themselves in the dog-eat-dog world of corporate competition. But we can expect them to share the burden of protection with the communities in which they participate. So which of the big-legal-budget corporations that claim to love open source will step up to the challenge?