Friday, November 22, 2024

Context Switching Is Killing Your Productivity — 6 Tips for Focus

In computing, a context switch allows multiple processes to share a single CPU by alternating between them and avoiding conflict, but it comes with an overhead cost. Similarly, when humans shift focus from one task to another, there’s also a cognitive cost. For example, switching from writing a script to responding to Slack messages or helping your kid with their homework disrupts your focus and makes it harder to get back into your original task. One report found that it takes us an average of 9.5 minutes to return to focus after switching between applications.  

The impact of context switching goes beyond delaying your ability to finish a task. Another study found that just 20 minutes of interrupted work made people feel a lot more stressed, frustrated, and overwhelmed. They also felt like they had to work harder and were under more pressure. 

Learn something new for free

To have better, more productive work sessions, we should aim for as little context switching as possible. However, carving out uninterrupted focus time often feels elusive.  

When you’re learning with Codecademy, you’re typically focusing on one lesson or project at a time. “But in the real world, you’re working on multiple projects at a time,” says Sylvana Santos, Senior Software Engineer at Codecademy. Add in bugs surfaced by Customer Support, on-call issues, team and cross-functional collaboration, and it’s rare to have large, unstructured blocks of time to immerse yourself in the code. 

“When you’re working in a complex codebase, it can be really hard to context switch and suddenly jump into a whole new area of the code,” says Sylvana. “You have to remind yourself of what’s going on there and that can be pretty challenging.” Ahead, Sylvana shares some strategies and tips for managing context switching as a developer or person learning to code.  

Customize your notifications 

Here’s a secret that can take years of professional experience to learn: “You do not need to answer every message immediately,” Sylvana says. Of course, you want to be available and willing to help unblock your teammates, but that doesn’t mean dropping everything and shifting focus. To balance your need for focus time with the communication needs of your team, consider scheduling focus time hours on your calendar and let your team know that you may not respond straight away.  

It’s also important to identify how much of your cycling between tasks is due to unnecessary interruptions or just simple distractions (no judgement if that’s the case). Tools like Freedom or Cold Turkey might help you avoid procrastination-induced context switching by blocking your access to distracting apps and websites while you tackle a task. There’s more procrastination advice in our free course, Get Organized and Stop Procrastinating

Take notes so you can jump back in quickly 

Imagine you’re investigating an upcoming project while also working on a tricky bug in an existing feature. Both tasks require you to dive deep into the code and understand user flows. “Hopping between the two tasks can be draining and reminding myself where I left off can take time,” Sylvana says.   

In this situation, Sylvana writes down her findings as she works through the tasks, so she can orient herself quickly. “They can just be quick bullet points. Sometimes I even just write comments to myself in the codebase,” Sylvana says. The benefit of taking notes is that you can also share these with your teammates to help them understand your thinking and where things are at. 

Time blocking to the rescue 

When Sylvana has multiple projects on her plate, she turns to time blocking, a technique where you identify your most important tasks and allocate specific hours to complete them in your calendar. “It helps me to lay out my day in a more intentional manner and stick to it,” she says. Time blocking can help with overwhelm by breaking down your deliverables into smaller tasks and reducing the mental load of figuring out, “When am I going to fit this in?”  

Time blocking might be overkill on a daily basis (but if it works for you, by all means!). “When I’m feeling particularly jumbled, I find that this helps me tackle things more calmly and methodically,” Sylvana says. You can learn more time management strategies in our free course, Be Productive by Working Efficiently.    

Treat others how you want to be treated 

Neither remote nor in-office work is inherently better for focused work. “In person, you’re more easily accessible — but so is everyone else,” Sylvana says. “If you’re blocked on a task, you can just stroll over to someone’s desk and ask for help, but the same is true if you’re immersed in a task and someone needs your help.” In both cases it’s important to communicate your needs and create boundaries for yourself, Sylvana says. That could mean changing your Slack or Teams status to “Away” or working from home or a quiet place when you want to put your head down.  

“Be respectful of other people’s time, too!” Sylvana says. Consider good chat etiquette like including your whole question in one message and letting the recipient know by when you need an answer so they’re free to answer asynchronously when it suits them.  

Boundaries are important for focus when you’re working from home too — check out more tips for remote work-life balance here.  

Reprioritize with your team leader 

Sometimes, it feels like there’s more to do than your calendar can handle, so it’s wise to ask your manager for help prioritizing. It can be hard to say no to requests and opportunities, says Sylvana, but overextending yourself is risky. “If you tell your manager exactly what’s on your plate, they should be able to help you move things around and possibly even take things off your plate,” she says. 

Your team leader can also help you handle requests from other teams that can be delegated to someone else. “If it’s high priority, you should be able to hand off or deprioritize another task,” Sylvana says. 

Managers can also help you establish reasonable expectations for yourself, says Sylvana. How many tickets should you be picking at a time? How long should these tasks be taking? How involved should you be in community initiatives? Would that optional meeting be beneficial for you?  

If you’re trying to balance context switching as a learner, try breaking down your courses into manageable weekly and daily goals. Codecademy is completely self-paced and flexible, so you can set yourself up for success by aiming to complete manageable chunks in one session to avoid the context switching cost. Remember that showing up consistently over time is more effective than working in irregular bursts.  

Identify good distractions 

Although community initiatives, optional meetings, and collaboration like pair programming are not necessarily main duties, they’re valuable, Sylvana says. Don’t get so bogged down in your focus work that you pass up opportunities to interact with your peers. “Pair programming is vital to your growth as an engineer,” she says. “But I think both meetings and pairings should contribute to your core responsibilities.” For example, see if you can pair with an engineer on a task related to a project that you’re working on, she says. 

While some context switching challenges are a result of the culture of your workplace, you might be surprised at how much is within your control to manage. We recently added over 70 professional skills courses to our catalog, including free courses to help with time management and organization. 

Related Articles

Latest Articles