Monday, March 8, 2010

Programmers And The Value Of Hard Focus

There was a very interesting discussion on reddit a few days ago. Some fresh programmer asked how many pure work hours do programmers work per day?

By pure work he meant, the number of hours spent on (coding/designing/testing, etc.) a task that is probably assigned to him by one of his superiors. Other activities like personal researching, blogging, etc. are not counted.

The question sound pretty interesting to me and the answers came much more interesting.

Most of the answers implied that programmers put less that four hours of pure work per day. This is half the assumed time (8 hours for most companies).

So, why do programmers work less than most of other carriers' professionals? An immediate answer that might came to my mind "well, that's normal because they are sloths lazy." 

False Assumption:
 If I don't work HARD I will eventually fail to finish my work, and will certainly feel incompetent.

There's a lot to programming than HARD work: 
For me, it doesn't matter how many hours I work during the day. What matters most, however, is the number of tasks I manage to finish. This is ths only productivity metric to me, and it's not related to the number of working hours, it's related to the number of hours (or minutes) I managed to keep my focus hard. 

The value of Hard Focus: 
Haruki Murakami in his excellent memori (What I Talk About When I Talk About Running) noted: 
If I’m asked what the next most important quality is for a novelist, that’s easy too: focus the ability to  concentrate all your limited talents on whatever’s critical at the moment. Without that you can’t accomplish anything of value.

The key is to concentrate all your mental abilities on one specific task and foreget about anything else as long as you're working on this one task. This is very important -actually a lot of programming techniques and tools are proven usefeul and highly adopted because it lets you forget about other details and foucs on your specific task.

Luckily enough, Marukami pointed that: "Fortunately [sustaining focus for a long period of time] can be acquired and sharpened through training."

The pomodoro technique is designed to address this very problem. It's mainly focused on helping you stay focused by working for shorter periods of time, named pomodoros, each is 25 minutes long and during each you're focused on only one task. And while working on this one task you are not allowed to think or worry about anything else. This really helps you cultivate all your energy on attacking one problem. 

The number of working hours is not that crucial in CS-related carriers or any other carrier that requires a non-trivial amout on creativity. What matters most is to keep your mind clear, break your problem into smaller problems, and focus on these smaller problems one at a time.

Now I see (and hopefully you dear reader) what every GTD book meant when they loudly screamed in readers' faces "WORK SMART NOT HARD"!

What do you think dear reader? 


Senthil said...

Well i agree with you .
But when deadlines are to be met , it is also important to work that ( extra hours )

Senthil Kumar

Anonymous said...

With constant hard work slower performance and attentiveness to detail.