How do you keep track of your tasks as a software developer? Perhaps your team uses a Kanban board, or issue-tracking system. And personally you might have a calendar, a to-do list, or even a personal productivity system such as Getting Things Done. There are a lot of productivity apps you can download. But there is one app that hardly ever shows up in productivity app reviews. An app that keeps you in a state of flow and makes you very productive: good old Windows Notepad*.
*The built-in text editor of macOS or your favorite Linux distro is fine as well, as long as it’s in plain-text mode.
To understand the use of such a simple app as Notepad, we need to look at the way you work as a developer. The following cartoon by Jason Heeris illustrates this very nicely:
As the cartoon clearly shows, you build a mental mental model of the code that you are working on. The more complex the code or the problem is that you’re trying to solve, the more complex this mental model is going to be. Any distraction will completely blow up this model, and you’re back to square one. But here’s the catch: quite often, you yourself are the largest source of distraction.
You yourself are often the largest source of distraction.
Picture the following scenario. You’re into a nice flow, building a new feature. In your head, you have built up quite a complex model already. Suddenly, you run into some unexpected issue in the code. It is not immediately related to the feature that you’re working on, but important enough that you don’t want to forget about it. It could be an important issue, such as a bug, or a major design flaw. Or it could be as simple as:
- The name of this function is a bit awkward, I might want to rename it.
- This class is probably no longer used, I should see if I can remove it.
- I shouldn’t forget to write the documentation for this new function.
Now you’re faced with a dilemma. If you decide to solve this issue immediately, you have distracted yourself from your original task. The mental model you had created has gone up in smoke. And even if this issue only takes a couple of minutes to solve, it will still take quite some effort to get back into the flow of your original task.
It takes quite some effort to get back into a flow, even after a small distraction.
On the other hand, if you don’t address the issue right away, you might forget it. Or perhaps even worse: your brain, helpful as it tries to be, keeps reminding you that you should solve the issue, thereby continuously distracting you from your original task and preventing you from fully getting back into a nice flow.
And that’s where Notepad offers the ideal solution. Whenever you run into a side issue that is not related to your main task, make a quick note of it in Notepad. This hardly takes time or effort: ALT+TAB to Notepad, type a few keyword to remind you of the issue, ALT+TAB back to your code. Done. You were only minimally distracted from your original task, so your mental model of it remains largely intact. And your brain knows that you have written down a reminder for the issue. So it can relax, and won’t keep interrupting you about the issue and disturb your flow.
A quick note in Notepad keeps you focused on your original task.
But why Notepad in particular? I already mentioned the Kanban board, your calendar, to-do apps. Why not park the reminder there? After all, those systems are built for productivity. How can a simple app such as Notepad be better?
The reason is quite simple: the longer it takes to write down a reminder, the more your mental model of the original task begins to fade. So, you want to record a reminder as quickly and effortlessly as possible, and get back to your original task with minimal interruption. And it doesn’t get much quicker than Notepad. You don’t have think about labels, categories, priorities, markup, or anything else that a productivity app might require you to think about. You don’t even have to click anywhere to create a new reminder, you just start typing on a blank line.
It doesn’t get much simpler than Notepad.
I believe that getting into a nice flow and staying there is an important key to productivity. Plus, it feels better, more relaxed, less stressful. Anything you can do to achieve that is worth trying. So, next time you start coding your next feature, tell your colleagues that you don’t want to be interrupted for the next few hours, pour yourself a nice cup of coffee, open up Notepad, and have yourself a super productive coding session!
Gerelateerde blog posts
Selenium tests in parallel
Developers often write “Selenium tests” which, after a while, become too slow. Let’s look at how to fix that!
De overeenkomst tussen Usain Bolt en een developer?
Als developer weet je één ding zeker: je moet jezelf altijd blijven ontwikkelen. De veranderingen in het IT-vakgebied gaan namelijk écht sneller dan Usain Bolt op de 100 meter sprint. Goede training is dus cruciaal om bij te blijven. Volg cursussen, sluit aan bij webinars of deel actief kennis met je collega’s. Van die laatste optie is Niek Kuijken, .NET developer bij VX Company, in ieder geval groot fan.
Programming with Elm: how difficult can it be?
This is a blog series about functional programming with Elm. Setting up an development environment with Elm and electron should not be to difficult, but was it?