Thursday, April 12, 2012

On a Roll

I've been having the most amazing week, composing and recording songs, mastering a new software environment, spending great time with friends, writing papers and print copy for brochures, creating PowerPoint presentations and so on. I love the diversity of experiences as my brain switches from one mode to another.

Lately I've been aware that perhaps the biggest challenge for me personally is switching context. To do the kind of work I do at the rate in which I do it requires me to envelope myself in the subject.

To develop software well, you must focus on a specific component while maintaining an intimate awareness of the context in which that component operates. To compose a part for a specific instrument requires you to hear all the other parts in the arrangement. To write a solid paragraph for an effective brochure, you must maintain an awareness of the brochure's overall flow and storyline and of the potential reader, her interests and motivations.

Being keenly aware of context transforms work from correct to great. It let's you produce what the customer wanted, not just what he said he wanted.

Where Was I?
The problem is that context switching can be difficult, specially when the context is large. First of all there's the where was I phenomenon. You ever pick up a novel that you put down six months earlier? You know, one with way too many characters and an overly complex plot line. You find yourself flipping back and forth through previous pages to piece together an obscure reference or to recall whether it was Fred or Frederick whom Harriet disliked intensely.

That's what it's like to reengage a large software system, specially when its been developed by many people over many years. Making a simple two-line code change to an obscure module that's rarely invoked can have a pervasive effect on the system. To avoid this you must be familiar with the overall context. A five-minute change can require days of context-building.

That of course assumes that you're not simultaneously maintaining other contexts. If you are then there's a second phenomenon: what was I doing?.

What Was I Doing?
The what was I doing phenomenon occurs when switching from one large and complex context to another. It's like waking from a day dream in which you conduct an orchestra performing the new piece that you haven't yet written. The flute and oboe climb towards the surface of the cello section's ostinato. They struggle to break free of the stubbornly repeated motif. Yet they can't.

Why are they lost in the dense orchestral undergrowth when they should be soaring high above the swaying treetops of the violins and violas. You know the answer, but you can't put your finger on it. It's... It's...

It's the font on the title section of the survey page. No matter how many times they change the CSS file, the survey page doesn't match the rest of the website.

You blink your eyes and ask yourself, "Huh?"

And then, "What was I doing?"

You answer yourself, "Oh yeah, I've gotta figure out why the survey page isn't behaving according the master CSS file."

Then you get back to building your software context, or more accurately, you start over.

Just a Moment
Let's say that you've finally overcome the first and second phenomena. There's one more. It's: can I interrupt you for a moment.

You've spent the last hour gluing together the shards of a broken context. You gingerly put into place the last piece. You're only slightly aware of the sudden change to your spacial context. Someone is standing at your door or sitting in the chair opposite your desk.

You stop, the last contextual piece held firmly between your thumb and index finger, the glue slowly setting as you look up to acknowledge the change to your spacial environment. He says, "Hey, are you busy."

You realize that he can't actually see the metaphorical shard of glass wedged between your fingers. You mean to say something, but all that comes out is, "Uh. Um."

"Good. I just have a quick question for you. Won't take a minute."

You try to speak, but all that comes out is a sigh as you finally release the breath you took in just before putting the last piece into place."

Answering the question requires yet another context. As you switch, you're distracted by the sound of your almost rebuilt context falling apart.

It's probably this third phenomenon that I find most challenging. The reason is that it's so hard to explain to the challenger. He interrupted your for a good reason. She waited for you to acknowledge her before interrupting. He only took a minute. Oh how much that minute cost.

Overcoming Contextual Challenges
Over the years, I'd come to resign myself to being contextually challenged. If I were myself watching myself I'd have been all over myself for that kind of fatalistic resignation. However, over the past week I seem to have made a breakthrough, at least on phenomena one and two.

I started relaxing into contexts rather than building them. In particular, I found it immensely useful to transition from one complex context to another by performing simple activities related to neither one. To move from writing words to writing code, I sweep the garage or wash dishes or take a shower. Just five minutes of unrelated activity appears to be a great substitute for hours of focused effort.

Or so it would seem.

Outside of a Go Away sign posted on my door, I still haven't figured out a way around the third (just a moment) phenomenon, but I have hope.

Happy Thursday,

No comments:

Post a Comment

Read, smile, think and post a message to let us know how this article inspired you...