I finished a book a while ago that I think really illustrates why software patents are objectionable, and what's wrong with the patent system as a whole, today.
The book is "The Last Lone Inventor" by Evan I. Schwartz. It describes the work of Philo T. Farnsworth to create television. During the time that Philo was working on television, many scientists employed by the radio industry were also working to develop usable video transmission technology, with inferior designs. Most of their work involved mechanical television cameras that used spinning wheels. Philo's invention was all electronic. It scanned, transmitted, and displayed a line at a time to create a two dimensional image. This remained the fundamental technology in displays at least until LCD and plasma screens replaced CRT.
Now, while many other patent related problems were well demonstrated by the book, the one most clearly related to software patents pertains to the intent of the patent system. Patents are not, as they are often regarded today, a recognition that an inventor owns his ideas. Ideas are not property, and have never been recognized as such. Patents are a recognition that some inventions rely on information that isn't obvious. Some inventions require the inventors to test and improve their inventions for years before they can be brought to market. Underlying the patent system is the belief that this work will not be done, that inventors will not fund years of experimentation and development, if they don't believe that they'll be able to sell that invention to recover the costs of its development. In a free market, competitors will be able to offer the same invention at a lower cost than its inventor, because the competitors did not have to invest in the development of the invention. Patents attempt to create an incentive to invent by ensuring that inventors who do invest in development are given a limited monopoly on their invention.
However, patents aren't free. It is not enough for the inventor to merely offer his invention to the market to receive patent protection on it. An inventor is also required to completely disclose how the invention works. After the patent period expires, the public must be able to continue using the invention independent of the inventor.
That is the fundamental purpose of the patent system: to benefit the public by providing it with the knowledge required to reproduce the invention. It is the public's benefit, not the inventors, that is the goal of the patent system. The inventor's benefit is simply the means to achieve that goal. The Constitution of the United States reflects this:
To promote the progress of science and useful arts, by securing for limited times to authors and inventors the exclusive right to their respective writings and discoveries
Philo's work was exactly the progress of science that the patent system was intended to promote. His invention required tremendous investment to create. His idea was sound, but a great deal of experimentation was required to create a working device. Other highly skilled scientists were not able to create a working device on their own, or created working devices of significantly lesser quality. The exact properties of the materials and components used in the camera and television set were not previously known, and were discovered through Philo T. Farnsworth's experimentation and development.
The invention of television was worthy of patent protection.
Software development isn't like the invention of television in ANY way.
Software development does involve testing cycles, but otherwise almost never involves the kind of experimentation involved in the invention of television, because the exact properties of computer operations are previously known. Computers perform a limited number of operations, exactly according to a specification, and exactly the same every time. Because the behavior of the system is known in advance, the uncertainty inherent in real world material inventions does not exist in software development.
If you give a computing task to a large number of expert programmers, you will probably get a variety of results, but you also expect a great deal of overlap in those results. Software components frequently independently implement solutions that have previously been patented. When this happens, it is evidence that the patented invention is, in fact, obvious. When this happens, it is evidence that the public did not need the description provided by the patent. The frequency with which this happens is evidence that software patents are not a benefit to the public, and should be abolished. The public has no reason to provide patents when it receives nothing of value in return.
An earlier verdict in Apple's suit against Samsung is an excellent illustration of this flaw. The suit found that Samsung infringed Apple patents that described a) a means of indicating to the user that they were scrolling past the edge of some scrollable surface by "bounce back" scrolling behavior, b) using one finger to scroll and two fingers to zoom, and c) tapping to zoom. If you asked a group of experienced developers how to indicate to a user that they had scrolled too far, snapping back to an edge would almost certainly be one of a handful of other indications. You probably would also get a haptic indication (vibration), an audible indication (beep), and several visual indications such as bouncing back, texture vibrating, edge highlighting, and using a standard background behind the scrollable surface. If you asked experienced developers to allow users to scroll and zoom, likewise, you would find several that suggesting pinch to zoom and touch to scroll. These things don't need to be discovered, they merely need to be implemented.
Granting patents on those methods prohibits competitors from using similar methods, which significantly inhibits progress in the field, contrary to the goals stated in the Constitution of the United States, and does not benefit the public by providing them with information that they would not otherwise have. Software patents should be abolished.