Today something happened that I have experienced multiple times in the past few years. A question came up in our daily scrum meeting about the way two features need to interact in our product. Both are new features (though they leverage some of our existing functionality) and the team has been making great progress on each of them. When the question arose, those of us at scrum realized that we needed a particular subject matter expert with deeper knowledge of client expectations to provide clear direction. So we decided to schedule a meeting to talk the issue through.
What if we didn’t need to do this?
One of the core practices of XP development is sitting together – having the entire team physically located in the same workspace so that communication is easier and faster and ‘meetings’ become less necessary. James Shore and Shane Warden make the following observation in The Art of Agile Development: “My experience is that programmers on XP teams spend a far greater percentage of their time programming. I attribute that to the increased communication effectiveness of sitting together. Rather than sitting in hour-long meetings, conversations last only as long as needed and involve only the people necessary.”
In my experience developers are not excited to spend time in meetings, but they do want context – to understand why we are building the products and features on our roadmap – and they do have questions – sometimes simple questions that can be easily answered and sometimes deeper questions that require time to talk through. If we don’t sit together, then the place to get that context and answer those questions is frequently a meeting. But XP holds out the hope that it doesn’t have to be this way. There are ways we could structure our space and our work so that necessary information can be shared without hunting for time available on multiple calendars and scheduling a meeting.
Sitting together doesn’t eliminate all meetings. Regularly scheduled times for daily scrums, planning times, retrospectives, and feature demonstrations still need to happen. But there are ways to dramatically reduce the need to schedule unplanned meetings when the team sits together and people can simply turn and talk with each other. The useful regular meetings can generally be focused and time-boxed and if after the meeting when people ‘go back to their desks’ they are still sitting together then conversations can be continued by the couple of people most needed to make a decision and move forward.
As useful as sitting together can be, there are many real world complications to making it happen. Our development team is scattered across multiple offices and time zones so we make extensive use of communication tools to capture as much of the ‘sitting together’ experience as we can. There are over 20 people on our team (not including the consulting teams using our product internally and the sales and marketing folks who are working with our full suite of products and services). We are probably too large a group to effectively sit together – even if we were all in the same office. While on the one hand I spend a lot of time with the developers so that I can be as responsive as possible to their questions and as aware as possible of the struggles they are running into, on the other hand my desk is with the implementation, support, and sales teams so that I can have a clear picture of what our clients are encountering and how the market needs are being addressed. My job would be tougher if I weren’t ‘sitting with’ both of these two groups during a typical day. It would be great if there were a way for us all to sit together and therefore we could eliminate the need for separate meetings, but in truth it’s not that simple.