The effect of interruptions on software developers has been widely discussed. Studies have shown that a software developer could take upto 15 minutes to recover from an interruption and start coding productively once again. The following image by Bruno Oliveira illustrates this nicely
In his essay, Holding A Program In One’s Head, Paul Graham writes:
Your code is your understanding of the problem you’re exploring. So it’s only when you have your code in your head that you really understand the problem.
It’s not easy to get a program into your head. If you leave a project for a few months, it can take days to really understand it again when you return to it. Even when you’re actively working on a program it can take half an hour to load into your head when you start work each day. And that’s in the best case.Holding a Program In One’s Head – Paul Graham – Aug 2007 http://www.paulgraham.com/head.html
Once the program has loaded in your head, you have built a train of thought with all the relevant information to proceed with the task at hand. Interruptions can cause you to lose this train of thought. For example, a question from a co worker, can result in you loading a different train of thought in your head and unloading the one you already had. Then, when you get back to what you were working on, you have to load the older train of thought in your head and this is what takes some time. End of day is a natural interruption in your work and as Graham notes above, it can take about half an hour to rebuild the train of thought in your head the next day when you start work.
It is possible that an interruption may not lead you to losing your train of thought. Or perhaps, the train of thought in your head was not complex enough that you don’t remember it when you get back to work. What I mean by an interruption is anything that breaks your train of thought in such a way that you have to spend some mental effort and time in getting back to the state that you were in.
Thus, an interruption could be anything; from your colleague asking you to review their code to a New Relic Incident alert reporting a high percentage of errors on your production api in the last 10 minutes. It could be the monthly All Hands meet at your company or it could just be the end of day and time to leave work. It could be scheduled or it could be random.
As the problem of interruptions has been widely discussed, so have the solutions. The best solution is to avoid those interruptions and distractions that cause you to lose your train of thought, as much as possible. To do this, people use a variety of techniques such as having a different Maker’s and Manager’s schedule, No Meeting Days, using website blockers, using headphones as a sign for others to not interrupt etc.
However, despite these techniques, it is not always possible to avoid interruptions for many. In such scenarios, the best way is to reduce the time it takes to recover your train of thought. Some techniques that people use to help them remember faster are writing simple notes in a text file, leaving the code in a state where it does not compile, using a browser extension to save the opened tabs etc. While these are useful, I am going to suggest a new approach that I have found helps me to recover my train of thought in under a couple of minutes.
Trici (pronounced “Tricky”, an acronym for Tools to Reduce Interruptions/Cost of Interruptions) is a desktop application based on a simple hypothesis to help reduce the recovery time from an interruption. Typically, it may take you anywhere between 5 and 25 minutes to recover from an interruption. Trici claims to reduce that recovery time range to between 30 seconds and 2 minutes. How does Trici achieve this?
When you are focused and have a train of thought in your head and working on a programming task, the actions that you are performing on your computer correspond to the train of thought in your head. Thus whatever you see on your screen , whether it is code that you are editing, or documentation that you are reading, is representative of the train of thought in your head at that moment.
If you are interrupted and lose your train of thought, will watching the recording of your screen activity help you recover your train of thought faster? And the answer to that is yes! The visual cues you get by watching the screen recording speed up the recovery of your train of thought dramatically. The important thing to note here is this:
If you watch the recording of my focus session, it won’t be as useful to you. The recording corresponds to the train of thought in my head, so I am the only person who will be able to reconstruct what I was doing in a matter of seconds. My first experience of reloading my lost train of thought by watching my last focus session recording was exhilarating!
With Trici, you start a Focus Session and Trici records and saves your screen activity on your desktop and then replays it to you at high speed. Think of it as a recap of your focus session. Most of the times, just watching the last 5 minutes of your previous session is sufficient to recover your train of thought and since Trici plays this at a high speed, you are done reviewing this in less than a minute. In case the last 5 minutes were not sufficient to recover your train of thought, you can always seek the video to an earlier instant. Trici also gives you the ability to “Mark” moments in your focus session and these then appear as markers in the video to which you can jump to. You can also annotate the Focus Session video after the session has ended. The idea is to make it super easy for you to jump to those portions of the Focus Session for which you are having to spend some mental effort in remembering what exactly you were doing.
While a speedy recovery of your train of thought was the primary objective when I started building Trici, there are other benefits of recording and reviewing your work. There have been times when, while reviewing a Focus Session, I was able to spot a typo in the code I had written and was able to fix it immediately instead of running the app and then going through the logs to figure out why the app was crashing. Trici also serves as a memory aid to help recall faster, the work I had done earlier on a task which I finished. I can search Focus Sessions by Task and then quickly review the code I had done to complete the Task.
Recording every focus session might sound like an overkill, but its utility is based on a simple premise:
If you value your time, you will find Trici a useful tool.
Other features and Data storage and privacy
Trici also comes with an inbuilt website blocker. When you start a Focus Session, Trici will block access to distracting websites for the duration of the Focus Session. Also if you become inactive, Trici will end the Focus Session. Thus, time tracked by Trici is a fairly accurate measure of how much time did you focus. Many people keep a log of the work they do in text files or spread sheets. With Trici, you just specify which task you are working on during a Focus Session and this data ends up as a log of your daily work.
Trici has been designed giving privacy of users the utmost importance. Firstly, once you download Trici, it does not require you to register with your email to use it. Secondly, all the data is stored on your local system, whether it be focus session recordings, tasks or any other data that Trici may be capturing. After installing, you can use Trici without having any connectivity to the internet. These data reside on your local system and are never sent to any remote server. Currently, this also means that if the disk of your system fails, Trici data will be lost as well. Trici only sends app usage data (number of times you start a Focus Session, add a task etc.) and application error logs to a remote service. Again, these are anonymous and you can choose to switch these off from the settings if you so wish.
A final word
Trici saves you a little bit of time, every-time!
It is one thing to read about this and another to experience it first hand. The first time you recover your train of thought by watching the recording is an Aha! moment. Of course, you need to have lost your train of thought for that, which may not be true for many. But maybe you are a developer who works on OSS a couple of hours every night. In that scenario, your day job acts as an interruption and you will find Trici useful whenever you sit to code every night. Or maybe you are working in an early stage startup, where there are multiple things to work on and there is a lot of task switching involved. Whatever the case may be, I am curious to see whether you experience the #AhaTrici moment and find it useful.
Trici beta for Mac and Ubuntu is now available for download. Use the invite code “AHATRICI” to download at https://www.gettrici.com