Vlad Skvortsov's Blog

cyrillic ditrack gtd guitar mac music pdf phd postscript productivity programming projects python r russian shell terminal tex tips utf-8 wadcomblog

My name is Vlad Skvortsov, I'm a software engineer: it's my job, hobby and addiction.

My primary interests include high-performance, scalable, fault-tolerant distributed systems; server-side applications; information retrieval technologies; procedural aspects of software engineering process.

I work on several private and open-source projects, hacking in Python, Haskell, Erlang, Perl and C.

Guitar, hiking, ice hockey and other hobbies help me to balance my life.

My e-mail is vss@73rus.com.

Quit Multitasking!

Apr 26 2007, 23:04 permalink

Recently I've tried to change the way I work and got amazed by the results. I could never imagine that staying in focus brings that much productivity; and also how much of one's attention such small things like random emails, IMs and blogs drain. If you are reading this during a workday, you'd better stop now and come back when you got your things done.

Everyone knows that it's so tempting to answer that one email in your inbox while you are checking out a code from a repository, or when your test suite is running, or when a guy next cube is on the phone, or... It seems that it lets you use up that small amount of "weird" time to move your "stuff" forward. And this is exactly how I used to work until recently.

However, measuring the amount of work I did, I was frustrated by the numbers. I remember myself about 5 years ago, claiming to someone of being capable to write 3 thousands of lines of debugged and unit-tested C code. And my current numbers didn't even come close to that. That got me thinking.

In some time I realized what was the most productive environment I have had. That was MS-DOS and Borland C++ 3.1. No multitasking. No email. No IM. If you needed to get something working, you just had to be sitting hours and hours staring in the source code. Take breaks without checking emails and news. Chat with your peers over the phone.

The next step forward (or, rather, backwards -- talking from productivity perspective) was a FreeBSD workstation without X11 and Internet connectivity. You could flip between manuals and the source code, or make tweaks while the test suite was running. But otherwise -- no distractions. That was productivity heaven.

So I decided to give it a try. I made a few simple rules for myself to adhere so that my attention constantly stays on the work subject. I stopped surfing any websites during these small pauses in the work course; I checked only work email; I didn't login to any machines except for my workstation. This is hard at first. Especially during pauses that are too small to think about "bigger" problems. So in times like this I just forced myself to look at the code. Just look. Not even think about.

...And that worked. As of now, I've been practicing such "work mode" for almost month and a half -- and it got slightly easier.

There are two things I need to mention as the outcome of such work organization. First, it's exhausting; I mean it -- working 8 hours a day this way drains you completely. I even had to take a day off after two weeks of such a ride. Second, and this is truly amazing, my productivity increased in times! And you can feel it as well as measure -- after finishing a work day you know you've done much, even without counting line numbers.

So, the conclusion is: do not underestimate "obvious" things. Every possible resource talking about productivity mentions that focusing is important. I used to "believe" that, but now having acquired a habit of staying focused, I can tell: it's just unbelievably crucial. This way you can finish your work by lunch and spend the whole afternoon surfing the web. :-)