I touched on this at the end of that article in discussing how your productivity is impacted by your mood, attitude, and your inner confidence. Well, these are created by external influences and conditions. And it got me to thinking: Whats the perfect combination of these outside factors that helps each developer succeed beyond expectations?
Knowing that many developers still live for Seinfeld reruns, let me try to make an analogy using Jerry and friends. There was an episode called The Blood where George Constanza (who by the way would have made a great IT manager) talks about finding nirvana if he could just eat a sandwich while having sex.
Actually, his holy grail becomes experiencing "The Trifecta," which is when he has sex while watching TV and eating a pastrami sandwich.
Finding your zone is where youre like a Jedi knight coding with your eyes closed. And finding that zone requires experiencing your Trifecta.
So lets break down what goes into achieving The Trifecta for writing the best software.
First, get the picture out of your mind where you are having sex, eating a pastrami sandwich, watching Star Trek and writing code. Thats a Quadrecta and its just too much multitasking for a normal human to achieve. (Unless of course you are the rare female coder, but then wed have to replace eating the pastrami sandwich with getting a manicure.)
Besides, coding is more like sex than eating a pastrami sandwich or watching TV. That is, unless its a Langars pastrami sandwich.
So to complete the Trifecta you need to be experiencing two other things while you code. To me, this is about piecing together the circumstances to create the perfect atmosphere, where writing software just naturally flows from your finger tips.
To achieve an ultra-productive zone that would make your toughest computer science professor bow at your feet in awe, it helps to understand what conditions result in producing your best code.
With that in mind, here are the top five conditions or circumstances, which in my humble opinion, enables developers to maximize their potential to write kick-ass code. Then Ill tell you what triple play combination is my personal Trifecta.
This by far is number one on my list. Without music, there is no code. In my case its all about hard rock. The driving music puts me into a groove where I can tap at the keyboard in rhythm.
Others have told me that they need jazz or classical music because any lyrics would be too distracting. I like music that Im familiar with, especially including lyrics I know by heart, so I can take little mental breaks and sing along. Granted, this can be distracting to coworkers, but most of them have ear buds in anyway.
2) Time of day
I'm a night owl. For as long as I can remember, I did my best studying at night and that translated into writing code when the sun goes down. Many developers I know work in the dark even in the day time. Something about the still of the night, and if you are lucky, a full moon that brings out the best in developers.
However, many also do their best work during early morning hours, taking advantage of the quiet first hours in the office. And I must say afternoon coding is just not productive. Blame it on lunch hangovers or the anticipation of getting out of the office, but it just doesnt feel right especially when its a beautiful day outside.
There is one benefit that early morning coders and night owls have in common. The serenity of not being disturbed by production failures (unless you are the unlucky chap on-call), office gabbing and other distractions.
Typically when you think about coding and ingesting food, you think about working through lunch. That isnt always a pleasant experience and I believe lunch time is when you should be socializing with coworkers or reading goofy articles like this one.
To get a boost in the afternoon, Ive always found it rewarding to eat some vending machine food, like chips. (Not Doritos or Cheetos or else you end up with orange keys.) Something you can continually reach for and mindlessly stick in your pie hole.
When all else fails, I chew gum usually way beyond when it loses its taste. Just keeping the jaw chomping away fends off any anxiety creeping in while working through the randomness of problematic algorithms.
Lets state the obvious here. Consuming alcohol is not likely to lead to optimal code (see When Developers Drink for proof).
Although Ill admit to writing some code in college while under the influence, I just cant remember if it was good code or not. Come to think of it, I cant remember a lot about college. Anyhoo, what Im referring to here is the cup of coffee, can of soda or energy drink that provides the boost you need.
Its not always about the caffeine. Sometimes too much caffeine can make you so anxious that you cant sit still. But the act of being able to reach for the cup or can and sip your drink while not breaking stride can be a reassuring experience as you turn design into code. Just remember, too much fluids result in trips to the john that break your concentration.
5) Watching TV
Today this can mean many things. You could be sitting in the Lazy-Boy watching the wide screen at home. Or you could be watching an old Buffy the Vampire Slayer episode on Hulu in the upper corner of your computer screen.
Of course, any true developer has two monitors one for coding and one for testing. But we all know a better use of that second screen is to watch video. Is it really possible to watch Steve Jobs and Bill Gates pontificate together while actually maintaining your concentration? George had no problem, but he wasnt writing C#.
For me, it has to be more background noise than something Im very much interested in watching. But there is something about the hum of a video that brings up productivity for some people anyway. For others, not so much.
My Personal Trifecta. And Yours?
So what is my Trifecta? For me, it always has been simply music, drinking and coding. Listening to hard rock bands like Saving Abel or Hinder and drinking caffeine free diet soda is all I need. I know, pretty dang lame. But its what keeps me focused in my personal zone for long periods of time.
Now its time for you to dig into your deep, inner self and share your Coding Trifecta with the world. Or dare to reach into your inner-comic and try to make us all laugh. Im sure youll come up with something much more interesting that will rival Georges Trifecta.
Now back to my pastrami sandwich.
Eric Spiegel is CEO and co-founder of XTS, which provides software for planning, managing and auditing Citrix and other virtualization platforms.