Done well, software systems can serve an organization for many decades over multiple technological generations. If the attributes of flexible software systems are recognized, and if the guidelines and techniques are understood and practiced, then fewer inflexible software systems will be created. The schedule and cost trade-offs that today often result in seriously compromised design quality can be shifted in favor of preserving designs that will pay for themselves, if not quickly, then repeatedly, by extending the cost-effective life of the system.