I watched a thought provoking video from the fabulous Dan North about why we should be focused on deliberate learning over deliberate practice.
I found it thought provoking as it’s challenged beliefs, but seemingly not enough to change them. I’m now just confused.
This is how I’ve interpreted his argument
- coding katas are examples of deliberate practice
- the premise of deliberate practice being that to be skilled at something, you have to invest time in that something
- martial arts katas are a poor metaphor software development because they are optimising for giving a performance
- it takes 10,000 to become an expert at giving that performance
- in giving a performance time & time again, we need to minimise variance
- writing software is not about doing the same thing again & again
- writing software is not a performance
- so katas and dojos don’t matter
- so we shouldn’t do them
We should instead focus on deliberate learning is about maximising discovery (over minimising variance).
What’s my beef?
So my problem isn’t with deliberate learning, I get that.
What I don’t get is the move away from deliberate practice.
It feels like they’re at different levels of granularity.
I appreciate that each piece of software we develop will/should be unique, but the activities that are required to even write code in first place are constant.
Dan mentions that individual katas can be linked to create a flow of moves (the example given being that of defending a doorway from attackers to the left, right & in front of you).
An example
I’m a novice programmer (at best). I struggle with the syntax of a language, yet alone the keyboard shortcuts of the IDE. I argue that there are actions that need to be done repeatedly in order to be “good” at writing code.
I am that guy that no one wants to pair with, largely because I am painfully slow at the basics. For example, I use the dropdown menus in the IDE to refactor or extract methods because I can’t remember the keyboard shortcuts
Here’s my point (finally):
If the basics of writing code were drilled into me through katas / deliberate practice, then my deliberate learning will be a lot more effective.
I don’t do martial arts, so I’ll use an example from kayaking (surprise surprise)
Another example
(admittedly not from a development context, so may be redundant for this thought exercise)
I learned to roll my kayak so that I could rescue myself. This took hours & hours of deliberate practice & a lot of swimming after running out of breath & failing to roll back up.
Having a bombproof roll from a comparatively early age made me way more comfortable when paddling in conditions that were likely to result in me being upside down so that I could right myself rather than swim.
If was to paddle a river I hadn’t paddled before (deliberately learn) without a solid roll, I can imagine I wouldn’t learn as much because I would potentially be swimming a whole lot more (well, I’d be learning about the river bed as I was dragged over rocks I guess, but that’s not what I wanted to learn).
I’ve also seen people challenging themselves on rivers (deliberately learning) without a solid roll – they spend half their time floating half upside down, half upright with their heads in the water, really not enjoying themselves.
Wrap up
So to summarize then, I see deliberate practice as the building blocks that help enable quality deliberate learning.
As I value & respect what Dan has to say, I have the feeling that I am missing something from this talk.
Duncs