Saturday, August 25, 2018

A Primer on Task Switching and Allocation

As people working in software one of our main aims is to solve problems quickly. Some would even say that we're supposed to code so quickly, and solve so many problems that we put ourselves out of a job.

With this in mind two important things I've found to achieve this speed are task switching and task allocation. Task switching is the idea that there is a transition period between two unlike tasks. It takes effort to stop doing one type of task, and then start doing another. Task allocation is when you choose which task to do.



Task Switching

When we switch between two unlike tasks it always takes energy and time to do so. In the past I've found this is built into how the mind works and not really a failing of a developer. For whatever reason the mind has to hit reset after stopping one thing, and before starting something new.

What's critical about this is that between two unlike things we're forced to spend some of our precious time and energy. The take home here is that when we organize our work, if we can do so in ways that minimize that amount of time we spend switching tasks, we will get more done in the same span of time.

This could look like working twenty minutes into your lunch to get something done, rather than stopping, and continuing after lunch. Or it could look like taking a set of 20 repetitive tasks, and grouping the like ones together. Or maybe even saying no to an unnecessary meeting.

Task Allocation

Task allocation is similar to task switching in that doing it intelligently can save time, but in practice it's a bit different.

The important thing to keep in mind here is that in a given work week you invariably have a finite amount of time and energy to get things done. And one thing I've found as a developer is that the mind just can't do the hard, complicated tasks all the time. But the kicker here is that in a given day a developer also has a number of other things they can be doing. Things that require time, but less energy and effort.

And so one way to find a bit of efficiency throughout the week is to be aware of when you're too tired to code, but feeling just right to write a couple e-mails, reflections, organize your files, clean up your work list, or something else. These are also important things that need doing, which make use of your time when you can't wrap your mind around your more complicated work. And if you get these small tasks out of the way it also leaves larger blocks of time later for when you do have the energy for the complex stuff.

Conclusion

These are two simple, but powerful ways to up your game. In lieu of actually improving your development skills, organizing your week, and your work serves as a really easy way to get more done.

No comments:

Post a Comment