Deliberate Learning vs Deliberate Practice

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.