Here is a pattern I recognized for some time now, and that I'd like to share. I keep trying to be as efficient as possible in my daily working environment. Productivity is really important for me, as it is the root which allows you to acquire you tiny slice of knowledge of the day. I use several tools to help be stay productive, among which :

Pomodoro

A technique that consists in using a timer to switch between work and breaks. As it is really difficult (yeah, impossible) to stay focused for hours; Pomodoro trains you to work in bursts of 25 minutes.

GTD (aka Getting Things Done)

I use a light, personal version of it but the idea stays the same. The first thing I do at work is to set up a list of 3 things to do for the day. On Mondays  I set 3 bigger objectives for the week. I never spend much time doing that, as I had loads of time to thing about it since the last time. When working, I also usually always spend some time setting up a set of simple objectives in order to avoid diverging from my final aim. The drawback of this method is that you have to set objectives that are precise enough to be doable in a week/day, but complex enough so that you don't have only a few hours of work. Coupled with Pomodoro, this technique is highly powerful as you can make you tasks fit into 25 minutes time frames.

StayFocused

A chrome extension that blocks a list of defined websites once you spent more than 10 minutes on them during the day.

RescueTime

A piece of software that you install on your computer and keeps track of the application you have in foreground. Applications are divided into categories, depending on how effective they are for your productivity. As an example, I am (assumed to be) really efficient where I use Eclipse, but really distracted when I am on youtube. At the end of the day (month, year,  . . .) you get statistics; and a percentage of global productivity. You can set objectives, compare yourself with the best or the average of people using RescueTime, . . .  I love this tool because it shows you how much time you can lose if you are not careful about what you do. And when you end up you day with a global productivity of ~30% you know you screwed up somewhere !

Headsets and music

Whenever I want to be 100% into a task, I put my headset on. This has become some sort of habit, and cuts me from the outside world. This effect is some kind of a pavlovian conditioning. Listening to repetitive music (trance, drums and bass, . . .) helps me stay into the flow.

Versioning : daily branches

I usually use as much branches as I can in my daily developments. Those branches are fully temporary, and it happens that a branch stays alive for only one commit. :) The thing I like is that I can make my branches and commits match the objectives I set in my Pomodoro bursts. And this synchronization is just awesome; as any commit is just like a crossed line in my TODO list. In order to keep this as light as possible, I use git on top of SVN (the version control we use in Spacemetric.).

Avoid Stack Overflow and use DuckDuckGo.

In my last post, I explained why I hate Stack Overflow, so I won't explain it again. Let's just say that I try to avoid searching for answers in there. The best way I found to avoid Stack Overflow posts is to use DuckDuckGo. The reason is that SO posts are usually less present than in Google. In addition, DuckDuckGo is literally a command line for the web, and I can usually access the documentation  search for using shortcuts and without even having to touch my mouse :). How efficient is that !

Avoid the web, use FreeMind

Lastly, the best way I found to stay focused is usually to stay away from my browser. Any web search can turn into a 5 minutes break in my mailbox, or worst. . . A way I found to reduce the number of searches I perform is to log them. Let's say I want to find a way to serialize an Object in Java. The first time I perform this search, I put a new entry in my FreeMind map. Next time I have to do it, I'll look at my map first before opening my browser. The nice thing is that FreeMind is designed to help you save time. Just look at this screenshot, and I'm sure you'll be convinced :). In summary, this set of tools highly help my mind stay focused. By setting a list of objectives in advance, and having a timer to refer to I relieve my brain from having to think about anything else but the task I intend to do.And each of those tools tackles of different issue from fine to low granularity :
  • Pomodoro, versioning and GTD help me to always know what I am doing.
  • stayfocusd prevents me from switching to youtube of blogs during breaks (especially after lunch).
  • The music offers an environment to my brain that. Now whenever I hear this kind of songs, I feel like putting my hands on the keyboard !
  • Finally, RescueTime is sort of an evaluation. A good way to know how well I performed the last week (and optionally to feel bad about it). Each week becomes a new challenge where I want to do better than the week before.
I usually finish the week with an average 70% productivity, which I am moderately happy about. The major issue I have is that trying to stay as focused as possible is really exhausting. When coming back home, I feel psychologically tired of the day and I want to breathe out; usually by watching a movie or gaming an hour or two. I feel like I need those hours ; but as a consequence I end up not sleeping enough and it is harder and harder to stay focused the day after.So, problem not fully solved yet!
I'd love to hear about the tools you use to stay focused. Especially how you force yourself into having enough sleep. I must say this is the part is still struggle with :).