Context switching

I’m at work.

And I know what you’re thinking.

Slacker.

Logs onto his own blog when he should be working?! When are we going to get 150 character tweets, if the developers all spend their days on personal blogs?

I hear you.

But I’m getting old. With old age comes a certain amount of experience, a certain amount of stiffness in the bones, a certain grey-haired softly-spoken cynicism of newfangled inventions.

But as far as coding goes, the biggest effect is context switch pain.

I feel sure that when I was twenty I could happily flip between six different projects, in seven different languages, for eight different clients. I could jump contexts like a frog that dodges traffic in an old computer game.

Now I’m over a hundred, I find this harder. Come over and ask me about your project, and my thought processes go like this:
– what?
– what’s happening?
– try to remember current task
– who is this?
– does it look urgent?
– if I ignore them any longer, will they just go away?
– save
– remove headphones
– try to work out what I spoke with them last about
– ask them to repeat what they’ve been saying for five minutes.

The whirl of my mind is a bit like that special effect in Butterfly Effect where there’s a kind of wobbly text, whoosh, whoosh, and I have no idea what’s going on.

When I’ve finishing talking about their problem, I turn back to my computer. Rebooting the brain goes like this:
– what is this?
– what was I doing?
– TWITTER!
– FACEBOOK!
– WIKIPEDIA!
– TWITTER!
– email
– check name of git branch
– look up relevant ticket
– TWITTER!
– resume coding
– who’s this?
– does it look urgent?
… and the process continues.

Some tricks I’ve discovered to help with this:
– just don’t use facebook
– name my git branches something sensible
– try to work on one thing at a time
– keep my todo list in jira.

It mostly works. Mostly.

And why am I blogging?

My tests are running. Usually I’d switch to another branch and carry on working. Today, with a five am baby feed to start the day, I’ll settle for one thing at a time.

Tests complete. Back to work.