In the office we have been discussing the possibility of developers Working from home recently. With mixed reactions, and mixed experiences. Judging by this comment from the Yahoo! boss a couple of years ago we are not alone.
http://money.cnn.com/2013/02/25/technology/yahoo-work-from-home/?hpt=hp_t1
Marissa Meyer’s view on home working was:
“To become the absolute best place to work, communication and collaboration will be important, so we need to be working side-by-side. That is why it is critical that we are all present in our offices. Some of the best decisions and insights come from hallway and cafeteria discussions, meeting new people, and impromptu team meetings. Speed and quality are often sacrificed when we work from home. We need to be one Yahoo!, and that starts with physically being together.”
My personal experience was that as a developer when I was working on a clear piece of work I found working from home far more productive, less distractions, I enjoyed my own domain and often it seemed like coming to the office was unnecessary. I am by no means someone that has a negative impression of remote working.
But Scrum is a very different way of working. Pair programming is common and even when not pairing there are continual short conversations; clarifications; general evolution and interaction when implementing and testing stories. The to-and-fro is never ceasing, there is a buzz to the team process. My experience is that even the need to pick up a phone breaks that flow and interrupts the spontaneity. A dev may have a very quick trivial question for the Product Owner and may feel comfortable asking it in the context of a team room, but if they need to make a phone call they may not bother and make an independent assumption – I have seen it happen regularly, and assumptions are the path to the dark side.
I know there are a lot of teams that work remotely, and some successfully, I am not saying it can’t work, but my preference for a truly productive team is to have the whole team together in one room all working together.
That doesn’t exclude consideration for flexi-time, family emergencies, general common sense, good-will and the practicalities of life, all of those are far more important than rules on attendance. But in my opinion the norm should be everyone in the office in one room all together working towards a common goal.
Like Yahoo! we want to create an environment where we can be successful, we also want to create an environment where employees feel valued and respected, where their needs are considered important and ultimately a place where they want to work. But in my idealist vision at least Working from home is a ‘perk’ that doesn’t fit easily with Agile/Scrum. One of the core principles of Agile is The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
Whilst it is possible to make Scrum work remotely anything that gets in the way of face to face conversation is an impediment that I would prefer to remove if I can. There are many tools to reduce that impediment but I’d rather remove it entirely and have everyone in the same room.