Crawl, Walk, Run, ...

A progression of thoughts on efficiency, effectiveness, efficacy, tools, toolboxes, professional development, mastery of one's craft, and what 10x really means

One phrase that comes up a lot at my current place of employment is "crawl, walk, run." While I believe it originated to describe a project management methodology, in our case it's usually being used to describe the learning curve involved with a given technology, where, as you gain experience, your speed (efficiency) increases.

While the core concept is sound, I'm going to push the metaphor a little further, since there's an important distinction to be made.

It's not really:
  • Crawl
  • Walk
  • Run
It's more like:
  • Crawl
  • Walk
  • Run
  • Bike
  • Drive
  • Fly
  • Rocket
  • Teleport

This distinction is important for three reasons:

  1. It makes the relative speed of "run" pretty insignificant compared to the others, as opposed to "run" seeming like the fastest speed possible
  2. Everything beyond "run" is making use of something other than manpower – a new, more advanced tool for going faster
  3. Until (unless) you are actually able to teleport – that is, travel extreme distances instantaneously – there is always something faster to strive towards, and each step requires an ever-increasing level of expertise

Let's dig into each of these a little deeper.

Efficiency, Effectiveness, Efficacy

One detail that's important about the various vehicles is the extreme variation in order of magnitude. Confining one's concept simply to "crawl, walk, run" results in a range of speed from 1 to 10 miles per hour. And that 10x improvement is great, but it pales in comparison to the bigger picture. Driving is another 10x faster than running, flying 10x faster than driving. It's not a linear progression; it's exponential!

The increased speed that using vehicles beyond ones own person-power also allows you to travel distances (and therefore go places) that would be much less feasible (if not completely unimaginable) on foot. As a former ultramarathoner, I know my own physical limit is around 50 miles, but I also know that some people can easily ride 100 miles on a bike, that drivers travel hundreds of miles a day, and pilots fly thousands.

Taking technical infrastructure as an example, and again with orders of magnitude, there's a huge distance to go from a legacy physical datacenter mindset to the level of Netflix – who have gotten so good at this that they created Chaos Monkey, designed to randomly destroy resources in order to confirm that their systems can recover appropriately – and obviously, there are many intermediate steps required to get here – virtualization, automated provisioning, scalable cloud resources, monitoiring + self-healing, etc. – but it really comes down to one thing:

Tools and toolboxes

I'll use Docker and application containers as an example of how the use of other tools/vehicles is necessary to help increase velocity. While you can use Docker alone to deploy and manage application containers, in order to really start moving with it (past the point of "run") you need to bring in other tools. There are now dozens of orchestration and management tools that allow you more efficiently manage images and containers and machines and clusters that you just can't do with Docker alone.

Docker even calls this out specifically with its new-ish "Docker Toolbox" – they explicitly recognize (and always have, to an extent) that Docker itself is just one piece of the puzzle. You need a full toolbox to get the job done right, and that requires learning how to use multiple different tools properly in conjunction with each other. Which brings me to:

Building one's own toolbox

A lot of what the final point revolves around is related to professional development, and mastery of one's craft (see Daniel Pink's "Drive"). For myself, that means software development. But "software development" is just the root element of a near-infinite tree of topics that comprise what it means to be a developer, and just as importantly for me, a craftsman.

What's more, each child node in the tree has its own crawl/walk/run/+ progression and its own sub-tree of sub-topics to master. One must choose which skills and skill trees to hone, and where "good enough" ("fast enough") is for each area.

It's very much like an RPG, where everyone must pick and choose their specialties as they level up.

Unfortunately, unlike an RPG, we only get one play-through.

Choose wisely, my friends.

Epilogue

"Wow, Steve – that was kind of a downer way to end what was otherwise a ridiculously inspiring blog post..."

I know, right?

How about something like this instead:

As you and your team level up your various skills, your speed increases, allowing you to get from point A to point B much quicker than before. This, in turn, frees up more of your time to not just do more important work, but continue to learn and improve new skills.

It's a perpetual cycle of kaizen, with exponentially compounding interest.

And that's where the real 10x comes from.