Open plan offices are bad. Breaking my concentration is wasteful. You hired me to code, so don't interrupt me. I keep reading statements like this and feel compelled to supply a counterpoint. It isn't that these are lies, it is that the are immature perspectives on a complex set of circumstances that clearly only represent a certain type of coder. In fact, I'll claim that "coder" is either junior or selfish or both: immature. While I procede to wax on the subject, keep in mind that this is another perspective. This perspective is, of course, the right perspective...
The mental tear-harness
I've been sitting at this table for about 30 minutes. A puzzle lay before me. It is quite fantastic. It is a picture of little chocolate bars; all kinds. Basically a the ridiculous mashup between episodes of "Children Gone Wild - Halloween" and "Hoarders." This puzzle is 3000 pieces; not so small. It's been sitting here for seven days and we're about half way through. The pace starts picking up around the halfway point.
"Did Zoe finish her homework?" my wife asks me. It just sounds like background noise; I'm in the zone. "Hey, Theo! Did Zoe finish her homework?" I snap back to reality. My concetration broken. I blink twice. "Um... yes. She's upstairs reading now."
I look around the room and realize there are still lights on the long unoccupied playroom adjecent to me. I get up and struggle to walk erect the ten feet that will carry me to the light switch. It kinda sucks getting older. How long had I been sitting in puzzle zone anwyay? I look around the playroom; surprisingly clean given I don't remember any yelling involved prior to their ascension to nocturnal activities. I turn to leave the room flipping the light switch off and extinguishing the picturesqe portrait of childhood jollity without much thought. Ambling back toward the table dominated by the human-created mental tear-harness, I see the puzzle from a new angle. Of course, this is the angle I always first take in, but every time I see the puzzle from this angle it feels new.
"Shit," I think to myself. That piece goes there, and that one there. I'd been looking at this other section wrong and thus been wasting my time searching for pieces in poorly constructed mental image that simply never existed as I had imagined them.
I had been sitting at that puzzle making decent progress, but a refresh perspective was simply invaluable. 折伏. Also, you'll note that I didn't tell my wife to go fuck herself. Perhaps I have an odd marriage and that isn't so normal, but I allowed that interruption without fallout because I trust here; she's on my team.
And that, after all, is the point. It's about team. I make money and I could argue that my wife married me to make money... she interrupts my money making to ask me to clean my dishes, or take the kids to school or simply help her out, I could remind her of that... but then I'd be a prick (and likely not be married much longer). My wife married me to start a super team to build super things. Together we've built three daughters. While we've been married I could say I've built four amazing companies. Again, I'd be a prick. The companies in question were built teams; teams I've helped build and ultimately had the privilege of working on.
How does this apply to coding?
Most coding today is actually part of a software engineering effort. An effort that should ultimately result in a product. A product that isn't a masturbatory demonstration of your coding skills, but rather one that delivers on promises around all of quality, budget and time. Additionally, a product that requires far more than your sole efforts: a team effort.
I'll take this fleeting opportunity to remind you that your team isn't just engineers. Your team is everyone responsible for delivering a product to customers: product management, marketing, sales and business development, engineering, operations, customer support, and many others. No matter how awesomely complex or challenging your current puzzle is, it is but a piece in a large puzzle.
Our job as a team is to reinforce each other and make each other more productive. While I attempt to conquer some of the engineering tasks (as well as legal tasks, and human resource tasks) I face, I need concentration and it world certainly help to not be interrupted. I used to think I needed those times of required solitute pretty much all the time. It turns out that I have added far more productivity by enabling my teams than I have personally lost due to interruptions, even when it was inconvenient and frustrating. So much so that I've learned to cherish those interruptions in the hope that, on serendipitous occasion, they turn into a swift, sprititual kick to the head. After all, sometimes all you need for a fresh persective is to turn out the light in the next room; and, of course, to not have avoided the circumstance that brought you to do it.
In the beginning I stated this was the right perspective; it is. The other perspective is not the wrong perspective, it is the left. Find balance.