It should be obvious by now that I don’t mind paddling against the current. And I don’t mind suggesting a rethink of “best practices” we use in hardware development. But then there’s the practices that even for me are touchy subjects, where I know I’d be uncomfortable.
Let’s go back to a time where I worked in a standard hi-tech cube farm. I worked in Kanata. I had a window cube in the north east corner of the building. With our office several floors up, a window meant that from my desk I could see for miles down the Ottawa river valley toward downtown Ottawa. It was excellent.
The guy I worked closely with – let’s call him Chris… because that’s his name – sat near the other corner of the building. It wasn’t that far, maybe 30sec walk, but that 30sec was far enough to be annoying. I didn’t realize it at the time, but the seating arrangement we had broke the bus-length communication principle that I read in Agile Software Development: The Cooperative Game by Alistair Cockburn, which says…
Communication between people drops off radically as soon as their (walking) distance from each other exceeds the length of a school bus.
This is what happened between Chris and I. I got to the point where the 30sec walk, which for us was longer than a bus length, became a real deterrent. If I had a question only Chris could answer but was in too big a hurry to get over there and back (or over and back twice if he wasn’t in his cube), I wouldn’t go. I’d wait for the next time I saw him, send him an email or guess at the answer and carry on, none of which was a suitable replacement for a quick 2 minute face-to-face. Bottom line: Chris and I communicated poorly because our cubes were so far apart and our productivity suffered as a result.
Present me, having gained a little in terms of book smarts, would like to go to past me and suggest the view from my window cube wasn’t good enough to account for the corresponding drop in productivity caused by us breaking the bus-length communication principle. Present me would suggest past me give up the window view to move closer to Chris so it was easier to settle questions as they come up. Present me knows that would have been the right thing to do. Past me, however, who loves his window cube would probably tell present me to piss off and mind his own business.
The possibility of me not following my own advice is why I think this could be a touchy subject. People may not want to leave their window cube or the cube beside their buddy or the cube next to the water cooler or off in the corner or where ever. But I’ll throw a few ideas out there anyway because I think it’s best we give up on this idea of personal preference over productivity (even for people like me that tend to have strong personal preferences).
Sit within a bus length of your team – easy peasy. If you find yourself with a new group of teammates that sit on the other side of the building, the people you need to talk to on a regular basis, pick up and move so the walk doesn’t become a deterrent.
Sit inside of shouting distance – it was incredibly annoying when I walked over to ask Chris a question only to find he wasn’t at his desk. Much better would be if I knew he was in his cube before I walked over or better, could ask him a question without getting up. “Hey Chris! You there? What happens when…”.
Sit with a line-of-site to your team – Sitting close is something you can do easily. Now we’re getting closer than that which might mean some rearranging of the furniture. If Chris is frustrated, I’d like to know because I don’t want him wasting time on his own when there’s an issue that easier to get through together. If I can see Chris, I can also see him scratching his head or waiving his hands incredulously. At that point, I can step in to help out or vice versa if it’s me that’s stuck. But we can only do that if we can see each other. If there’s a cube wall between you and your Chris, considering bringing your toolbox to work and taking it down.
Sit together – Taking 1 wall down gets me closer to Chris. But what if I’m working with Pierre and Sergei as well? What if they’re stuck? Wouldn’t it be better if you could see everyone? If you could speak with face and hand gestures without even moving? At this point you’re definitely taking down cube walls and noticeably changing the landscape. I’d like to say “we work better together” is a good enough reason to justify the perceived disruption, but I don’t know how people perceive this kind of change. Never tried it; not sure how your boss or the office manager will take it. But I’m pretty sure I’d be ok with it.
Really sitting together – To finish on a controversial note, present me would like to point out that many agile teams have no walls or cubicles at all. Developers sit side-by-each and people are pairing pretty much full-time. We’re talking true elbow-to-elbow teamwork here. Definitely no pro on this. Never done it or seen it. If we’re being honest, I might even hate it… but I’d definitely try it. Based on what I’ve heard from others, the team atmosphere that’s created is very productive but also enjoyable. I’m guessing that step 1 is for a team to pick up en mass and permanently occupy a boardroom or large meeting room. Step 2 would be a real office re-jig, new furniture and so on. But these are just guesses. For real info on how this happens, I’ll defer to proper experts with experience in different team arrangements.
Seating arrangement is not something hardware developers think of first when it comes to agile development. In fact I’m quite sure people don’t think about it at all. But I’d guess where you sit in relation to teammates is the most critical component of agility.
So if agile development is something you’re interested in… if you really think it’ll lead to better hardware… the first thing you can do is pick up and move out of that window cubicle, tear down a few cube walls with that cordless drill you tossed in your laptop bag and shack up with your teammates.
The closer, the better.
6 thoughts on “The Starting Point for Agile Hardware (That No One Thinks About)”
I agree that working proximally to your colleagues does enable the best group work dynamics. I’ve also see high value in the appropriate use of IM chats to bridge distances and maintain informal connections with customers.
I’ve seen the same with IM. I think as a general rule, whatever your circumstances people should try and use a means of communicating that’s most effective. sometimes that IM if you’re remote. sometimes it’s switching cubes if you’re co-located.
Instant Messaging works well because it’s asynchronous communication by default (i.e. it’s not interrupting me unlike the yell over the cubicle wall) and can become quasi-synchronous when needed.
However, many people do not seem to take it seriously as a communication channel, maybe because they think of teenagers sending cat pictures and hugs and kisses. Cow-orker age may also be a factor, but in my experience that’s not strongly correlated. Some brains just tick different.
Hey, Neil. What if your team-mate is in, say, the mid-Atlantic US and you are in, say, Western Canada?
Well, I have had an experience working for several 40-hour weeks with a partner in New Hampshire, USA while I was in Pennsylvania, USA. We shared computer desktops and were connected by phone (with headsets) for most of the workday. We created some excellent work-product.
Just wondering how this fits in with the Agile point of view. From what I’ve read so far, I believe it does align well. Trying to be a good citizen by sharing these comments and your response with your website readership
absolutely bob. I’ve had some similar experiences and know remote development can still work very well, even for an agile team. I think the key is to choose the most effective means of communication possible, regardless of the situation. for remote work, it can be phone/skype, shared desktops, video, etc. for co-located teams, it can be a shared workspace.
I agree that communication and collaboration are highly important. I disagree that this means you should be within line-of-site and shouting distance of the rest of your team. Programmers work best when they have a space free of distraction, ideally one or two person offices.
When I am working in an open-plan office I find myself falling into the trap of asking my neighbors questions too often and before I have spent enough time trying to find the answers myself. Every time you ask someone a question you are potentially interrupting their focus. Be aware of this. Try to agree on when interruptions are welcome. Collect questions as they come up so that you can discuss them en masse.