Much as I like to believe that some people's behavior can be turned around when gently shown the errors of their ways, there are indeed some people who you should never,
never let near a project that you're responsible for.
Before writing someone off, though, it's wise to check a few things out:
- Did this person come out of an environment that rewarded wacky code? (Any "reward" here is usually some peer-level cred thing.)
- Is this person bored? Bored people can wreak as much havoc as incompetent people, but they tend to be better at getting the havoc un-wreaked.
- Is this person working outside of their area of competence? (This never, every happens to anyone here. Right? :)
- Does this person have something going on in their outside life that's affecting their behavior on the project? They may think they're keeping a lid on things. (I've been here a few times.)
There's probably hope for anyone who falls into one of these categories. Often the mere fact of pointing out the consequences of their behavior is enough to either turn them around or have them send themselves on the way.
Then there are cretins -- people who leave their Perl golf practice in the code base, or worse. One strategy I've found for cretins is to wait until a headhunter calls, and then refer the cretin to the headhunter.