views:

219

answers:

5

One of the challenges of being on a small team (sometimes even large organizations) is needing to switch contexts very often. I could be writing PHP code right now, followed by some completely unrelated C++ an hour from now, followed by HTML/JS immediately after that and repeat the process again all on the same day.

Being able to context switch effectively is important, and takes discipline.

What habits/practices do you follow to help you switch context effectively without wasting time?

+3  A: 

Get into a habit of keeping a notepad next to your keyboard and jotting things down as you work. A quick glance up the page does wonders for refreshing your short-term memory, even if the notes make no sense a day or two later.

moonshadow
+1  A: 

I can relate to this, and I think the term 'randumbized' (yes, that's intentional) is a good synonym for context switching. Too many context switches can leave you reeling if you don't approach it the right way.

I've had some success using The Pomodoro Technique, a simple time-tracking technique that keeps you focused on one item for a short span of time, and then provides a few minutes for decompression in between contexts. A lot more streamlined that GTD (which I never was able to get the hang of).

The basic unit of work in the Pomodoro Technique can be split in five simple steps:

Choose a task to be accomplished

Set the Pomodoro to 25 minutes (the Pomodoro is the timer)

Work on the task until the Pomodoro rings, then put a check on your sheet of paper.

Take a short break (5 minutes is OK)

Every 4 Pomodoros take a longer break

Yancy
A: 

As mentioned note taking to help you remember where you left off.

However, I am going to treat your question more along the lines of how can I manage interuptions....

Ask the question: Can it wait until I have completed X? (or at least until you can stop at a point that works well for you).

Size up the issue that is possibly causing the context switch. If the issue is large, compare it to what you are doing and see if you can complete what you are doing to devote your attention to the other.

See if you can schedule the interuption. A little like the first two except that those are trying to stop the immediate interuption and make it a little more orderly. In this case, you are trying to see if the interuption is really that important and/or gauge just how important it is. For example, you could say, well I am really trying to complete X. Can I get to this first thing tomorrow?

Reduce your distractions as much as possible. Can you turn off your IM, email, etc... perhaps these are causing some of the switching.

Plan your day as best possible armed with "What do I need to accomplish today?" you might be able to fend of some of the interuptions by simply stating your goals.

If it's really bad, talk to your manager and try to reach either an understanding (if they are part of the problem) or see if he/she can help you in this situation. Discuss how the context switching is very inefficient and is slowing you down. Perhaps a process can be created / followed that will better manage the interuptions.

I'll add this link to Joel Spolsky on Developer's getting in the "zone" or flow. It's huge and I have found it to be very true indeed. http://www.joelonsoftware.com/articles/fog0000000068.html

Goes along with Kristo's article's also on the topic...

klabranche
Heh, they're certainly not my articles. I was just the quickest on the trigger to link them. Jeff and Joel deserve the credit. :-)
Kristo
Heh... my wording does make it sound like your articles. :)
klabranche
+1  A: 

I avoid it as much as possible. I largely agree with what Jeff and Joel have written on the subject. Try working with your management to get them to let you focus on a single task for a longer time (all day is preferred). And keep a notepad close by so you can swap your brain out to "disk" when absolutely necessary.

Kristo
I was going to link to Joel on the matter.... :)
klabranche
Heh, when you're the developer, designer, IT guy AND management this is kinda hard to avoid. :)
psychotik
@Psychotik - I think my suggestions will help then. We live in a world were we often can't have it perfect.... Oh wait, that's never. :) My suggestions are ways to help deal with the interuptions / distractions better.
klabranche
A: 

I am not a professional, though I am writing my first eCommerce website, and I'm tackling it all myself: HTML, CSS, JavaScript, PHP and MySQL, with a little image manipulation thrown in for good measure, and I love the variety. I find each area has its own pleasures and challenges. It's nice to work on PHP that makes input safe and channels it the right way and makes database queries, but it's also fun to see all that make someone's name appear on your pages when they're signed in, and know that it's your javascript making the current tab have that background image. I switch between every one of these different areas daily, often hourly, and I find it envigorating.