As I’ve been working independently for the past six months I’ve been working hard to do what I can to improve my workflow. Over the months I’ve found that by far the most productivity is lost to what’s called ‘Task Switching’. Below I detail the issue and what I personally found as being the best way to deal with it.
One of the biggest time sinks I deal with in game development is what’s called ‘Task Switching’. Task Switching is changing your focus from one task to another (as the name makes obvious), the difficulty comes when these tasks are significantly different. Your brain effectively needs some downtime to clear out the old information and get the necessary information for the new task ready to go.
Let’s say I’m going from gameplay programming to UX design. For the gameplay programming I’ve got roughly 20 systems across 100’s of files and thousands of lines of code all stored in my brain. I’m also keeping in mind how the program will need to run a week from now, a year from now or a month from now. On top of that I’m trying to keep multiple target platforms in mind. How will this run on consoles? PC? Smart TVs? etc, etc.
Let’s say I’ve got a new world navigation system programmed in and now it’s time to develop the menus. The first thing I need to do for that is the UX design, (the menu layout, style and interaction). As soon as I try to do that, everything…comes…to…a…halt. (Heck, even writing a blog can take a while to get warmed up). My brain is full of the previous program and I’ve got to spend a good amount of time switching from programmer brain into UX brain, this can take about 4 hours or so if I’m switching cold turkey. And again there will be a similar downtime when I need to switch back to programming.
This is actually quite common in the industry, if you have a programmer who needs to switch from one project to a new one, expect there to be a day or two of productivity lost while they in a way ‘unload’ the old project from their brain and ‘upload’ the new one.
Needless to say, since I’m handling most of the development tasks on this project I’m doing a LOT of task switching. This was adding up to a pretty big time sink since just as I would get a good head of steam developed for one task, I’d have to suddenly switch back to another one.
I’ve tried a few things to combat this:
- Having days assigned to specific tasks
- Reducing distractions
- Writing out a schedule for the day’s tasks
Of all of these, the last on, writing out a task schedule lead to profoundly the best results. Heck, I didn’t even need to schedule them, just writing out my tasks at the start of the day and double checking the list gave me some fantastic improvements on my ability to jump from task to task. I even found just writing down the basics of what I intended to work on ex:
- Level Load optimizations
- Airport Environment Layout Design
- Current Task Info and Confirmation UI System
This is due to a few factors:
- Writing forces you to think about it rationally (even if just for a few seconds) which is very different from it being an abstract ‘I should do this’ that it is when you are just doing mental planning.
- Once something has been written out and planned, your subconscious is already chewing through the problem. Even though I’m rationally engaged with working on my ‘Level Load Optimizations’ in the dark corners of my mind my brain is already working on the remaining tasks. As a result, when it’s time for me to switch tasks, it takes dramatically less time for me to get ‘in gear’ so to speak and start making meaningful progress.
Writing out tasks each morning is something very simple and it takes less than 5 minutes (I usually get the list done in less than a minute), but it makes a world of difference to productivity when having to juggle several jobs at once.
I hope this helps anyone who’s having similar issues with ‘Task Switching’ downtime. Let me know if you’ve tried something similar or if you have some strategies you’d like to suggest.