In today's corporate world, it can be difficult or impossible to fire people. It's important to understand that actually removing someone from the organization is a totally separate problem from managing the performance of the team.
People who don't contribute or cause problems need to be sequestered as much as possible. Don't let them bring down the rest of the team. I think "managed out" is the term that's being used now. That is a skill that a manager of any level can use to keep their team performing even when they don't have the authority to remove someone, or the process to remove someone is many months long.
> In today's corporate world, it can be difficult or impossible to fire people
Really? In the US you can fire an employee for any reason at any time (aside from a few illegal reasons: union activity, racism, etc.).
It's just not though. People above you are making decisions to not pay what generally amounts to trivial amounts of money to (in many cases I have seen) completely fuck up their products.
I have worked with enough C levels to understand that most of them just want you to manage all the problems while they collect the money and make "strategic decisions" (follow whatever fad is hot right now.)
It's why I like working with smaller companies, usually not established enough to just make middle management eat shit and ignore customers.