Basically I'm not anti-patent, but software patents just strike me as completely wrong. Mostly because the overwhelming majority of them are crap, either overly broad idea obvious to anyone who has thought about the problem, or ideas that have been done previously by someone who didn't think to patent it (or couldn't afford the expense of patenting).
But overall patents still have a chance of succeeding at their original goal: provide a limited monopoly in exchange for disclosing your new invention. Note that the goal here was not to encourage invention directly, but to open up the invention instead of keeping it secret. Thus we can build upon the foundations of people before us, we don't have to join guilds to learn secrets about how machine work. There is indirect encouragement of invention still, there is some hope of being able to build and create a business with the invention before the giant corporation takes the idea and makes it cheaper and bankrupting you. This can work with software patents, assuming it isn't abused like it is currently.
Problem with sofware is that too often there is nothing new about the patent, nothing is novel. Something can be an "innovation" without being worthy of a patent, after all a new version of Word is an innovation. You need people in the field to think that it is a great new invention or that it took a lot of time and effort to refine the idea, and it's irrelevant what the end users who don't know the field think about it (some hipster marvelling at slide-to-unlock). Anything over broad needs to be disallowed right off the bat, no more "method to remotely upgrade firmware on a device" unless it is a very specific and novel technique that does not forbid all possible expressions of the concept.
Similarly the time granted to patents is too long for the pace of software change, I think it may even be too long in other areas given the ability to rapidly create a new factory and supply chain and marketing channels for a new product, much faster than was imagined by the creators of patent law. Something between 5 and 10 years seems appropriate for a software patent. 5 years is very short, many startups don't even get their first product out the door in that time, and 5 years is shorter than some patent lawsuits. 10 years seems reasonable to me especially if we're also getting rid of the vast majority of software patents anyway and keeping only the really good ones.