Become a More Efficient Developer

I have found that there are certain times where i hit a sort of coding frenzy, where I seem to be more efficient and more inventive. These are the times, where I get the most demanding tasks done, and often faster than I had expected.

So naturally I have explored a little how to get into that frenzy - because if you can somehow invoke it on yourself, you might create some hours of coding frenzy every day, where you can get a heap of work done.

Everybody is different, so what I have found to be true about myself, may not apply to you at all.

Getting to that zone of coding frenzy is a lot like falling asleep: You are easily distracted until you get there, and even the smallest distractions may get you off the path completely. But when you get there, you are less likely to be distracted.

1. Plan the frenzy ahead, and organize your situation so that you are most likely to be left alone in that period. Let people now that you don't want to be disturbed. If needed and possible, relocate with a laptop to an empty office.

2. Make sure that you have eaten, had water to drink and go to the bathroom so that you don't have to go out to pee anytime soon. Bring a bootle of water to your desk, and a snack so you don't need to fetch some during your frenzy.

3. Do not have any caffeinated drinks prior to the frenzy, as it tends to make you restless and easier to distract.

4. Pick the time of day, where you are normally mostly effective and try to ride the wave. I work best from 8-11 in the morning, so I start out with my frenzy in the morning.

5. Shut down email-software, IM-software, feed-software and your phone if possible - basically everything that may somehow alert you of something. If you can't turn off your phone, ask somebody in the office to take your calls for a certain period, and instruct that person not to interrupt you with messages, unless the building is on fire.

6. If you are not alone in the office wear earplugs or maybe headphones with a little soft music, that you don't know the lyrics for. Never radio, where people talk. I sometimes wear my in-ear headphones as earplugs, as they have almost the same effect.

7. Plan what you are going to say, if people interrupt you. You are probably a helpful developer, so you don't want to be rude, but you need to be firm about it. If you have your frenzies at the same time every day, people will eventually get used to it, and not bother you. They might think you are a little weird, but then mail them a link to this post, then I will take the blame.

8. Don't get stuck on details, and less important stuff - or complicated architecture deciscions. Keep going, and do the things you know how to do. Try not to google stuff, unless you know exactly what you are looking for, and never spend more than a minute. If it demands further research, drop it and do something else now.

9. Think of the work you do, as temporary and go with the flow and get it running, and feel the reward of seeing progress. You might know something that needs improvement. Maybe you could handle a string more efficiently with a regex, than a simple string replace - but do it the simple way, and mark it as TODO or a HACK, and when you are done with your frenzy - go back and fix the details, and make everything pretty, efficient and well-documented.

10. Promise yourself to do all the stuff that you like afterwards, and keep it. Have a well earned break, before going back to work. You have done well, so enjoy it! Read your daily feeds, the newspaper and all your emails - write your buddies on IM and laugh at your favorite online cartoons - and get some food and and whatever makes you happy.

Try the above, but most of all be honest to yourself about what distracts you, and take the consequense - even if you feel, that you are giving up stuff, that you like. Because you won't regret it, when you hit your coding frenzy.

Posted November 2, 2007 by Joachim Lykke Andersen
In

Comments [1]