Keep calm and prepare for context switching

3 ways to switch gears without stalling

Arianna Aondio
shutterstock_529891243

Small wooden man rolls up an egg image via Shutterstock

The software developer role has moved far beyond “a person concerned with facets of the software development process” as Wikipedia defines it. In addition to their core programming work, developers get immersed in marketing, support and other activities. This means they must continuously switch contexts, which can be extremely disruptive and stressful.

Context switching is a process the university doesn’t really prepare you for. When you code, your brain gets immersed in managing many dimensions and details. When support can’t handle an inquiry and needs your expert advice, you may need to put a particular complex problem ‘on hold’ while you go solve an issue, say, with an older software version. Having to join a marketing call to discuss conference speaking is yet another completely different context. If you are working in a startup or a smaller fast-growing company, like me, chances are that you encounter many of those switches in a single work day.

My workday is split between R&D work for Varnish Cache and Varnish Plus, handling second line support, giving training and supporting marketing activities. While the software I’m working on is all about performance and flexibility, I began to get frustrated that my brain couldn’t make all these switches at a similar speed. At university, I learned all about systems but nothing about how to overcome the physical limitations of the brain and prepare for context switching as part of the daily routine of a developer. They want you to be the next academic/professor/Ph.D student, so you might learn things like the “history of computer science” but less about the importance of staying up-to-date and how to handle signals and distractions.

The illusion of multitasking

Multitasking is the magic word we all like to use when speaking about our everyday challenges. Society bombards us with signals and expects us to be multitasking (especially us women!). And we believe we can  — but this is not true.

Let’s take an easy example. You’re running with a friend and talking at the same time. Is this multitasking? No, it is not. Your brain is simply able to process two simple actions at the same time. As soon as a task requires real focus, your brain won’t be able to perform both actions simultaneously. You might believe that you are multitasking but in reality, you are simply switching contexts very quickly — your brain is still doing sequential processing.

SEE ALSO: And it’s gone —The true cost of interruptions

Several studies confirm that multitasking is an illusion, even calling it a  “mythical activity in which people believe they can perform two or more tasks simultaneously.”  According to research from Loughborough University, “the time it takes the average employee to recover from an email interrupt and to return to their work at the same work rate at which they left it, is on average 64 seconds.” You do the math to see how much time you waste if you check your emails every five minutes!

So, here are three ways to handle the constant context switching off our work lives:

Tip 1: The Eisenhower Box

When dealing with a lot of different work tasks, the standard advice is to set priorities.  Interestingly, the word priority originally only existed in the singular form. It stems from the Latin word “prior” which means “before everything else.” For me, the Eisenhower method (named after the 34th US president Dwight D. Eisenhower) is an effective tool which helps me decide what task to do first.

Eisenhower once quoted a college president to explain the modern dilemma: “I have two kinds of problems, the urgent and the important. The urgent are not important, and the important are never urgent.” The Eisenhower Box is a quadrant based on important/unimportant and urgent/not urgent criteria as shown below.

1

Tip 2: Use virtualisation to avoid extra switching

Time management concepts aren’t the only way to help better manage switching contexts. In my case, virtualisation, containers and AWS are great tools for context switching more efficiently. As I work in R&D and on second line support, I often find that I’m working on the latest version of our software on my machine, when a support call for a completely different version running on another OS comes through. Preparation and tools help me to make this switch as smoothly as possible. First, I use graphs and scripts representing all different versions of our software. By doing so, my brain can adapt faster to the new context as the framework (in this case, the version number) is visible for me at a glance. Second, I run the different versions on virtual machines, thus making the switch faster for the machine as well and I don’t have to worry about setting up the required version environment from scratch.

SEE ALSO: Burnout amongst developers: an industry disease?Burnout amongst developers: an industry disease?

Tip 3: Waste time

The last tip seems a bit counterintuitive, but one of the best ways to get things done is to switch off and waste time — go for a walk, listen to music or otherwise switch off from the daily grind. In times when developers increasingly face work overload and serious burnout, we should remember that our brains need time to process information and regenerate. Latest research suggests that our brains are in fact very productive when we are not working.

Fortunately, I work for a Scandinavian company, which are always ranked among the best when it comes to work/life balance. Even though your company might not actively encourage downtime, you should, whenever possible, give your brain time to process information and recover. Ideally, you should never be working more than 12 hours without a long break.

These are just a few of my tips for switching gears in the increasingly hectic world of software development. I’d be very interested to hear what’s working for you.

Author

Arianna Aondio

Arianna Aondio is a Varnish expert and developer of Varnish Cache. She holds a Bachelor Degree in Engineering of computing systems from the Politecnico di Milano University. When Arianna is not busy writing code, she is likely to be traveling or taking part in outdoor sports.

Arianna on Twitter: @aondio_


Comments
comments powered by Disqus