In my opinion, the key characteristic of software that makes the current patent system not suitable is the vast amount of interdependence inherent in this type of technology. Code is not used side by side like an infantry of little computer processes working in parallel to make computers or phones go. It is rather organised and packaged in a huge network of building blocks, a pyramid of hundreds of thousands of libraries, APIs or functions heavily inter-dependent on each other. What’s more, the building blocks are usually not all written by the same people or organisations and a consistent interface is critical for enabling compatibility (often between millions of parts made by thousands of developers).
This hierarchical and networked architecture is inevitable and it is the best way to organize such complex information, however the stability it requires at the bottom of the pyramid of code means that some building blocks cannot be changed once the pyramid is built. Someone claiming ownership of the shape of a bottom-center block after the pyramid is built, someone having the power to force a bottom block to be removed and replaced with a different shaped one, no matter how simple and obvious this bloc is, does not have power over just this block but over the whole structure above it and all the components that depend on it. This means patent holders have a disproportionately large amount of power when they target such a bloc. From a possibly trivial piece at the bottom, they can control a vastly more sophisticated structure built on top which they had no part in conceiving. They know that changing it would require tearing down, redesigning and replacing often tons of dependent work and probably break compatibility for huge amounts of users of these projects.
This hierarchical and networked architecture is inevitable and it is the best way to organize such complex information, however the stability it requires at the bottom of the pyramid of code means that some building blocks cannot be changed once the pyramid is built. Someone claiming ownership of the shape of a bottom-center block after the pyramid is built, someone having the power to force a bottom block to be removed and replaced with a different shaped one, no matter how simple and obvious this bloc is, does not have power over just this block but over the whole structure above it and all the components that depend on it. This means patent holders have a disproportionately large amount of power when they target such a bloc. From a possibly trivial piece at the bottom, they can control a vastly more sophisticated structure built on top which they had no part in conceiving. They know that changing it would require tearing down, redesigning and replacing often tons of dependent work and probably break compatibility for huge amounts of users of these projects.