Agile Institute

View Original

Sharpen Your Own Knives

You’ve heard the old adage about the lumberjack who—in order to cut a tree in an hour—will take 45 minutes to sharpen the saw? It’s a great analogy, but it really needs updating. Not many of us are that familiar with the logging industry.

I like to use the metaphor of the chef who sharpens her knives before cooking.

Saw It on TV

A few years back I went through a phase where I started watching and enjoying reality cooking shows: Top Chef, Hell’s Kitchen, Beat Bobby Flay… Part of the appeal was that, on occasion, I could pick up some very good cooking tips. (E.g., we learned from Bobby Flay, himself, that if you’re going to serve raw onion on anything, rinsing the sliced onion in cold water reduces…well, um…belching guests.)

I recall, in particular, one brief scene of a chef sharpening her own cooking knives.

Before the invention of good electric knife sharpeners, there was a discipline—even a matter of pride with some chefs—of sharpening their own knives. (Or have their sous-chef do it for them once the cameras were gone, I suppose…)

I immediately went to my favorite online cooking class site (rouxbe.com) and found their knife-sharpening class! Bought the classic Japanese whetstone, and got to work.

Let’s just say that the practice of manually sharpening your own knives was…meditative: Monotonous, laborious, and a bit messy. But rewarding! That feeling when the knife cut through a piece of paper with no sawing or pushing…exquisite!

Why Do It?

Imagine you were a competing chef cutting carrots as part of a wondrous meal for your favorite sports team. In an hour. And you suddenly realize you have a fairly dull knife.

And Padma Lakshmi is watching you with that cold, calculating stare…

You have two choices:

  1. Just push through it. What could possibly go wrong? Well, with a dull knife, the carrots have more control over the trajectory of the blade than they should. So, you may end up with various odd shapes and sizes of carrots (they won’t cook evenly), and, oh! What’s this? Your blood in the bowl. You’ve cut your finger. Padma shakes her head sadly and says “This is not at all appetizing…pack your knives!”

  2. Or, you take 10-15 minutes to sharpen the knife. That’s 25% of your time! The audience is aghast! But it pays off because you can cut the carrots much faster, with more confidence that you won’t hurt yourself. The carrots all come out with uniform thickness, and thus all cook evenly, and are done at the same time.

Your favorite player on your favorite team announces that you’ve won the quick-fire challenge!

So, why do chefs sharpen their knives? Because they can get done faster, work more accurately, and create higher quality. We wouldn’t tell a chef to “just keep cooking! Go, go, go! Never mind quality or technique or safety!” …would we?

Skipping this essential practice is a false “shortcut” that leads to wasted time, effort, and money.

Essential Practices

An “essential practice” is one that the majority of your profession’s colleagues agree is a good one to know. You know how to do it; and you know why—and when—to use it. You also keep up with the advancements regarding that practice. E.g., now there are good knives designed to be sharpened by electric sharpeners, and good electric sharpeners that won’t ruin those knives. (You may have to find some other form of meditative practice…)

In my “pre-Agile” days of software development, practices like up-front design (e.g., carefully considering numerous potential variations), line-by-line code reviews, and thorough scripted testing, were the disciplines we used to provide value. They were all we knew about, and they worked well enough for the comparatively simple stuff we were building those days.

Some of the newer techniques I’m about to list would have been impossible: We couldn’t have used true Test-Driven Development (TDD) on Ada 83 code, because it took a half hour on our microVAXen just to compile a small project.

Essential “Agile” developer practices (a.k.a. skills, or capabilities) are those that are specifically tuned to an iterative and incremental approach to software development. Since the late 90s, my teams and I would not in good conscience touch a product’s code without Test-Driven Development (TDD), or perhaps now Behavior Driven Development (BDD); Continuous Integration (also very similar to “Trunk-Based Development”); and some form of Continuous Collaboration practice such as Pair Programming or Ensemble Programming (nee Mob Programming). We would also not touch the code when overly stressed or exhausted (instead allowing ourselves Buffer Time). And so on.

The selection of knives keeps changing. For example, BDD has improved upon ye olde Acceptance-Test Driven Development (ATDD). Online collaboration tools such as Zoom or Teams allow us to adapt our social practices (i.e., Sit Together) in a post-pandemic, work-from-home world.

Such change and growth in essential practices is to be expected. As long as the real value of these practices is obtained in some way, we are able to select the right knife for the task, and complete the dish, professionally and safely.

Assuming, of course, that we’re given the time to use it, and we’ve learned how to use it correctly.

If not, well… “enjoy your lumpy, crunchy, bloody carrots.”