I woke up the other morning thinking about open sourced software and patents for some reason. I really don’t know why I was thinking about these topics, I’m neither a programmer or a patent attorney. Anyway in an effort to get it off my mind, here are my thoughts.
The disagreement over the value of open sourced software and the necessity of software patents is a case where both sides of the debate seem to talk past each other. I think there are probably two points each side could reasonably concede.
First, those that favor intellectual property protection need to recognize that open source software development has in fact had a significant impact on what is currently available for the user. It is hard to imagine what the status of web-browsers would be with out Mozilla. I might also argue that netbooks as we know them today would not exist without open source software development (i.e., OLPC, Ubuntu, etc.). Isn’t that a market that computer companies had not developed for until the open source movement took a shot at it?
The second point, and this one is geared towards those in the open source movement, is that for some developers there does need to be some assurance that what they have created will be protected for innovation to occur. The pure models of open source software development do not adequately account for this.
From those two points here is what I think what a compromise would look like.
There needs to be a shorter time period on the length of time it takes for a piece of software to lose its protection. I would say that even the most secretively developed piece of software sold to the public (if it is not ever sold to the market then none of this matters) should at some point be open to inspection by the public. Software that was developed and sold in the mid 80s should at this point be open to inspection.
The next point is tied up in what I mean by ‘open to inspection’ and what probably needs to be a tiered system of software protection. If I were to fully patent a physical widget and sell it to the public, anyone that purchased it would have the ability to inspect my work and learn from it. The learning part here is non-trivial, which is probably why I woke up thinking about this topic. As far as I can tell this is not the case with software. If I were a programmer I do not have the same kind of opportunities to learn from how Microsoft built Windows 2000 as an electrical engineer does from how Toyota built the Prius. I think this kind of roadblock to learning is pretty serious and one that software development community will need to over come.
One way to overcome this would be to have a level of access to code that allows outsiders to see how particular problems were solved without allowing them the right to use that code in their own projects. We could even require companies to do this after a specified period. In terms of protecting against fraud, computer science departments already use programs that compare code against what is already available in order to seek out cheaters. I’m not certain whether what is currently out there would work with any large scale projects, but with the right system in place there would be incentive to develop the capability to seek out fraud.
How would this system work? Let’s say that you (either as a corp or an individual) develop some piece of software that you want to sell to the public. You could make it freely open to the public in a way that is consistent with open source movement currently advocates. You could also keep it entirely proprietary as many companies currently do. The catch is that after a certain period of time, say two years, you would need to make the code open-to-inspection. At this point, no one would be able to use your code, build from your code, or adapt your code for their own projects. They are simply allowed to learn from what you have done. After a certain point, say when the market value of the software reaches zero or 15 years, your code becomes open and fully available to the public to do with it whatever it pleases.
There are probably a ton of things I am missing here, but like I said at the start I am neither a software developer or an IP attorney. What I do know is that in comparison to how many non-software inventions are protected software protections limit opportunities for learning.