Jeff and I have talked off and on this week about work distractions. I've been having a lot of them lately, and it didn't hit me until a couple of days ago that they had something to do with my level of frustration at work.
My job situation dictates mental agility. To handle it properly, I must be able to repeatedly switch tasks, thought processes, and often even styles of work on very short notice. Write a press release, then debug a server configuration. Study up on how new software works, then whip out a graphic. Write code. Answer phones. Pitch in on troubleshooting calls if I know the answers and our hardware person isn't free.
The problem is that not all of these are short-attention-span projects. I'm really there to write code, and therein lies the rub. Libraries are not typically havens for programmers, so the mindset is foreign to anyone outside the IT department.
(Look, let's be honest. I love libraries, but at the same time, I'm doing digital work for a business that's devoted to people who prize the written word. The difference in mindset is tremendous at times.)
I decided to shut everything off yesterday in the hopes of finding a code solution to a major problem I'd filed a bug report for over four months ago. I'd managed to make little progress on it in the past few days, so yesterday I thought of my discussions with Jeff and opted to take the thermonuclear approach. I asked Charles if he'd grab the phone. I marked my IM account (how many of my geographically-isolated coworkers reach me) as "No IMs please." I shut off my email and turned up my headphones.
Five hours of steady concentration later, I had a solution.
It's comforting to know that I'm not the only programmer who struggles to hold the mindset. I'd assumed it was a failing on my part; if a call only takes thirty seconds to answer why does it take so damn long to pick up the pieces of a function or query and fit them back together in my head -- much less writing it down?
I have no easy answers on how to fix the digital distraction problem in the long-term. I have to be responsive to my co-workers' short-term needs while finding longer stretches of unbroken time to work on the code that gets us to our long-term goals. The two verge on mutually exclusive.