I think dropping the default length of software patents to 5 years would be a really good first start. As a concession, I would suggest even slightly lowering the barrier to entry for getting such a patent, and then retaining a tier at 20 years with a MUCH higher threshold for inventiveness. There would still be bad software patents, but I think this would greatly limit the damage from them. The incentive for trolls would be enormously reduced if they can only extort license fees for a few years, while the lower barrier to entry would make it much easier for small entrepreneurs to actually get patents without going through 20 rounds with the patent office.
There needs to be a recognition that in software entire segments are born and die within 20 years (even within 10 years). 20 years protection on a simple idea is way too long, even if it is truly novel. This is not like drugs where it may take 10 years of trials before you can even get it on the market.
Algorithms live much longer than 20 years and often require more than 5 years to bring to market. As a practical matter it takes about a decade for a new computer science concept to be fully integrated into software practice.
I've been involved in quite a bit of hardcore algorithm R&D. In no case where material advancements were made was it possible to really bring it to market in five years from inception. Computer science has the same inertia for how things are done as any other industry. Altering the way things are done and getting uptake requires a surprising amount of time no matter how good the advancement. Which roughly matches most other patentable subject matters.
I'm not saying algorithm patents need to be 20 years but most software engineers have no idea how long it actually takes to commercialize material algorithm advancements. It looks a lot more like industrial patents than most programmers seem to assume. And many algorithm patents have millions of dollars in R&D invested in them; I have been involved in several such examples.
There needs to be a recognition that in software entire segments are born and die within 20 years (even within 10 years). 20 years protection on a simple idea is way too long, even if it is truly novel. This is not like drugs where it may take 10 years of trials before you can even get it on the market.