I would argue that patent term should be roughly proportional to the time it takes to build something useful with it. Now, I know this is a giant black hole defined by "useful" but consider this: it takes much less resources (time and money) to go from patent to product in software than in chemistry or airplane engine.
Having a software patent term of 5 years is enough to have a leading product in competition even with software giants like IBM(start-ups are a good evidence of that). While the normal 20 year term for non-software patent, which certainly requires more time and money to have an upper hand vs big companies in already similar markets, should be left as it is.
Perhaps there are other industries where, for the grater good of human kind, they can apply some limit function on patent term, say Pharmaceutics.