Some software ideas suffer from a unique problem: detectability. When an embodiment of an idea is expressed in a language that is compiled and distributed as executable code, how can that idea be detected? If it cannot be detected, there is no way to know if someone infringes.
There are many ways patents may be used. In some cases, patents merely buttress a resume, an advertising brochure, or a marketing message. These patents sometimes can also deter other competitors from entering the market and act as a deterrent effect.
Enforceable patents that protect the foundational technologies of a company should be detectable. In other words, the patent owner should be able to detect when a competitor is unlawfully copying his idea and take measures to enforce the patent.
Some of the most creative and ingenious ideas fall into the first category. For example, a very clever and improved sorting algorithm used deep in the bowels of a software application may be tremendously novel, useful, and non-obvious, but it makes little business sense to patent that technology. The sorting algorithm is best protected as a trade secret, even if the executable code is widely distributed under a license. A competitor may use a completely different sort algorithm to achieve the same result, even if the competitor’s algorithm is much more cumbersome.
Patents of the second category typically focus on the overall function of a software application, relate to interfaces used by the application, or define data structures. In each case, clear and immediate detection of infringement is possible. Patents covering this second category are much better suited to licensing or infringement enforcement.
For the Patent Office, it may be enough that an invention is novel, useful, and non-obvious, but for the business owner, detectability is a very important factor that should be considered before investing in patent protection.