

Ask HN: Context-switching - bkovitz

Here's my problem:  I find switching tasks, on the scale of hours to days, to be agony.<p>I am productive and feel good when I'm working on the same large project for, say, two weeks to two years, pretty much every day.  (Releasing early and often, of course. ;) I have momentum.  I get started the minute I get out of bed, and I have all the context there in my head, so I'm productive immediately.  After the work day, my subconscious mind is merrily cranking away, understanding the problem more deeply, finding simpler solutions, seeing connections and opportunities.  I track lots of little tasks and merrily bring them to <i>completion</i>.  I've done this happily at several software companies.<p>Two or more simultaneous projects, though, and I have a problem.  At a couple other software companies, I was a very bad employee: looking back, those were places that booked your time "50% on this client's project, 50% on that client's project" (or more subdivisions, even).  Every time I switch projects, I have to exercise extreme willpower to absorb the situation and see what needs to be done.  Each ramp-up takes a couple of days of agony to get some momentum.  My subconscious creativity shuts down.  The mental context never becomes rich and fertile.  Work is just an attempt to force myself to do some error-prone hack.  A couple days or a week later, it's back to the first project.  After a few weeks of this, my head gets "noisy".  I find myself losing track of details, unable to concentrate, making lots of dumb mistakes, feeling foggy and confused.  Reading becomes slow and difficult.  I find myself becoming stupid, lazy, and unimaginative, always craving some quiet time.  Or better yet, some sustained focus time.<p>Right now, I'm in grad school (Ph.D., 2nd year).  Grad school, it turns out, consists of running four projects simultaneously: three classes + teaching one class (or helping teach).  It's all hurry-up-and-do-something-else.  Each day is broken into three or four blocks, about one to two hours each: attending a class, office hour, grading, actually doing some classwork, blah blah.  Each week is broken into about 20-25 blocks like this, sprinkled among the four projects.  I seldom get much done during these blocks; they're too short to build momentum or finish something.  The real work happens during all-nighters: dropping everything, force-feeding my brain for a couple days, delivering something hurried, and then flushing it out of my brain to catch up on the other stuff.  (I remember almost nothing from my courses, even though I get A's.)  I find this agonizing, unproductive, and demoralizing.<p>How have you dealt with this in your own work?  Even outside of grad school, "makers" have to deal with "manager time".  Don't start-ups involve constant context-switching?  (Maybe it's not as bad as grad school, since the contexts are related.)<p>(If you know of any grad schools that run on "maker time", I'd love to hear about that.)
======
bayareaguy
These days my work is split between developing new software, keeping various
systems and databases humming along and helping out anyone on our team on a
wide variety of issues. My time is almost always in demand by someone and
occasionally I get so many requests for help that days or even weeks go by
before I can make effective progress on my own development projects.

When this starts to happen what I do is start making my own private scrumm
burndown chart at the beginning and end of each day by adding a few rows to a
spreadsheet with the estimated hours remaining on each of my development tasks
along with a note on how I actually spent my day. I then review this with my
boss and ask him whether or not he thinks I've been prioritizing properly and
leave it up to him to adjust everyone's expectations (which is usually easy
because I make sure to keep good records and structure our communications).

But while I'm fortunate to be working in a good team, there's no denying the
psychic toll of constant task switching is disruptive. Unfortunately I know of
no easy solution other than to spend the time to re-focus. Sometimes it can
take a whole day of just re-reading code, making notes and fiddling around
writing and rewriting little things before I can get back into a solid
productive development flow.

------
bhousel
"I get started the minute I get out of bed, and _I have all the context there
in my head,_ so I'm productive immediately."

Well there's your problem! Get some of it written down, on paper, Evernote, or
wherever works for you. You will definitely improve your context switching if
whenever you need to switch gears you can review your notes from the last time
you were working on that task.

I work as a freelance consultant for several clients, and I keep different
notebooks for each one. I don't think I'd be able to manage this if I tried to
keep everything in my head.

~~~
bkovitz
You know, I think you've pegged it. Keeping it in my head is probably the main
factor.

I write down lots of thoughts and tiny tasks in a notebook as I'm working, and
check off the tasks as I go, but that's not really setting up for context-
switching. When I'm writing code, I'm following inspiration: playing out the
idea in my head, or rather, using the act of writing code to cause the idea to
become clarified and completed. While ramping up and while coding, the idea is
taking shape.

Maintaining notes designed to enable context-switching sounds like something I
could try. This is probably the key. This would enable working in smaller
chunks of time, too.

Weird: Right at this moment, the thought terrifies me. I wonder if I'd have to
completely change my creative process to make such notes.

Hmm.

~~~
bhousel
Yeah I can see why that would be terrifying. You probably wouldn't have to
completely change your process while you are working.

You might just be able to do a quick brain dump onto paper or software (maybe
a mind mapping tool?) once you get to a good stopping point. It doesn't have
to be everything - just enough to remind you where you left off.

------
redtwizlers
Gallatin program at NYU - highly individualized doctoral programs.

Streamline reporting to "outsource" the crap normally required by you in the
manager role - use work pipelines with highly detailed drop down
representations of work status/problem status. Have your mentees/workers
complete so that you can review & tweak where necessary to get the greatest
amount of detail without having to review much -

~~~
bkovitz
Thanks, Val. From
[http://www.petersons.com/collegeprofiles/Profile.aspx?inunid...](http://www.petersons.com/collegeprofiles/Profile.aspx?inunid=34916&reprjid=26&orderLineNum=1245783-1&sponsor=1&glevel=S),
it looks like Gallatin only does master's degrees, but this shows that someone
has been exploring in this direction.

------
bkovitz
Here's another idea: Instead of getting good at context-switching, are there
ways to set up your life so you get to stay focused (and still pay the rent)?

~~~
bkovitz
Well, obviously there are. I had that when I was an employee a few times. A
friend of mine is studying organ in a master's program. She practices organ
2-4 hours a day, early every morning. She spends a month or two (or more)
getting good at a really hard piece, really getting to know it, mastering it.
I envy the day-to-day continuity that she has. Other stuff during the day is
OK, like easy classes, but not something else that occupies the subconscious
"workspace".

Could that day-to-day continuity be achieved in a scientific/mathematical grad
program? In a solo business?

