Your code is utterly bug-free. It's structured beautifully with low coupling and strong cohesion. Maintenance is a breeze and management is awed with how quickly you add new functionality. You've built the perfect software product.
Until the lawyers arrive.
Ohmygod–the compiler's runtime package uses copyrighted material purloined from a litigious outfit that just can't make money on their products, but who reap millions from pursuing cases of patent infringement. The cease and desist letter has brought production to a halt while your CEO looks for scapegoats and furiously negotiating with the “victim.” The court orders a remedy that shutters the business and puts 200 people out of work.
And it's your fault.
I was sort of amazed when a reader recently asked for permission to use a little 50-line bit-banging UART program I'd published in 1991. But nothing on the web site said the code was in the public domain, though I'd assumed it was, so he, acting with admirable honor, solicited permission before adding the snippet to his product.
If only everyone were so forthright. More than a few outfits have been caught in recent years trying to turn GPLed code into proprietary firmware, which suggests many more as-yet-undetected violations exist.
Yet open source is the easy part. Furtively stashing Linux into ROM, at least you know about the violation. But what if your code infringes on some obscure patent that IBM or Microsoft filed decades ago? Can you be sure that all purchased software components are clean?
Software patents, trade secrets, and IP may turn our industry into a wasteland. Innocent infringements will be the norm if the current mad rush to patent every minor tweak to an algorithm continues.
Don't get me wrong. Patents, trademarks, and trade secrets are crucially important tools that enhance innovation. But the rules have changed. When the big three automakers infringed on the intermittent windshield wiper, well, it was pretty easy to see the violation. Now patents cover tiny elements buried inside hugely complex systems. An awful lot of these are by no means novel, so will get reinvented by many teams many times. Yet the patent owner holds all of the aces.
How will we balance the need for IP protection versus the U.S.'s hugely litigious society? What tools will we need to ensure that our code is squeaky-clean and immune from infringement suits?
Will IP vendors–and even companies supplying compiler runtime packages–have to certify their code is clean? It's hard to imagine that happening, as it essentially moves the legal liability onto the vendor's shoulders. That doesn't happen much in the embedded world. Check IC datasheets–most explicitly say the products shall not be used in life-critical applications. The manufacturers in no way want to be held liable for, well, anything.
Eric Raymond of the Open Source Initiative recently (“Navigating Open Source Licenses Can Be a Tough Task,”LinuxInsider.com) suggested that developers should do enough review of the code to show–and document–that the company at least tried to not steal IP. After that, ignore the problem unless/until you get sued. Few businesspeople treat big risks so cavalierly. Just wait till a few big awards appear. The CEOs will panic. Something will change.
Extreme Programming mandates peer programming. Two developers share a single computer. One types while the other audits and thinks strategically. Perhaps in the Brave New World of programming one of the peers will be a lawyer.
What do you think? How will software patents and other forms of protection change the industry?
Jack G. Ganssle is a lecturer and consultant on embedded development issues. He's conducting a seminar about building better firmware faster this month in Austin and Baltimore. Contact him at . His website is .
Yup! Currently I have seen all companies drive for IP rights and business model evolution with IP rights as core! One big computer giant is believed to have survived just because of patents in the economic down period of 2001-02.
But it is not easy to identify patent violations in software as in any other field. I personally feel that software should not be allowed to be patented. Copyright & Trademark will give the recognition and respect the creator of the software and that should be enough for the survival.
I believe the software patenting battlefield will only leave IT companies with more lawyers than engineers!
– Saravanan T S
Shoot the lawyers, and replace congress!
– Bruce J. Black
Copyright is the proper protection, not patent. Sure, code fits the “algorithm” concept for patentability, but the vast number of practitioners, the relative unavailability of patent data, and the sheer volume of patents have quickly outstripped our ability to be protected by (for patent holders) and non-infringing (for practitioners) in the present system. Unless the USPTO and its international peers can come up with a method to index and distribute patent content, the world's patent systems are blatantly useless.
Companies are unable to innovate because of trivial claims in patents. Several years ago I was contracted to remove an infringement from some source code. The patent claim was the sequential assigning of transmitter IDs for a garage door opener in memory. The solution was to randomly assign the entries into the table. The claim (sequential assignment of IDs) had absolutely no bearing upon the basic function (a garage door opener). It was nice easy money, but I'd prefer to make it by innovating.
– Andy Kunz
Jack, what's your take on how so many patents were awarded for ideas that don't seem novel, that seem obvious to those schooled in the art? My favorite example is the Amazon patent for a series of mouse clicks to conclude a sale–why should that be patentable? When and why did patent examiners begin to approve patents so uncritically?
– Pete Secor
“Hope and pray” is actually the recommended method. The onus to enforce patents is on the patent-holder. Big problems arise with willful infringement. Vetting a product for infringement is expensive, time-consuming, and not much of a guarantee. You may spend more that the product is worth, be late to market, and still be sued.
Your (justified) comment about patenting minor variations has been echoed numerous times since the USPTO opened. One particularly nasty blast came from the Senate in the early 1800s. We will see the problems continue until the Dep't of Commerce stops seeing the USPTO's job as handing out patents on demand (“citizen-cenetered” is the current buzzword). Patents are a state-sanctioned monopoly and should be granted with the appropriate due duligence.
As a point of interest, many commercial software vendors indemnify their customers from patent and copyright infringements. In other words, we not only guarantee we own the rights to our software but also will defend our customers if someone files an infringement claim. This provision is in our software license agreement.
– Bill Hart, Green Hills
Your 3/31/05 article entitled “Brave New World” on software patents is very interesting and highlights an ever widening challenge to the software industry in America.
There are three parts to the software patent problem. The first is that several companies are pursuing software pattents not to protect their IP but as a revenue stream to extort money from their competitors using the patents as a form of high tech shakedown. The second is that the United States Patent Trade Office (USPTO) has run amok issuing pattents for software designs that are patently obvious. The third problem is that the Goverment has found that fees from patents issued by the USPTO are a source of revenue that can be milked to provide money to the Federal Treasury and are unwilling to lose revenue by reforming the current system.
So far it looks like the EU may not go down the road of making software patents legaly enforcable (althought they have issued them). It will be interesting to see if in the future that the EU overtakes sales in embedded software outside of the US due to problems with the patenting of software in the US.
– Scott Pickett