Write Before You Think
How Writing Helps Me Think Clearly
A friend of mine published a short post, an Instagram post really, called "Six ethics of life" among which was "Before you write, THINK." In the context of his post, it makes sense. But it still triggered me and got me thinking.
There are a lot of scenarios where writing makes me think clearly and what is more important, more efficiently. And it helps me to structure my thoughts.
Solving coding problems
When I'm stuck on some coding problem or having a hard time debugging an issue I use writing to move everything from my head to make space for thinking and defining a context. Normally I use paper and pencil, but when they aren't available I use Notion.
I use a process sprawling across a series of steps that guides me to my solution. The process and the steps were influenced by the Feynman Technique of Learning but were heavily modified.
1. First, I succinctly describe the problem, often I posit it as a question. This sets a context for me.
2. Then, similarly to Feynman Technique, I write down the stuff I know and stuff that I'm certain is true. In case of debugging an issue, I write down the consequences of the issue at hand, data (or database) state, and code (classes) involved.
3. I write down the unknowns and things I need to learn more about before making any judgment. And how to convert "unknowns" to "knowns".
4. Afterward, I move on to possible causes. After listing the most obvious culprits, I try to look outside the box and come up with barely plausible scenarios. For each of the items here I specify how to validate, confirm or discard the idea.
5. After clearing these steps pretty much everything is cleared up and there usually aren't any big obstacles for developing a solution.
Naturally, sometimes these aren't enough so additional steps are added to the process.
6. If the problem at hand is not urgent then I let it simmer for a while and let my unconscious thoughts work on it. I either take a walk, change the working environment (work from a coffee place, work from home), or even sleep on it.
7. The last step is basically waiting for a solution to strike me in my head :-)
I use a similar process when I'm stuck at deciding which solution or idea to pursue.
One difference is using second-order thinking, especially if I'm dealing with legacy code or working on code I didn't write (or forgot about). I tend to really worry about Chesterton's Fence kicking me in the but :-)
The additional benefit of writing down your decision process is that you can easily convert conclusions in your decision diary. You are keeping that, right? How else would you preserve knowledge in your org?