Back Original

Using an engineering notebook

One of my core software engineering practices is writing, by hand, in a physical notebook. It's one of the most important things I do to remain productive and effective. Maybe the single most important. And it's a practice that I see very few others using!

When I polled my Mastodon followers, 25% of them said they use an engineering notebook, 40% said they don't, and 34% didn't know what one is! In two other programming communities I'm in, there were really similar results. This practice is really not very widespread, and since a lot of people aren't familiar with it, it's not only a matter of it working for some people but not others. (Though that's certainly a factor!)

First off, though, what am I talking about? I'm not talking about a specific kind of paper notebook. And I'm not talking about Jupyter notebooks. I'm talking about a practice of recording notes as you work on things, documenting what you're doing and why. This has long been a practice for researchers, keeping lab notebooks.

There are a lot of different practices, but there are some common characteristics between them:

The level of detail is a particularly crucial bit, because, for your notes to be useful to yourself later? They have to be useful to someone else, too. Future you is someone else: you won't remember everything. So you have to assume you'll forget much of it.

I started using an engineering notebook when I started doing consulting work in 2016. With multiple clients at once, my organization was critical to projects succeeding. And it's continued to prove useful, across both corporate jobs and more client work, in the decade since. I use it because it helps me remember things, and it helps me think clearly.

My notebook is an incredible memory aid, in two ways. The first way is the obvious one: I can read back and see what I was working on, whether recovering from a momentary distraction or coming back from a long weekend. The second way is that writing by hand is the most effective way I've found to commit anything to memory. I think studies bear this out as a general thing among humans, that physically writing (and also walking or moving around), helps with thinking and memory, but it's certainly not true for everyone. It's probably worth a short, anyway, if you can try it.

It's also a very good tool for thought. I write things down as I go, to work them out. Rather than writing down the code changes after I make them, I usually write them in the notebook before I write the code in my editor (or I intend to, anyway). This forces me to think it through before I start mashing my keyboard. It also lets me leverage that benefit of physically writing, which helps me gain clarity about what I'm doing and about what I don't know yet. There's something about writing by hand that is often magical, and I think a lot of us have experienced it before, like when we use a whiteboard to solve problems.

I don't really use my notes for reading back later on. My notebooks haven't been helpful for me in that way, beyond checking what I did the previous day or so for standup meetings.

And I don't show them to anyone else, ever. They're entirely for my work. The writing is the work, in a lot of ways, since it's the thinking.

Maybe! I can't answer that for you. If you've tried using one, you can answer it and I'm curious what your experience has been.

But if you haven't tried using one, I think it's definitely worth a shot. At best, you gain a new practice that's helpful. At worst, you learn that it doesn't work for you, and learning more about how you work is usually a good thing.

And if you do use one, try changing it up! Experiment with the format and the medium. Experiment with the level of detail. Then share what you learn with everyone else, so we can get ideas from your experiments, too!


If you're looking for help on a software project, please consider working with me!