• Complexity – Software products are more complex than perhaps any human constructs are. The computers on which software runs are complex, but the software itself has, for example, orders-of-magnitude more states than the computers have.
• Conformity – There are no “physical laws” in software to conform to. Instead there are different interfaces and structures, which the software has to unify.
• Changeability – It is easy to change software, but the consequences of a change is often overlooked.