In the hiring process this is easy, you simply don't hire them. However, at most companies I have worked at there are usually a few programmers who have been employed there for long enough that the skill-set they were originally hired for has become irrelevant. At the same time they have not bothered to stay current with newer technologies. They usually have enough business knowledge that they provide some value to the company, but from a technical perspective they are a slowly increasing liability. As an example, I work with a developer who is 10 years my senior, but still doesn't understand how to write concurrent code and cannot be trusted to use a revision control system without causing a mess that somebody else will have to clean up. On top of that he is really resistant to the idea of code reviews, which I think is due to him disliking people he considers junior to him making suggestion about how to improve his code.
So how do my fellow Slashdotters handle situations like this? How do you help somebody like this to improve their skill-sets? And most importantly, how do you do so without stepping on anybody's feelings?"