Re the part I bolded above, actually I don't think they always do. I work for an outfit that's big enough to bring in pretty much any level of person we need when things are broken. I've seen a couple scenarios in the past few years that are a little spooky. One is that company A buys company B, who has a great product. There's much rejoicing at company B, and many of the senior people who know how everything works just leave. So fast forward a couple of years and there truly aren't people around that understand the core tech. Or a variant of that, where company B's stuff was ALREADY really old, using completely undocumented protocols, and company A either doesn't understand the problem or care...but they try to freeze it in time. The next one is that a company is big enough to develop tech quickly and with different teams, where they just understand the communications between the two sides of the tech well enough to get it lit up. When we press for people that understand the detailed tech, it isn't always functioning as documented...because they had to make tweaks to get it out the door.
Or long story short, a lot of IT in this country is built on bailing wire and duct tape, more or less, from what I see. Maybe that's always been true.
Couple that with every 20 something programmer, irrespective of generation, that's absolutely certain that they have a much better plan than any preceding generation and they're going to fix it, and it's a miracle anything works at all.