In part 1 of this series, I wrote about a place in Lagos where I could code without thinking about power cuts from the power company, my laptop battery dying, my generator running out of fuel or my inverter battery running down. I made this point number 1 on my list because of its relevance to flow and a hacker’s productivity.
What is Flow exactly? According to Wikipedia:
Flow is the mental state of operation in which a person in an activity is fully immersed in a feeling of energized focus, full involvement, and success in the process of the activity. Proposed by Mihály Csíkszentmihályi, the positive psychology concept has been widely referenced across a variety of fields.
According to Csíkszentmihályi, flow is completely focused motivation. It is a single-minded immersion and represents perhaps the ultimate in harnessing the emotions in the service of performing andlearning. In flow, the emotions are not just contained and channeled, but positive, energized, and aligned with the task at hand. To be caught in the ennui of depression or the agitation of anxiety is to be barred from flow. The hallmark of flow is a feeling of spontaneous joy, even rapture, while performing a task although flow is also described (below) as a deep focus on nothing but the activity – not even oneself or one’s emotions.
A hacker being in the Flow while coding is usually at the peak of his productivity. Flow is that elusive state in which a hacker is so immersed in what he is working on that he looses all sense of time and space, everything else is a blur, as he has “tunnel vision” on the problem he is developing a solution for. To most hacker’s who have to hack at work, they will tell you that they hardly ever if not never get into the state of Flow, which is why the 37signals guys will tell you that the typical workplace is antithetical to productivity. Flow once gotten into is very easy easy to break out of and harder to get back into once distracted.
How to stay in the Flow
1. A conducive workplace, i.e. a place where the hacker doesn’t have to think/bother about mundane things like infrastructure, e.g. power, Internet etc. Also the hacker should have all the stuff he might need during the hacking session like food and drinks, notepad and pen, reference materials and manuals at arms length to avoid breaking out of the flow just to get these stuff.
2. Avoid distractions like emails, IM’s, phone calls, co workers, meetings etc and also have a certain period of the day when he can code for a solid stretch of time without interruptions.
3. If the hacker is in a noisy place with lots of people, using high quality noise canceling earphones would be ideal as it would serve the dual purpose of shutting out external noise and also dissuade people from talking to you.