From Tim O’Reilly:
When someone isn’t right for the job, it’s easy to shrink from the confrontation of telling them so, or to accept 60% or 70% of what you wanted because you think you can’t afford the time and trouble to find a replacement. You aren’t doing anyone any favors. An employee who is not performing at 100% is as aware as you are of that fact, and most likely isn’t happy about it. Having the courage to ask them to move on is an essential management skill. (It doesn’t even have to be firing; it can be coaching them to make the decision on their own.)
Looking back, I wish we’d worked harder early on to build an organization in which human potential isn’t just expected and taken for granted, but is also nurtured — if necessary, with tough love. So many times I knew that someone was doing less than we had a right to expect, but I’d let their manager protect them. I didn’t have the guts to keep working the issue till we understood what to do and took appropriate action. We ended up building a culture where managers too often compensated for the failings of employees by working around them, either working harder themselves, hiring someone else to fill in the gaps, or just letting the organization be less effective.