Research has shown that the average programmer takes 10-15 minutes to resume editing code after they’ve been interrupted; your chances of picking up where you left off in under a minute are just one in ten.
On an average day, developers can expect to manage just one uninterrupted two-hour session of pure productivity. From endless meetings and conference calls to the high cost of ‘NOW’, there’s a lot to contend with – including your own bad habits. But there’s only so much hiding in coffee shops, headphone wearing or working unsociable hours you can do to get some peace.
So what can you do to stay focused and be more productive? Here are some pointers:
Own email or it will own you
Email is the event horizon of productivity. Which is as good a reason as any not to start your day off with it. You’re all fired up for a day of focus and creativity, then you open your InBox and you’re straight into reactive mode.
Everyone’s problems and priorities become yours. So give yourself a chance by only checking and responding to mail at pre-defined times during the day – preferably times when your energy is typically dipping (like before lunch), so you get to keep your momentum for the work you need to do.
Let word get out and people will learn soon enough that genuinely urgent messages are seldom sent by email. And there’s always that rich vein of people who like to phone to see if you got their mail, so it’s not like you’re going to miss much anyway….
Say no to The Meeting That is Always On
Everyone’s busy. And cynical as it sounds, we all know that some people are busy organising and attending meetings. It’s not just about the time, though – it’s about zoning out from the mental processes that drive more creative work like programming. And then spending the rest of the day trying to get back into the flow.
No one wants to be kept in the dark, either, so the simplest route to finding out how ‘required’ your presence really is, is to ask. Straight up. Ask if there’s an agenda – the lack of one is a bit of a giveaway. Find out if anyone who is going can fill you in later on the relevant, important stuff. Then go and schedule your own work time on your calendar.
For the meetings you do attend, make sure they’re productive for you: have an agenda and stick to it. Set clear start/finish times – and leave with a clear plan of action.
Park your ego and stop making ‘busy work’
“Who cut your hair last?” may well be the mantra of millions of hairdressers, but programmers are no different when it comes to dissing the work of their predecessors. And then wasting time re-writing decent-if-not-perfect work to prove their point. This pitfall can be particularly pronounced when working on legacy or older code, when styles and libraries were different. But are you really going to waste a week just to be ‘right’?
Programmers are no different when it comes to dissing the work of their predecessors.
The same logic applies to automating repetitive or mundane tasks – we all like to feel in control of things, but why waste time performing mundane tasks a machine can do perfectly well without your intervention? And while you’re at it, ditch the endless arguments on minor technical details/preferences within teams. Know when to give it up and get the work done without turning everything into a flame session.
Code your work day
Apply the tenets of software development to your work processes. Recycle, re-use, automate, batch. That meeting you have to go to but don’t want to? Find out if you can add some extra issues you need to work through to the agenda. Apply the same thinking to phone calls or email – allot the time, and bury the drudge work in one ultra-productive session.
Listen to Ferris
Life moves pretty fast. If you don’t stop and look around for a while, you could miss it. Get up, walk around, go outside for some fresh air. Apart from the fact that sitting all day can kill you, there’s nothing like creating a little mental and physical space to help re-focus or get your motivation back.
The truth is, most of us know this stuff instinctively. We just don’t apply it to our daily lives. The Programmer Productivity Paradox suggests less than 5 per cent of a developer’s time hunched over a couple of screens is productive. Minimize the distractions and interruptions and place a premium on the time you use for the most important projects on your schedule and you should be able to at least double that…
* You can read Jason’s Fried’s article here.