Designs that anticipate specific future requirements almost always end badly. Practical design does not anticipate what will happen to your application; it merely accepts that something will and that, in the present, you cannot know what. It doesn’t guess the future; it preserves your options for accommodating the future.
I personally have a bad habit of trying to anticipate what the future change is rather than just leaving open for any change. This almost never works out for me.





