The most common term I've heard to describe the zoned-in feeling that a developer gets when engrossed in code writing is "flow." This seems like a good term to me — it conveys the sudden ease with which technical tasks seem to become complete. It's a heady feeling.
But it's also an elusive feeling. If you're a programmer, the corporate work day is essentially a minefield, filled with flow-killing charges everywhere you step. During the course of my career, I've developed a number of tricks to help me spend as much time in this state as possible, and I'll share some of them with you today.
Close the Inbox
Do you sit with Outlook open all day? Gmail? The Mac mail application? I suspect the overwhelming majority of you do. I did, for most of my career. Perhaps, like me, you have a mail client configured to make inbound emails appear on top of whatever else you’re doing at the moment, fading in like a ghostly apparition of someone wanting you to do something and then fading out again — but not before you’re distracted.
I’ve heard it said that email is a convenient way to organize everyone else’s agendas. Whether you’re an inbox 0 person or a person with 39,000 unread pieces of mail, each inbound message sits in there like a little obligation, nagging at you until you satisfy it.
Emails are distracting when they come in, and they continue to distract you even as you try to get back to what you were doing. I mean, do you ever notice an email from the boss, try to start coding, but find that you can’t pay attention until you read the message? That’s awful for productivity.
There’s an easy way to fix this. Close the inbox. Seriously. Just leave it closed all day. Open your inbox once, about half an hour before lunch, and deal with everything that’s come in during the last 24 hours. Then close it and go to lunch. Email will cease to weigh on your mind all day, every day. As a bonus, people will slowly begin to email you less frequently when they get used to the 24-hour wait time for a response. You’ll be able to work without a major distraction.
Turn Off Notifications on Your Phone
Great, you’ve shut down your inbox and reaped the benefits of reduced distractions. No longer do those email notifications waft onto your screen and nag at you to do things other than write code.
But what about buzzes and notifications on your phone? Have you hooked your work email up to your phone or set it to forward? Does your personal email buzz you every time one comes in? Text messages or chat messages? Tweets?
There are a million ways beside work emails to distract yourself, and the lion’s share of them are funneled through your phone. Do the same thing that you did with your work inbox and silence them. They can wait until later.
I understand that this is hard, and I understand that you’ll probably slip up and pay attention to your phone. It’s habit. And there’s the feeling of “What if someone needs to reach me?” But push back on this. You won’t believe how productive you feel when you know that you’ll deal with all of that stuff later and, for now, you can just work.
Push Meetings to the Edges of the Day
So you’ve closed the work inbox and put your phone in flight mode, setting designated times when you can deal with both things. But there’s one workplace distraction yet to be slain: the meeting. Since I’m talking to an audience comprised mainly of programmers, I won’t bother with a long pitch for meetings being distractions that aren’t always a good use of time.
Viewing them as a necessary evil, you can still attend meetings without having them torpedo your productivity. Schedule them for the very beginning or very end of the day, or else schedule them right before or after lunch. Nothing can sabotage a morning quite as effectively as a 10:00 AM meeting. You see it sitting there in your calendar like a root canal appointment and you know that it’s not worth getting too engrossed in anything between coming to the office and the meeting. Afterward, you might as well just kill time until lunch.
Moving the meetings to strategic points in the schedule, adjacent to break times, will help you combat this while keeping overhead personnel happy.
Do a Kata to Get Going
With distractions eliminated, focus on maximizing productivity. Warm up first thing in the morning with something like a code kata. The idea isn’t is much to practice as it is to start the day with a series of relatively easy victories while getting into the flow of things. A good rhythm is all about the feeling of making steady progress. Warming up a bit with tasks that you can complete easily and in satisfying fashion will put you in a better frame of mind for tackling your actual work tasks.
Pick the Most Important Task for the Day
The final tip that I’ll offer is one that brings prioritization home to help boost your effectiveness. It’s easy to get bogged down in the minutiae of the day — emails to answer, small tasks to complete, corporate compliance videos to watch, and so on. Getting bogged down in these things tends to result in a linear to-do list that looks like a ladder to heaven. You can see where it starts, but the end probably only comes at the end of your life.
The trouble with a never-ending to-do list is that it's easy to lose track of what's important, creating a feeling of stress even as you scramble to knock tasks off left and right. It's neither satisfying nor productive.
So, try this instead. At the beginning of each day, ask yourself, "What is the one thing that, if I got it done today, would make today a productive day?" Pick one main thing, and make sure you get that thing done. It may result in the occasional email slipping through the cracks, but trust me, you'll feel (and be) much more effective because you'll be focused on important goals instead of thrashing about with trivia.
It's All About Focus
Hopefully you find these tips helpful. At the core of it, they're all really about cultivating and sustaining focus. Try as we might, humans are poor at multitasking, so you really need to remove as many distractions as possible. Do this, and your quality of work will improve.