Getting software patents takes a lot of work, but it’s not primarily engineering effort. The complexity of software and low standards for patent eligibility mean that software engineers produce potentially patentable ideas all the time. But most engineers don’t think of these relatively trivial ideas as “inventions” worthy of a patent. What’s needed to get tens of thousands of patents is a re-education campaign to train engineers to write down every trivial idea that pops into their heads, and a large and disciplined legal bureaucracy to turn all those ideas into patent applications.
Creating such a bureaucracy has a high opportunity cost for small, rapidly growing companies. Most obviously, it requires spending scarce capital on patent lawyers. But it also means pulling engineers away from doing useful work to help lawyers translate their “inventions” into legal jargon. And that, in turn requires a shift in corporate culture. Startups are innovative precisely because they avoid getting bogged down in paperwork. Convincing engineers to pay more attention to patent applications necessarily means that they spend less time doing useful work, and that can be fatal to a young startup.
The opportunity costs to getting patents is much lower for mature software companies like Microsoft or IBM. They tend to have more money and engineers than they know what to do with. And their software development processes are already slow and bureaucratic. So it’s much easier to add a “fill out patent applications” step to the official software development process, and the negative effect on engineers’ productivity is much smaller.