Or we could try to fix it
Yes, patents are necessary.
However software patents are provably unnecessary and almost certainly damaging.
Mathematics is not patentable as it cannot be invented, only discovered.
Algorithms are mathematics.
Software is algorithms.
Software (and the source for it) should only be protected by copyright, because it's a specific expression of ideas.
Expression, not invention.
On top of that, many patents are being granted that are not only extremely obvious, but are massive land grabs by making extremely wide claims - in some cases, not even merely obvious, but the only apparent way to do a particular task.
Otherwise we might as well patent "Reality TV" - it makes just as much sense, and might result in less of it...