Remember that one time when your software requirements changed and you realized that you would have to make dramatic changes to your code? Remember how that's only happened to you once?
I've been working on the same codebase for eight years. During that time I've learned that requirements change, and I've slowly learned some design patterns that can help make code flexible enough to accommodate changing requirements.
I'd like to share some of those experiences and lessons with you.