For instance, when you tell people that you went to a Burger King and it took them 30 minutes to serve you a cup of coffee, the conventional answer is "it's hard to find good help these days."
That's a loser attitude on the part of management. Management hires employees, fires employees, trains employees, supervises employees, etc. If management does not take responsibility for your experience as a customer it is definitely the fault of management that you have a bad experience.
The problem has many facets but one of them is that few people are cut out to manage other people and our illusions about "meritocracy" contribute to an American culture that creates excellent foot soldiers but mediocre to terrible officers.
Was your hard working server set up for failure by someone making 4 times her wage? A good manager can take a terrible team and make them a great team.
Great leadership is humility and service to those being led. In America the ego worship and adoration for the Type A nutjob stands in the way.
Management loves how fast things are delivered, and boyscout loves the pats on the head. The rest of us hate the countdown until the house of cards comes tumbling down.
I saw a great tweet some time ago that defined a 10xer as an engineer who accumulates technical debt so fast, it takes 10 engineers to fix their mess. That about sums it up, doesn't it?
You trust teams, not individuals. The smallest possible team (1) to give some responsibility to is three people for this reason. Someone can quit or take a leave of absence and you still have technical accountability, code reviews, meaningful discussions, etc.
The fact that management made a mistake here is understandable. Management needs room to make mistakes, too. The fact that the developer was blamed and fired but the management wasn't held to a similar standard of accountability is the problem.
The code is the product. The management owns the code just as much as that developer did. So does everyone up the chain and anyone in parallel organizations (the business experts, the people that make the budgets, the QA department, etc.).
It's likely, at least implicitly, that the org structure sees some people owning 'the product' and other people owning 'the revenue' and other people owning 'the budget' and the developers owning 'the code'. As if we can separate those things.
If you work for a car manufacturer, everyone needs to know about cars, care about cars, drive cars, learn about cars, and expect good cars to be produced for a nice profit. I think shops that sell software, whether shrinkwrapped or through services, need to have the same attitude about software. If you are in the business of software, you are in the business of code, even if you can't write any yourself.
1) Team loosely defined here. It could be three people from different parts of the company, as long as they all understand the aspects of the system well enough to have a meaningful discussions about it.
So management also was bad at their jobs. They probably didn't get canned, though they deserved it as much as the King of Shipping.
But, congratulations, you know the "What's Bad About Working Here". Maybe there's a way to train management what their implicit job responsibilities are. I've never seen it happen in the wild, but maybe it's possible.