Some days you leave work feeling as if the day went by without an inkling of progress or productivity. Other days, you leave feeling as if you conquered the world, with an internal spark of satisfaction and anticipating resuming progress the next day. So, what is it that makes the difference?
As an experienced software programmer, I believe the two biggest factors to a productive workday are: email and context switching.
Email is not inherently good or bad; it’s how you use it that makes a difference. Email is a revolutionary tool, one we rely on mostly for communication in the workplace. But I have seen it consume people to the point where it stagnates their progress. Nothing gets produced at the end of the day except a bunch of drafted emails (there are days when I am guilty myself). A software developer’s job ultimately is to produce working software. Email should aid that purpose, not detract from it.
The detriments of context switching are well documented as it applies to software development. Technical tasks are very involved and require intense concentration and focus. Context switching disrupts that focus and the time to regain it is quite expensive. The book Pragmatic Thinking and Learning (chapter 8) cites a study that found multitasking costs 20 to 40 percent of a worker’s productivity. That would reduce your workday from eight hours to five hours!
From personal experience, when programming a particularly involved component, it can take me up to half an hour just to wrap my head back around what I was doing when I left off the task. I consider this an unfortunate reality. Focus is essential to a software developer’s productivity.
Take Control of Your Email
There are probably office positions that consider crafting, responding, sorting, and searching emails an essential part of the job description. However, software developer is not one of them. Dealing with email-related tasks is not the most cost-efficient way to utilize a developer’s skill set. Here are some ways to use email effectively that will free up time to actually develop software.
- Turn off email alerts. Emails do not need to be answered in real time. Consider checking emails once an hour or even at longer intervals if appropriate. Generally acceptable response times to email range from a few hours to a few business days. Find out what is optimal in your environment and stick to it. Let your colleagues know that if they want feedback immediately, to rely on the phone or instant chat.
- Give up on sorting emails into folders. Placing emails into folders provides a nominal benefit for a limited amount of time, with the drawback being that it sucks up your time in the long run. As soon as a folder gets sizable, you either have to subfolder the folder or use the search function to find what you want. Create a simple folder called “Archive” and dump into it any emails you may need to refer to later. Rely on your email application’s built-in sorting functions, such as virtual folders (with categories) or built-in search. Productivity sites, such as lifehacker.com, recommend these approaches.
- Clean up your inbox often. Leaving emails dangling causes you to inadvertently revisit them repeatedly. Delete emails that are not necessary to keep. This will make incoming emails noticeable and your working memory will be able to recall important details of correspondence more easily since you are dealing with less noise.
- Adjust your email settings to automatically save sent emails. You will be able to locate outgoing emails just as easily as incoming. Knowing what you sent out can be quite handy.
Minimize Context Switching
I am not able to code all day without any interruptions or fatigue, but I am often able to minimize context switching. On the days that I am able to control the amount of context switching, I have found that I leave the office feeling productive rather than defeated. Here are a few things you can do to maintain focus and minimize the effects of interruptions.
- Use a virtual desktop application. Virtual desktops segment your work area into specific categories with the aim of keeping you focused. They can help reduce the distractions of web surfing, email checking, and other focus-hindering tasks. Virtual desktops range from very sophisticated to surprisingly simple. I use Microsoft Virtual Desktop Manager (Power Toy), where I use one desktop for coding and one for communication.
- Leave breadcrumb notes when switching tasks. This simple habit allows you to refresh your memory quickly with low productivity cost. When the time comes to leave one technical task behind and take on another, take one minute to log your current thoughts in a to-do list so you can reconvene at the next opportunity. For example, if I am coding a Trading Application and I leave off at unit testing the TradeService, I will write, “Left off at testing the retrieveDailyTrades() method; need to investigate why trades after 2pm are not retrieved; then move on to integrating Bloomberg services.” Notes like this help jog my memory, and I am not staring into space the next day thinking, “Where did I leave off?”
- Jot down ideas in real time. Our minds are constantly at work, even if we’re not focusing on the task at hand. When you are coding, you may come up with an admin task that needs to be completed, or a totally unrelated idea may pop in your head. Don’t ignore it, and certainly don’t context switch and abandon the current task. Keep a notepad available (paper or electronic) to jot down the ideas and make time to expand on them later. This can clear your mind and help you focus, while preserving ideas for later consideration.
Working efficiently comes down to some basic ideas: Focus on your tasks, minimize distractions, and drive your primary task to completion. This is easier said than done. Adopting some of these habits takes some discipline initially, but once implemented, huge gains can be achieved. Hopefully some of the above tips can help you leave the office with your head held high and your to-do list shortened.
Thanks to Timothy Andrews and Austin Holmes for reviewing this article.