The world is changing, and I believe that, if I want to stay employed as a programmer, I'm going to have to change with it.
Design should be easy in the sense that every step should be obviously and clearly identifiable. Simplify elements to make change simple so you can manage the technical risk.