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 and hacktheday.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