Knives
I like knives. I collect pocket knives and Swiss Army knives from Victorinox, and I have been doing that since I was a kid.
But I also like larger knives. I have a really neat hunting knife that I carried with me when I volunteered with search and rescue, as well as a cheap but great machete that I used to clear my way when walking in the woods.
In reality, though, the knives I use every day, multiple times a day, are kitchen knives. Despite my love for knives, for some reason I bought the cheapest kitchen knives I could find for a long time, like the low-budget ones from Walmart.
Then one day, I was browsing at Costco and saw a knife set from Tramontina. If you are not familiar with the brand, it is from Brazil, and they have a wide range of knives, utensils, barbecue accessories, and much more. It’s not a sophisticated brand, but they do have a few expensive lines. Even the low-cost ones, though, are so much better than your average knife.
So I got that set and became a kitchen knife snob almost immediately. I threw most of the ones I had in the garbage and upgraded a few others, like the bread knife that wasn’t included in the set.
Then I bought one of those sharpening stones and started taking much better care of my kitchen knives.
I also learned about the different types of kitchen knives and their uses. The idea of having the right tool for the job really applies here. While I am the cook most of the time at home, my wife takes charge of meals once in a while. And so many times, I stop by the kitchen and find her using the wrong knife for the job!
A chef’s knife is the workhorse and can get almost everything done. But don’t try to slice a crusty loaf of bread with it! And even when extremely sharp, it may not be the best tool for slicing tomatoes or finely slicing vegetables. That’s what other knives are for.
A smaller paring knife is useful for vegetables, fruit, and small items like shrimp, for example. If you want to slice or chop vegetables quickly and cleanly, a santoku can be a great choice.
The knife you use for your meal also matters. Yeah, the regular dinner knife is great in 90% of cases, but don’t you dare bring me a steak dinner with one of those. I need a steak knife!
And I am still trying to convince my wife that we also need a butter knife. Yes, you can scoop butter with a regular dinner knife, but it is not the same thing!
When I leave the house, I always carry a pocket knife. Most are very similar, but a few have an extra feature that makes them more useful in certain scenarios. So if I know I am going to a specific place where one of them would fit better, I pick that one up.
The same goes when I am going for a walk in the woods. Am I going to walk along a trail and only need a knife in case something happens and I need to improvise a shelter or cut a piece of rope? Or am I going into thick bush and may need to cut my way through?
For the next meal, is it going to be Italian bread with cheese and butter or a nice steak? The knives for both preparation and consumption are different.
That’s probably why I have become a little obsessive about choosing the right knife for the job. It is not that one knife is inherently better than another. A chef’s knife is a fantastic tool, but that doesn’t make it the right tool for every task. A bread knife is not a better chef’s knife; it is simply better at one particular job.
The same principle applies surprisingly well to operational and SRE work.
We have an enormous number of tools available to us. We can write a shell script, Python program, or Go application. We can use Ansible, Terraform, a CI/CD pipeline, a workflow engine, or one of the countless automation platforms available today. We can build something ourselves, use an existing tool, or decide the problem doesn’t need automation at all.
And just like with kitchen knives, the question should not be, “Which tool is the best?”
The better question is, “Which tool is the right one for this job?”
A shell script might be the perfect tool for a small, local task that needs to glue a few commands together. Python might be a better choice when the logic becomes more complex or we need to interact with APIs. Go might make more sense when we are building something that needs to be compiled, distributed, and maintained as a proper application. Terraform is excellent for managing infrastructure as code, but that doesn’t mean Terraform should be used for every operational task that happens to touch infrastructure.
The mistake is not choosing the “wrong” technology in some absolute sense. The mistake is reaching for the tool we happen to be most comfortable with without considering what the job actually requires.
After all, nobody looks at a crusty loaf of bread and thinks, “My chef’s knife is my best knife, so I should use that.”
Well, nobody who has learned how to use kitchen knives properly does.