The whole show is interesting - if you enjoy listening to podcasts, this is one episode of Dot Net Rocks that I’d particularly recommend - but one real gem was when Doc talked about the Dreyfus model of skill aquisition.
According to the Dreyfus model, learning goes through five stages:
At the novice stage, rules are followed blindly, without question, and without any understanding of the context to which the rules apply. Moving through the scale, the importance of the rules diminishes as the underlying knowledge becomes second nature, with the rules followed where they make sense in context, and bypassed where they do not. At the Proficient level, a person “perceives deviations from the normal pattern”, and an Expert has an “intuitive grasp of situations based on deep, tacit understanding” (both quotes from the linked Wikipedia article).
Why does this resonate with me?
For one part, we work in an industry that sometimes seems to be obsessed with process and procedure - stuck on the idea that if we can just codify the right process, or adopt the right tool, we can reduce or eliminate project risk and always deliver on time and on budget.
While process is important (and let me be very clear that I believe good process is extraordinarily valuable), it seems to me that process obsession limits us to people that are competent at best. Why? Because those who advance higher on the Dreyfus scale, those who are Proficient or better, are exactly those who dislike being hemmed in by process, those whose productivity is hampered by process they’ve outgrown - and they’re going to move on to somewhere else, taking their skills with them.
The lesson is simple to state, but hard to achieve: Hold on to process where it delivers clear value, but never for its own sake.
Elsewhere in this episode of Dot Net Rocks, they talk about the importance of deliberate practice, with Carl relating how he was made to play scales for hours on end while studying.
Richard Campbell said:
I was reading a book on exactly this. I think it was “Talent is Overrated”. It said “Effective practice by its nature is unpleasant” (emphasis added).
Think about the programming you’ve done this week. Was it routine and easy, or were you challenged? Did you learn something new this week, did you become a better developer this week? If you didn’t, why not?