I began my career as a mechanical engineer. Unfortunately I found mechanical engineering relentlessly frustrating. My problem was that mechanical engineering is all about limits. The motor will only spin so fast before it starts to smoke. The support can take only so much weight before it buckles. The tank will hold only so much liquid before it overflows. Worse, the motor and the support and the tank all start wearing out the second you build them.
So early on I left mechanical engineering for computer programming. Here was a field where the limits seemed to be constantly receding as the CPUs got faster, the memory larger and the disk drives ever more expansive.
And it’s because the physical limits of computing have been receding for decades that it’s easy for a software engineer to see where the ultimate limit lies. Ask a mechanical engineer what is holding us back from building the next great thing and you will probably hear about smoking motors or buckling supports. Ask a software engineer the same question and you are likely to get a different answer:
It’s us. We are the problem.
Sure, our CPUs could be faster and we could always use more memory and bigger disks, but that’s not where the real limit lurks. When your raw material is data, when your tools are algorithms and programming languages and when your desired output is, more or less, wisdom, then the gating factor is us. We are limited by how smart we are. We have met the enemy and it’s our own face we see staring back.
The Value of Explaining
There is a way to make things better. You know some things that I don’t know. I probably know some things that you don’t know. I would be better off knowing some of the things you know and you might benefit from learning from me. And we would both be better off if we knew what that other person over there knows. We need to get better at explaining. If we were all better at explaining then our companies would be more efficient, more profitable, and probably happier.
I really do mean all of us: If you are thinking, Explaining’s not my job, I’ll just leave it to the people who write blogs or books and do conference talks, well, no. While the more formal explaining that goes on in print and at conferences is important, for immediacy and sheer volume it’s hard to beat the everyday explaining that goes on in individual offices or over Slack or while hanging out at lunch. Perhaps it’s a new employee’s first day and they ask What’s this code all about? Or your customer wants to know how you can do it better? Or your manager asks Why are things taking so long?
And if you are thinking, Hey I just build it, let other people explain it, well no again. To a first approximation, if you can’t explain it you shouldn’t bother building it. If you can’t explain it then the thing you just built is a black box. It might work for a while, but eventually something will need adjusting or fixing. And then if you can’t — or haven’t — explained it, what you built will be a broken box. And then a discarded box. The bottom line is that if you are trying to create something that will last then you had better start explaining.
There is also no better way to learn something new than getting ready to explain it to someone else. Learning a new subject so that you can pass it on pushes you to see through the forest of details to the fundamentals that you can put into words. It pushes you to find the answers to all of the questions you can think of for the simple reason that someone might ask you.
Learn the Craft of Explaining
Sadly, all of this goodness does not come for free. Explaining is hard. The good news is that while explaining is hard there is no magic involved. Explaining is a craft, like writing code, cooking a decent currie or designing cars. It’s a craft full of rules of thumb and easy-to-make mistakes known to result in smashed thumbs. Behind every unreadable blog post, every impenetrable book and every unwatchable screencast is a well meaning person who simply hasn’t learned the craft of explaining. Producing clear, informative, even fun explanations does not take specially mutated genes or a degree in education. Explaining is a indeed a craft and it’s a craft you can learn.
And it is worth learning. Explaining a topic well is one of the few ways that you make the world a better place. Our technology has outrun our brains. We all need to be smarter. And the only way we can get starter, the only way we can start pushing the ball forward is to work together to make each other smarter. In other words, to start explaining.
So in the weeks to come I’m going to post a series of articles on explaining. Together we’ll look at how to plan an explanation. We’ll also explore how you can make your explanations come alive and at how you can pick examples that will illustrate your ideas instead of obscuring them. We’ll see how you how you can put a human face on your explanations, at how you can season all those dry facts with some humor and enthusiasm.
Stay tuned. And start explaining.
— Russ