I still think we ought to go back and change the design we were talking about two months ago. The one we picked isn't going to work. It's rare to see a major problem caused by lack of skill. It's nearly always attitude, and attitudes are hard to change. If the problem is caused by lack of ability, that is even harder to change.
Some managers say that they have never regretted firing anyone.
They've only regretted not doing it sooner. You might worry about losing ground if you replace a team member, but on almost any size project you'll more than make up for the lost ground by eliminating a person who's working against the rest of the team. Prevention One of the best means of detecting problem programmers is by holding early design and code reviews. If this early detection of problem employees fails, reviews provide a secondary benefit of lessening the dependence on any single developer. One problem typically associated with problem programmers is that no one else understands their designs or code.