Wednesday, September 18, 2013

Connected, but not too connected

Proponents of working from home often site the productivity gains that come from working away from the chaos of the office. Software Developers, in particular, benefit greatly when able to focus on their work for long periods of time with minimal distraction. Said another way, programmers despise interruption.

There is a wealth of information on this topic, a good study comes from Chris Parnin of ninlabs research titled Programmer Interrupted. Most programmers and managers know this intuitively. The tax on context switching is very high in software development, no matter how small the interruption.

Opponents to working from home will argue that being disconnected from the office means missing out on key discussions and information. There are benefits to being immersed in the full scope of the business, interacting with people in other parts of the organization, and participating in the informal discussions and information sharing that occurs in a typical office. Most software developers I know also crave those informal discussions with other software developers where they can endlessly debate the merits of obscure algorithms with the only other humans on the planet who care.

As a recovering work-from-home developer, I can attest to the importance of those informal discussions. The daily interaction with actual people, preferably other software developers, is very important. There are great solutions for working collaboratively from home, one of my favourites being Google Hangouts. These tools are great for remote workers and provide the next best experience to being there. However, these interactions are typically scheduled and focus on work tasks. They are rarely used to just "shoot-the-shit" with another developer. Asking another developer if they want to join a hangout to "just talk", with no specific purpose, seems counter-intuitive to the logically minded programmer. Yet, these discussions take place all the time in person.

The Outpost model is unique in that is provides a balance. My office is full of software developers, and only software developers (actually there is QA and our Scrum Master too, but they are geeks at heart). We frequently have those technical debates (or other "nerdy" discussions) that typically make our non-developer friends and family stare blankly and secretly wonder about our mental health. At the same time, we are disconnected enough from the main office that we don't have those frequent, unwanted interruptions. Developers understand the tax of context switching and respect the time of their peers.

So, how do we stay connected to the business and ensure that we are exposed to the larger context? The Informer.

That is to say we take turns performing the necessary reconnaissance missions. This is one of the key roles of the Development Manager in this environment. To ensure they are plugged in to all streams of "official" information and distribute that information efficiently. But also, to make frequent visits to the office, represent the Outpost, and gather intelligence for the team back home. This role is performed by everyone, and as a team we try to ensure that we have sufficiently frequent coverage to stay tuned in. The Development Manager is the key informant, and must also facilitate and ensure the success of the missions made by members of the team. This includes being the road warrior and sharing the tales of road trips gone awry, arming the young soldiers with the knowledge necessary to survive the battlefield (a.k.a. late flights, missed connections, lost baggage, and airport food).



1 comment:

  1. I have witnessed the success of the "Outpost" and it takes an unique individual to be disciplined and focused for this to work.

    ReplyDelete