A fascinating Cornell University study a few years back found that people who are incompetent tend to dramatically overestimate their competence, and people who truly are quite competent tend to underestimate their performance.
This makes a certain sense: After all, if you're incompetent, you're inherently more likely not to be able to competently self-assess (or assess the people with whom you're comparing yourself). As the researchers write, "Not only do they reach erroneous conclusions and make unfortunate choices, but their incompetence robs them of the ability to realize it."
And if you're competent, you tend to assume others are performing at a level similar to yours (since you can't imagine why they wouldn't be since you're often matter-of-fact about the way you operate). Plus, part of competence is being aware of your shortcomings, which can make it hard to see clearly that your work and work habits are actually pretty fantastic.
This study has interesting implications for managers. For one, it reinforces the idea that you must be explicit with employees who aren't meeting your expectations--particularly about the severity of the problem and what the possible consequences are. All too often, managers assume that employees must know when they are in danger of being fired, given all the warnings and serious talks being directed their way, and so managers don't spell it out ... and then the employees are shocked when they get fired. The managers are baffled by this surprise, since the employees should have seen it coming.
But in reality, a low-performing employee may not have understood that the negative feedback he or she had been receiving was a big deal, especially if the person had heard negative feedback from previous bosses as well but hadn't been fired and thus didn't process the recent serious talks as a danger sign. So managers should commit to saying the words, "I must warn you that your job is in jeopardy if you don't improve." Don't assume an employee knows. If a person is as incompetent as you worry he or she could be, there's a good chance the person has no idea.
Additionally, managers should think about the flip side of this: Do your best employees know how much you value them? Often, great employees fret and worry about whether their managers are happy with their work, because their managers haven't explicitly told them how well they're doing. There's huge benefit to making sure high performers know that you see them as high performers--it tends to raise their morale, get them more invested in your team, make them generally happier at work, and generate more of the behavior that you want to see.