I have come to think this idea is at the root of good architecture: design based on what you expect to change in the future. Löwy mentions David Parnas as a reference, and I (personally) find that I understand Parnas’ Designing Software for Ease of Extension and Contraction — a different paper of his — easier to grasp.
I did a basic talk over some of these ideas a couple months ago.
I keep recommending that same Parnas paper as well. It’s like the most useful few pages on software architecture ever written.