Everyone uses software and, to a large extent, most companies have a stake in creating unique custom software to meet their needs. This applies to enterprises which run mainframe-class computers with an army of programmers, to website programmers for small companies, as well as app developers. There is contestability as to whether the resulting program or app could be patented or not. The debate is ongoing in different countries and in the courts.
There are a lot of patent trolls who have made money without putting in the work to create a program. They buy the rights to software from companies that have gone or are going bankrupt. They then go to court and assert that bigger companies are using software that infringes on their patent rights.
What is at the heart of this issue is the concept of software patents. In most countries in the world, especially in European ones, software cannot be patented per se. Programs for computers are not inherently patentable. In 2015, the Unified Patent Court was established and the body sorts out which applications for patents are to be allowed. The contention is that an invention that is useful for business, or gives an edge to the developing company may be patentable if it solves a technical problem.
Some countries within Europe have their own interpretation of their law. Germany flat out opposes software patents. The United Kingdom follows the line from the European Patent Convention that software may be patented if it also solves a technical problem. By this definition, business and productivity software are not patentable, however, a program which innovates an industrial process, can be patented.
The United States does not have that distinction. Instead, the courts decide on the patentability and patent ownership after it has been brought to the court. The main criteria for judging is whether or not the innovation being presented within the software presents a novel approach which is unique and cannot be easily replicated by other programmers.
This has led to patent trolls going after regular companies and especially startups, and extorting money from these developers; otherwise they would end up in court. Small companies and developers are forced to pay up the nominal fees instead of fighting in court, because a court case would take away time and resources, which they do not have.
In the past few years, there have been efforts to make the courts realise that software should not be patented. There are campaigns, which aim to bring this up as a matter of legislation. However, there are still some cases where patents for software are being awarded for some specific cases. In these isolated cases, appeals have awarded the patent owner some form of victory as the cases are sent back to lower courts for re-trial.
There are many reasons for the re-trial, principally, that the solution presented by the software is not something which is generic. The programs concerned were meant to solve specific problems, and had unique cases and methods, besides involving the development of algorithms that are beyond the creative ability of other companies.