Tuesday, May 17, 2011

The Zone

By Enrique Aviles

When was the last time you were in "the zone"? I'm talking about that special moment when you are able to construct a mental representation of a complex task with none of its parts missing. You've managed to take a large problem and break it apart into smaller pieces that you fully understand thus giving you a clearer picture of the original bigger problem. At this stage you are completely focused, ideas are flowing, and you feel confident what seemed like a daunting task is now under your control. This mental state is typically associated with programming or software development but it applies to pretty much any task that requires deep focus and concentration. Programmers in the movie The Social Network were known to be "wired in" when they were in the zone

For me, this is usually achieved when I'm alone at work or at home. The seating arrangement at work is great for collaboration since I share cubicles with three colleagues but makes it almost impossible for me to get in the zone.

Recently I had to optimize a large query that feeds a Crystal Report. Notice I said query, not queries, so all the data was gathered with a single query. This query was actually a UNION of several queries each joining tables, views, inline views, and a few IN clauses. It wasn't until I was able to enter the zone that I managed to make significant progress troubleshooting the monster query and develop a solution that made a significant impact.

What are some of the hurdles that prevent us from entering the zone? Are they limited to the office? Perhaps it is better to work from home, but is that even a plausible option? Emails, phone calls, instant messaging, impromptu meetings, people asking for help and casual conversations make it very difficult for someone working on a complex task to enter the zone. Working from home could aggravate the issue since the only means of communication are limited to phone calls, emails or instant messages. Nobody knows how busy you may be so interruptions might occur more frequently than if you were in the office.

How do you find the zone? As with everything else this could be a matter of personal preference. Some people (like me) prefer silence and virtually no external stimuli while others are content and strive in the midst of chaos. Regardless of what your style may be one thing is certain: it is almost impossible to achieve deep concentration if one is frequently interrupted. Unless you possess special mental abilities that allow you to context switch as quickly as a modern CPU, most everyone requires a special setting and the right conditions in order to enter the zone.

The average IT professional would be more productive and enjoy greater job satisfaction if he/she is able to enter the zone more often. We would be able to develop better designs, troubleshoot more efficiently, and devise smarter solutions. Entering the zone is a rewarding experience not only because it helps us solve complex problems but because it shows us the level of mental prowess we are able to attain.


Tim... said...

I was in the zone before I was interrupted by your post... :)

Joel Garry said...

I wish I knew how to zone on command. I've found it does help to go work on a different problem, such as on online fora. Also, when I awake in the morning after spending an unproductive afternoon, sometimes I can visualize a complex answer - that happened this morning, I realized the solution to something I'm working on with a few overly-vague requirements. Sometimes I have to scribble down some notes so I don't forget it by the time I get to work.

Definitely too many interruptions today, but I got enough clarity so I'm confident I'll crank it out tomorrow, including the curveballs thrown at me today as I attempt to be sure what they do is what I thought they do. Once I get to this point, I could work from home, but there is a comfort at the work computer, even such things as where icons are and what order things are on the task bar and how fast the server responds. I've found it takes a few days for me to get into a work-from-home zone (would be different if my work was just emails or online fora help).

Long ago when I first became a superprogrammer, my boss would come up and start talking to me, and I would talk and continue coding. That would drive him nuts. I'm no longer a superprogrammer, doing it too much is a burnout after a few years, unless you are Tom Kyte. Oh well.