11

As of lately, I've noticed quite an increase in software algorithm patents, that is: patents that explain certain data structures and/or software algorithms.

The problem I personally have with patents is that a lot of those patents reflect (in my personal opinion) pretty trivial solutions to common problems (in that certain area of expertise). Now, regardless of my personal feelings, I'm not looking for a lawsuit of any sorts, so I prefer avoiding patent claims.

To make this statement a bit more concrete: say you're building a small database system for some reason. Because CPU's are better at processing vectors than individual rows of data, you decide to store data in columns - after all, it's the trivial solution for my problem. Well, guess what, that is apparently patented in US20080059492 .

Another example is the patent for calculating an absolute value without branching. After a bit of fiddling in Excel with bits you find the formula const int mask = v >> sizeof(int) * 8 - 1; r = (v ^ mask) - mask;. As it turns out, this is apparently patented.

Note that these are just some random examples; I've read dozens of patents that I think are pretty obvious solutions to common problems (given that you are an expert in the field).

This made me worry. Each time I implement an algorithm that trivially sounds feels like it solves the problem at hand, you might inadvertently create a patent claim. I'm not worried about the patents I know about or that I can reasonably search -- I'm mostly worried about the patents that I don't know about. I really feel like I could be making 'logical' decisions like this a thousand times a day - but in truth, I have absolutely no idea what possible patent infringements are buried in these hundred thousands lines of code.

Now, I've been questioning myself if this is the right place for this question -- and read on-topic. If however, I've got it wrong, please explain.

My question is: How can I implement software, knowing that I'm walking in a huge minefield of trivial patents, but unsure where these mines are buried?

Note that I'm not asking about specific patents, I'm mostly looking for a practical way-of-work regarding patents.

  • 1
    Moderator's Note: It's true that opinions of the patent system are varied, but, while it's generally accepted not to not be perfect, it is a reality that many people (developers and otherwise) have to live with. To that end, please refrain from posting sarcastic or unrealistic answers and comments suggesting this user move to another country or ignore the risk, as they will be removed. This is not the place for critique of United States laws. And as always, please keep answers and comments civil. If anyone has questions about our standards, please don't hesitate to ask. – Matthew Haugen Aug 27 '15 at 23:19
6
+50

What you are looking for is Freedom-to-Operate. There are quite a few articles written on this subject, and most of them deal with the inherent difficulty you describe. I've stitched together some excerpts from those articles, hopefully into a coherent meta-article:

Crouch, D. Facilitating Freedom-to-Operate Searches. Patently-O. September 17, 2010.

A good freedom-to-operate (FTO) search will include a search of pending patent applications with an eye toward potential future threats.

Quinn, G. Difference Between Patent Searches & Infringement Clearance. IP Watchdog. January 21, 2010

...it is impossible to determine whether [a] device would infringe without obtaining the complete file history of each patent that is close. You simply cannot tell from reading a patent whether a device will infringe. This is because everything in the file history, all the arguments made to the examiner and papers filed work to either narrow or expand the definition and meaning of terms in the patent application.

Sutton, P. Patent-FTO caveats. World Intellectual Property Review. January 2, 2014.

There is no substitute for retaining highly skilled and experienced patent counsel to advise on the avoidance and mitigation of such risks.

Quinn, G. Freedom to Operate: Knowing if you will likely infringe a patent. IP Watchdog. June 27, 2015.

...the search for a freedom to operate opinion would alone cost at least $3,000, and that would return dozens of references that a patent attorney must wade through in painstaking detail. Typically a freedom to operate opinion will cost at least $10,000, and sometimes substantially more. It is not at all uncommon for a freedom to operate opinion to cost $20,000 or $30,000, or more.

Thayer, L. J. When Is a "Freedom to Operate" Opinion Cost-Effective? Today’s General Counsel. February/March 2013.

As a first step, a company should consider the product or service being launched or acquired in terms of its value to the company.

Products with high margin or high volume are most likely to lead to high damage awards if a patent-infringement case goes to trial. Therefore it will often be worth it to take the extra step and clear the product before proceeding. ... If a company has limited dollars to spend for clearance, products can at least be initially ranked in terms of value.

... For products requiring less investment, FTO analysis may be deferred until nearer to the end of the project, but it should still be performed before release.

The danger of waiting until the product is fully developed lies in a simple fact: By then the business units will be champing at the bit to release the product, and an early release may result in litigation that was avoidable.

Lundberg, S. Are Software Patent FTO’s Really that Hard to Do?: Are Software Patents Impossible to Index, or is No One Trying? Patents4Software. March 10, 2012.

If software patents were a minefield for developers, the mines would generally be at least 5 miles apart, making accidentally stepping on one a very low probability occurrence. If it is a patent on “internal functionality” that would not normally be discernible by observing the software operate or using it, the odds of the patent owner finding out you stepped on their mine are smaller yet.

Essentially, what this boils down to is a risk assessment. If you are founding a startup, you might build this into the commercialization plan as a potential risk, and identify any parts of the code base that may need to be analyzed for freedom-to-operate. If/when the company is acquired or funded by VC, a proper freedom-to-operate search can be done at that time.

As a developer, you should be aware of a few basic guidelines: if you are using algorithms and methods that have been around for 17 to 20 years, then all patent claims should have expired by now. If you are using libraries or frameworks from Open Source or licensed commercial software, then those pieces should also be in the clear. What is left over is material that could be at risk for freedom-to-operate.

If you want to adjust your software development approach to accommodate potential future-discovered freedom-to-operate issues, then make it as easy as possible to accommodate multiple methods of solving a problem wherever you find at-risk code. There is almost always more than one way to accomplish a task in software, and it is usually pretty easy to side-step patent claims by adjusting your approach, if it is ever required in the future. Accommodating multiple approaches is made far easier by adopting good software development practices, namely keep your code base clean, well-documented and modular (encapsulate code to make it easy to analyze in small pieces).

There is currently draft legislation on patent reform to address some of these issues. The Electronic Frontier Foundation keeps an updated list of the proposed reforms, and many of them contain language to specifically protect startup companies against patent trolls.

For instance:

SHIELD Act (HR 6245)

Reps. Peter DeFazio (D-OR) and Jason Chaffetz (D-UT)

The SHIELD Act, or the Saving High-Tech Innovators from Egregious Legal Disputes Act (H.R. 845), is designed to help the innocent victims of patent trolls by creating a "fee shifting" system.

To put the current state of software patents in perspective, the following book (relevant pages available online) describe the historical decisions on software patents, including relatively recent changes from AIA:

The Changing Face of US Patent Law and Its Impact on Business Strategy. Cahoy, D.R. and Oswald, L.J., eds. Edward Eglar, United Kingdom, 2013; pp44-49.

  • The advice every sane person gives is: Just ignore the software patents. Hope they will go away because if they don't, the USA is finished as an innovation center. – Deign Aug 24 '15 at 3:20
  • @vallismortis I'm struggling with this answer. If you're building innovative software for a living like me, the odds of infringing a patent are significantly higher than if you're just putting glueing a database, a website and some OS packages together (e.g. 95% of the applications). I think that FTO is the majority for university-grade innovative programs. You also say that in my case it's practically impossible to create a claim, because it cannot be observed - on the other hand, that sort-a feels like ignoring the road signs you don't know (probably a bad idea if there's a big cross on it). – atlaste Aug 24 '15 at 7:13
  • The solution that's given is to simply ignore all patents and solve the issues when they occur. That might be fine if you're hosting software SAAS, but if you're selling software packages it'll immediately bounces back as a distribution problem. All this leaves FTO for the lot as the answer, which might be theoretically correct, but economically impossible for most startups. .. and hence my struggle. – atlaste Aug 24 '15 at 7:14
5

I concur with vallismortis's answer, but here are my views since I am a software / firmware developer too. What I have learnt over the years is not to go out looking for in your words "possible patent infringements" that "are buried in these hundred thousands lines of code." (search for "willful infringement" to understand my practice).

Here are three reasons I don't worry much about those "possible patent infringement"

(i) recent Legal rulings

  • With the Alice ruling - the holding is "Merely requiring generic computer implementation fails to transform an abstract idea into patent-eligible invention ..."

  • With the Bilski ruling - the holding is "machine-or-transformation test is not the sole test for determining the patent eligibility of a process, but rather a useful tool .."

(ii) Holistic approach required

  • To avoid patent infringement, it cannot be done by one developer/consultant in a team - it has to be done at an organizational level.

  • Organization counsel must drive the effort to put a policy/process in place to avoid / reduce chances of patent infringement.

(iii) Any search if any must be done by an external entity under "Attorney- Client Privilege". And this must be managed by the Organization's counsel.

Also I (the developer) am not being paid to search for patent (which may not exist) that I think I might need to worry about.

The search for "possible patent infringements" should not be part of my best practices .

3

As starter, you can not avoid the risk of infringing a patent without checking any "innovation" potential. You might go over some "old" patents to find what is available. You might also look at some prior art. You may also try to patent your idea by creating an independent claim that uses part of potential infringement. To be safe you might need to confine yourself to known algorithms, "nature driven" ideas. Business is risky, so this is part of the risk.

  • 1
    Thanks for your response. Unfortunately this doesn't answer my question. In software patents, a lot of 'trivial' things for experts seem to be patented. If you have an idea that you need to spend a year working on - it's okay to first do research (a good academia does that anyways). These are things you come up with 10 times a day. Also, just sticking with 'known' algorithms is not a guarantee. For example, B+-tree's aren't patented, but if you put position data in there (which feels quite natural for me), all of a sudden it's called a 'PDT tree' which IS apparently patented. – atlaste Aug 22 '15 at 12:17
  • Obvious to you does not mean that there is no innovation. The greatest patents are those that are kind of obvious but required the small jump. For development phase patents are not a risk. In case someone complains of violation, you could always negotiated a deal or modify some your solution. Also, if you file a patent - you may look into filing a CIP. I hope that you know that patents need to be valid to be violated. Your concern does not seem to be a majority worry. – Moti Aug 22 '15 at 15:52
  • I've thought long and hard about this comment and I have a lot of issue with it. First off, violation implies it's something you could have avoided. Basically you say you should violate first, then once you get a claim, fight or back off. That just feels completely wrong. My question is about avoiding this. Also, I infer from your comment that patents are a discrimination against brilliant people, who eat those 'small jumps' for breakfast. That said, my issue here is that after all answers and comments I believe both are true and the only practical way-of-work. – atlaste Aug 26 '15 at 6:29
2

I would assume that applications like you mentioned would be rejected by USPTO or, if a patent granted, challenged in court. In particular US 2008/0059492 A1 you mentioned is an application, not a grant. I believe it won’t be granted because according to USPTO it describes an “abstract idea”.

  • 1
    That particular patent application has an interesting story behind it. The Image File Wrapper lists it as Abandoned (May 22, 2009) due to the examiner's and attorney's inability to contact the inventor. "Abstract Idea" rejections are a more recent development than this application (priority date August 31, 2006). The claims were rejected (non-final) as being anticipated by the inventor's previous patent US 6,009,432 A, which has since lapsed and will soon (2018) be in the Public Domain. – vallismortis Aug 27 '15 at 12:55

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.