I've asked this before in other places, and I'm now turning to you guys to see what sort of advice you can offer.
Some background: I'm a project manager at an offshore company. I’m in no way the best that’s out there. Most important (or so I believe) is that I am just as good as my team is. I've been at it for the last 3 years. I don't get to choose the people I work with (can't hire or fire people). We are using all sorts of methodologies (agile, scrum, waterfall, RUP, you-name-it). We are holding both weekly and milestone meetings in which we are trying to learn what went wrong/right. So,this is not a question of motivation (my employer is paying them more than fair, they get full employment benefits, etc ), nor one of simply teaching them new skills. This is more about addressing a problem within the mind-set of the average developer.
I've worked with a lot of people both good and bad during the years. There were a few of them exceptional, but most of them were less-than average. Most of the times I'm usually confronted with guys that are getting stuck way to often, guys that are skipping solutions as they are not careful enough to see past their own coding mistakes and guys that are simply drifting away from the tasks to wherever their day-dream takes them. I was wondering if (and how) can they be determined to properly pay attention to their work, to be able to determine solutions and to unstuck themselves without me having to check on their work 24/7. I would really love to worry myself that I'm intervening in their work too much, that I'm always giving them the solution without letting them think. But at this point, I can't see this happening
Some ways I've been suggested to try so far are:
Make them read “Addison Wesley – Pragmatic Programmer” and "Clean Code: A Handbook of Agile Software Craftsmanship" – hold periodic meetings for each chapter and discuss what they have learned so far.
Hold some sort of "Quick&Great Code of the Week competition", using a new/unknown language for implementation – given that this would be a new language for everyone, this should give me/us an idea over who is missing what.
Get the rest of the management team to analyze "a great TED talk about motivation by Dan Pink" and see if we find anything that works for further motivating them.
So, I'm now wondering: is there anything else? would this approach work?
I'm also worried that even though I'll eventually set them on the right track, once the current project closes and the development team gets reassigned, they'll revert back to their old habits. How can I make the knowledge "stick" and prevent this from happening?