How much time and money should a software company invest to ensure that its products do not infringe on registered software patents?
The question comes to mind after Microsoft accused the open-source industry of violating 235 Microsoft patents. Microsoft released the total but did not specify the infringed-upon patents. Some accuse Microsoft of using this strong-arm tactic to force open source companies to negotiate an intellectual property agreement similar to the Microsoft/Novell Linux agreement in 2006.
Unrealistic Expectations
Microsoft’s implicit demand here is that companies should figure out which Microsoft patents they’re violating and negotiate a licensing settlement. Industry experts believe that is unrealistic. In fact, there are many reasons a software company might wish to avoid checking existing patents for infringement:
- There are too many patents to effectively search them all.
- Patents are complicated and opaque and hence difficult to determine infringement.
- Researching patents can actually open a company to additional liability and damages.
- Microsoft doesn’t do it.
More Patents Than Time
There are currently over 325,000 registered software patents. The number of new patents has increased 10% annually over the past decade and jumped 40% in 2006 with more than 40,000 new software patents approved.
“Finding a software patent on the U.S. Patent and Trademark Office Web site is very difficult,” said David Jenkins, an intellectual property attorney with Eckert Seamans. “Almost nobody calls everything the same thing… Either you use a (search) term so broad that you get a return of a thousand patents, or if you narrow it down, it’s likely you’re going to miss a lot.” Jenkins’ firm charges about $1,000 for a patent infringement search, but the cost can skyrocket when a search yields additional patents that must be investigated. “Most people should not attempt to perform a search [on their own],” Jenkins said.
My current software project includes over 250 source code files. Using a conservative estimate of 10 algorithms per file, I have 2500 algorithms that would require research to see if any of these algorithms potentially violate an existing patent. Assuming I could immediately narrow the search for each algorithm to just 0.1% of registered software patents, I would have to check 300 patents per algorithm. Using a conservative estimate of only 10 minutes to check each registered patent for infringement, I would have to spend 2500 * 300 * 10 / 60 = 125,000 hours or 60 effort-years to check my current project for patent infringement. Or I could pay Eckert Seamans over $2.5 million to do it for me.
Patent Gobbledygook
Software patents take complex technical subjects and complicate them further with legal gobbledygook. This makes it very challenging to determine whether a technology has violated a single patent, and nearly impossible to check hundreds of thousands of patents.
Linus Torvalds, the man in charge of the Linux kernel, believes that patents are too complicated for most engineers to comprehend. “Unless you have a patent attorney at your side, patent language usually makes no sense,” he said.
For example, here is the abstract for my software patent:
An apparatus, program product, and method of managing entities in an object-oriented environment permit the selective inheritance of parameters or fields from parent entities and into child entities responsive to persistent indications of the inheritability of such parameters or fields stored in a non-volatile memory. Further, in many implementations, basing a determination of inheritability on such persistent information permits inheritance to be selectively restricted for a parameter or field without requiring any changes to the database schema for a database that controls access to the parent and child entities.
I invented and implemented this technology, wrote the documentation and helped prepare the patent draft. But I have to admit my difficulty in completely understanding the abstract above as written by our (excellent) patent attorney, not to mention the patent’s 23 claims and 19 technical drawings. So if I have trouble deciphering my own patent, how will I fare trying to understand the patents of others?
As many recent patent court battles have shown, it can take months or years for a team of experts and multiple judges and juries to ultimately decide whether a technology infringes upon a patent. Take the case of Eolas vs. Microsoft, where Microsoft found itself on the bad side of the patent equation. In 1993, UC San Francisco obtained a broad patent on web browser plug-ins. UC then gave Eolas exclusive license to the technology. Eolas first contacted Microsoft regarding possible patent infringement in 1994 and then sued Microsoft in 1999. There were numerous judgements and reversals, but ultimately Eolas prevailed with a half-billion dollar judgement against Microsoft that was upheld in 2005. That’s over a decade and no doubt millions of dollars required to determine the infringement of a single patent.
Ignorance is Bliss
In addition to time and expense, there is legal incentive NOT to search other patents for infringement. If a court concludes a company violated a patent, triple damages are awarded to the plaintiff if the defendant knowingly infringed upon the patent.
“The fear of willfulness is so great that often firms instruct their engineers not to look at patents,” said Matthew Schruers, senior counsel to tech lobbying firm Computer and Communications Industry Association (CCIA).
Developing software without first reviewing registered patents enables a person to honestly say they developed their technology independently, which not only helps to boost the “obviousness” argument against a patent, but also prevents the person from knowingly violating the patent and being subject to triple damages.
Do as We Say, Not as We Do
What you do speaks so loud that I cannot hear what you say. ~Ralph Waldo Emerson
Though Microsoft has paid $1.4 billion in three years to license technology from other companies, Microsoft assumes a more passive role when it comes to investigating its own infringement on others’ patents. “If a company believes we are using its intellectual property, they should come talk to us,” the company said in a recent statement.
Microsoft has not stated publicly whether any of its products infringe on patents held by other companies. Microsoft also refuses to say whether its own developers are required to check its software for patent infringement before releasing its products.
What to Do?
It’s clear that small companies simply do not have the time, resources and money to check if their software infringes upon registered patents. Apparently, large companies such as Microsoft don’t bother as well. The whole computer industry seems to be in a state of “better to ask forgiveness than permission” when it comes to software patents.
Perhaps Linus Torvalds summed it up best: “The bulk of all patents are crap,” he said. “Spending time reading them is stupid. It’s up to the patent owner to do so, and to enforce them.”
Article published on May 21, 2007
If you like this article, please share it: |
Tags: Eolas, Linux, Patents, Software, Software-Patents, Torvalds
March 5th, 2008 at 10:54 am
[…] Are Software Patent Self-Exams Realistic? […]
June 13th, 2009 at 6:35 pm
I think strong patents help to minimize patent infringement and increase patent enforcement and that is exactly what is needed to stop the big companies from taking advantage of the little guy!
March 5th, 2010 at 12:32 am
[…] this article is a parody joke. I’m actually an iPhone fan, just not a fan of the current U.S. software patent system. Apple, I know you’re in a litigious mood lately, but please don’t sue me for poking fun […]