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.
It's not thankless if you have solid engineers and engineering managers. And if you don't have those things (at least somewhat), they're liable to make a complete mess of things regardless of how good your high-level design is. Good macro engineering vision can't be realized without good micro engineering.
Actually, it's also the job of lead or senior engineers who have to teach their experienced and educated teammates how to read and write a state diagram and how to use it in order to show them why the code/service in question is unreachable from the current state -- and should remain so.
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.