A time-honored principle: You Aren’t Going to Need It. It basically says to only build things when you really need them. Too often engineers over-design, adding things to the code (or even the product) on the theory that eventually they will need them. And more often than not, You Aren’t Going to Need It.
I just removed the last vestiges of one of these ill-considered appendages. I had to touch 24 files to get rid of the empty maybe-we’ll-need-it-someday interface, all the places we handed one around, all the places we provided NULL for the argument, and all the places where we ignored the argument passed in.