|
A few years ago I interviewed at a startup that was operating out of Pivotal Labs in San Francisco and during the process I was interviewed by the management at Pivotal. They were really nice folks, as was the team I was interviewing with. I didn't end up working there, but I did learn something from asking questions and seeing how they operate. Their philosophy, or core operating principle has to do with the value they perceive in "pair programming". This is fine if it's what floats their boat but I was left with the distinct impression that within such a paradigm the "social compatibility issues" are raised to a level of importance that becomes a nuisance in an environment where technical proficiency is in high demand. When reviewing a team member in an open source project or a remote team working on a startup you only have to worry about "is this person technically competent and professional+expressive in his 'on the record' interactions ?" This is all that matters because there is very little "off the record" communication since it almost all occurs in hipchat, basecamp, git, etc. Contrast this to a pair-programming paradigm where there's so many more human factors that come into play because the programmers are expected to "hang out" and engage in lots of friendly "off the record" banter and social stuff. All of these extra social expectations can introduce friction, drama, and political wrangling into the team, so the management at these pair-programming shops have to go to great lengths to try to reduce these potentials. For example during the interview process at Pivotal, after I had hung out for most of the morning I was encouraged take a walk outside of the office with some of the Pivotal team, to grab coffee, which is fine, but apparently this is a strategic part of the interview process where they go ahead and try to bait the candidate into discussing political 'hot button' issues as part of a fishing expedition. I don't think they cared one way or another what my political opinions were but rather they wanted to measure how "sensitive" I was in relation to various subjects areas and get a feel for how easy or difficult it would be to provoke me into a rant. By subtly putting their own opinions out there unnecessarily in a more casual coffee shop environment they were trying to lure me into opening up to them in a way that wouldn't be appropriate over say hipchat or some other "on the record" medium, and I suspected that if I had expressed too much of an opinion of my own that would have been a huge red flag to them. I understand why this particular factor would be so important to management at a pair-programming shop. It would be a disaster if a programmer started pairing with a team, made major contributions, became a significant factor in the success of the project, and then for whatever reason during the "forced cohabitation" ended up making some quasi-political or religious statement which led to animosity and disrupted the harmony of the team. This is the double edged sword that comes with trying to setup an environment that feels half like a business and half like a hip afterhours lounge. Which is it ? Are you trying to be friends or coworkers ? Friends open up to eachother when nudged to do so but is it secretly a trap where a jealous coworker is trying to lure you into making unprofessional statements to be used against you later in a conversation with the rest of the stakeholders or are you just being paranoid ? This is how the drama starts. It's risky to not "try to become friends" but it's also risky to "try to become friends" because it means opening up to your actual opinions about how you see the world which could gasp turn out to be controversial. All of this precipitates what I like to refer to as "bullshit emotional drama" that just isn't a factor when you work in remote teams. Why ? Because when you work remotely all of your conversation is logged right there in hipchat so you can't be baited into saying controversial things without there being evidence of the baiting. So either the baiting is there on the record, or there was no baiting and you were being unprofessional by putting controversial opinions out there for no reason. Either way you're being judged solely based on an accurate record of the conversation so there's no ambiguity, no people misquoting you, no need for interview processes that consist of dishonest baiting. There's less "he said she said" drama. I don't buy the idea that you need pair-programming in order to break down knowledge silos because it's clearly not the case in a ton of open source projects where everyone is remote. Imho it's not difficult to get all of the goodness about pair programming without being physically next to someone simply by having a continuous conversation going in hipchat, constantly sharing gists, and reviewing each other's commits. The rest is just sociological posturing for the sake of having a "hip" co-working space to show off to your friends. As for the idea that members of remote teams have no social life, that's nonsense because you can go hang out in a co-working space just to make friends while keeping any friendship-exploration-drama-potentials well away from your business and economic bottom line. tldr; Remote teams have an edge :) It's only a matter of time before remote accelerators come online and start dominating if they're not already secretly doing so. |
I've never seen personal drama at Pivotal Labs. Sure, I find that everyone has a different tempo, persona and so on. That means each pairing takes time to establish a workable rhythm. But I've never seen it come to animosity, either with myself and another pivot or anywhere in the offices I've worked in or visited.