The best way to prepare for future work is not to design extra layers of base classes that “might be needed someday;” it’s to make current work as clear, straightforward, and simple as possible. That means not creating any more inheritance than is absolutely necessary.

Steve McConnell in Code Complete