Protecting Software-Implemented Inventions

With the incredible advances in computing technology over the last 20 years has come a vast array of inventions that are implemented in some form of software.  Smartphone apps, TV apps, manufacturing processes, facial recognition technology, artificial intelligence program, the list of products and processes that rely on some form of software is endless.  Some forms of software can be difficult to patent because they have been held not to constitute “statutory subject matter,” so overcoming that hurdle is often a challenge with software.

However, there is another problem that is less apparent during the patenting process and more apparent during the patent enforcement process:  How will you prove that someone is infringing your patent?  If your invention is implemented in software, will you be able to tell from a competitor’s product or service that your patent is being infringed?  Can you tell from merely using the product or service, or do you need the “source code” used to create the software in order to determine infringement.

Obtaining source code in a patent infringement lawsuit is no easy task.  At a minimum, very restrictive “protective orders” are used which may require you to hire experts to travel to a location where the code is stored on a dedicated computer, and the amount of code and the manner in which copies of it can be made is often very limited.  If the source code is in the hands of a third party, and not the infringer you are suing, the process becomes even more cumbersome, and if that third party is located outside of the United States, you may not be able to get it at all.  Thus, even if the source code is obtainable in patent infringement proceedings, the processes required to obtain and review will likely add significant expense to the case.     

What this means is that it is important to try to develop patent claims that can be evaluated without resorting to source code.  Look at how your software operates from a user perspective, and try to develop claims using externally verifiable inputs and outputs.  You can still include claims that require access to source code, but at least go through the exercise of trying to draft some claims that require only user verifiable information.

In some cases, the purpose of a piece of software is to perform a known function more efficiently.  In those cases, it may not be possible to draft novel claims that are based solely on inputs and outputs to the software.  However, in that situation, you may want to consider relying on trade secret protection for the invention instead of patent protection because if you try to patent it, you may end up disclosing the invention without having a practical way to enforce the patent.