|No such thing as a small change|
It reminds me some reoccuring negative experience nonetheless, not with the material but with the implemenation.
One, people like to toy with "best practices" if it's someone else who are going to practise it. That is, there's often lack of walk-the-talk leadership.
Two, fad diet syndrome. One month, this is CMM. Another, this is TQM. And later, it's UML. Nothing get learnt, nothing get done.
Three, if a skill (a small unit of a larger set or the whole thing) need more than, say, three pages to explain to an overwork programmer, nothing will be learned.
In order for any practices to be learnt and practised, it's pretty much mandatory to break down the whole material into smaller pieces as self-contained as possible, introduce only one small piece at a time (or risk confusion), integrate it the learning process into the on-going projects so that someone can apply what he's just learnt to his work as soon as possible, not to a situation that may or may not happen.
Everyone will hestitate to spend the whole night studying something that doesn't help him meet the deadline due yesterday.