What this Daniel Markham has done is describe the job of software architects. Software architects are supposed to keep the business from logically painting themselves into a corner. They look beyond the current project and the current requirements to ensure a system is being built that can be used to easily solve future business needs.
It's a thankless job because you're saving people's butts years from now. Fortunately, I've been at this long enough and have saved people's butts enough times they think I'm prescient. Nope. I just think things through. All the way through. Beyond what you're asking right here and now.