Good question! I think the answer depends on why people don't want to improve their skills. Possible answers are: - They think they are too busy to learn something new or they think the new way of doing things (like writing all those tests) will take them longer and they don't have time for that. Then the obvious answer would be: give them more time. Learning something or trying something like TDD when you've always done things differently *will* take more time the first couple of times. If your programmers don't have that time, you can't blame them for not trying. - They have a different perception of their own skills, i.e. they think they're very good programmers producing high-quality code. This is difficult psychological terrain, because shattering that belief can be very demotivating. Maybe some kind of informal competition can help (who produces the fewest defects/feature? the shortest code? the fewest WTF's/minute in a code review?). - There might be an actual motivation problem (i.e. they just want to "do their time and get left alone" until closing time). Luckily, this is too general/not programming-related, because I really don't have an answer for that. - They're beginners and they don't know better. In that case, training, code reviews might help, or a "book club" where a team member has to discuss a new technical book every month. - They've seen silver bullets before, (and were bitterly disappointed) and they think whatever you're trying to sell them is just another new buzzword that sounds good in theory and is little use in practice. In that case, demonstrating the advantages during code reviews and pair programming sessions might work. Try not to be a total know-it-all when you do that. The best solution really depends on the root problem: For example, formal coding guidelines, metrics and reviews can work for beginners, but people in the "wrong perception of their own skills"-crowd might struggle against them or play the metrics because they see them as counterproductive bureaucratic obstacles to getting their work done.