Code is expensive to change, but design is cheaper to change, and requirements are even cheaper to change.

—Daniel T. Barry