15. (Shea's Law) The ability to improve
a design occurs primarily at the
interfaces. This is also the prime
location for screwing it up.
This is the problem with the information hiding approach of ADT, OO and even APIs: makes it easy to change the module internals, but hard to change the module interfaces.
But, TBF, the real problem is dependencies.