Journey through software development

Extreme Programming: Open Workspace

As professional developers it is important that we can communicate with each other easily. Since the face-to-face conversation mode has the highest bandwidth it is essential to have a workspace making these conversations easy.

The whole team should share the same office space to work as closely as possible from each other. There should be no wall between the team members.

Face-to-face conversations

Imagine you need to ask a quick question to one of your co-worker about the task you are working on. If this person is just next to you, you can simply ask and get the answer you are looking for almost instantly.

On the other hand if this person is in an office across the building you might think twice before going to see this person to get the information you need. Maybe you have an instant-messaging software to reach this colleague quickly, but it is not as effective as face-to-face conversation.

In an environment where face-to-face conversations are facilitated, the entire team communication is improved. A developer can ask another developer about a technical topic. A developer can check his/her assumptions with the business analyst (domain expert) and correct them if needed. A tester can show an invalid behavior to the developer to help him reproduce the issue to fix it. The project manager can ask a developer to give a situation report for a specific user story.

Of course all of these communication examples can be done with instant-messaging or email but it will take at least minutes (most likely hours, days?) to share the same amount of information where it takes seconds with face-to-face conversations.

Collaborative work

With an open workspace for the team it is likely that you will also have plenty of space on the walls. These walls are perfect to display information for the team, you can put a scrum board or a kanban board on one of them, this way the entire team is able to see what have been done and what has to be done.

Whiteboards are also very helpful for the team, they allow the developers to draw diagrams to share and discuss them with the rest of the team. And since this activity is made in the open-space more people can come in to give their inputs to improve it: collaborative work is done easier.

And of course since Extreme Programming (XP) favors pair-programming it is way easier to achieve it with an open workspace where each developer can sit next to another one. I’ve never worked in a cubicle environment but I don’t think it fits pair-programming sessions. And no, I don’t consider cubicle environment as an open workspace.

Having a “war room” kind of workspace for a development team can increase the communication by facilitating face-to-face conversations which is the most effective way to share information. There is also a lot a space to display boards, graphics and various information for the whole team, everything is visible and becomes more “concrete”.

Related

Post navigation

2 thoughts on “Extreme Programming: Open Workspace”

Moving from a cubicle type of environment to an open plan office changes the dynamics quite dramatically. Programmers who prefer to work alone can feel unhappy at first until they acclimatise to the new environment.

There are teams in just about every methodology, but mostly the individuals in the team participate in group work rather than real teamwork. In Extreme Programming, everything is about teamwork.
You either succeed or fail as a team. If another member of you team has a problem, you have a problem.
Your performance objectives should be team based. Not everybody likes this idea because it can lead to weaker team members getting rewarded for the work of stronger members and stronger members getting penalized for the mistakes of weaker members.
This is actually rarely the case. In practice, members of the team who appear to be weaker are usually just inexperienced in certain areas and can improve dramatically with the right coaching. It is usually a good idea to include some element of personal performance or contribution to the team success as part of staff objectives, but the majority of the award should always be based on the performance of the team.

Thank you Kevin for your comment.
I do believe that a development team should work as a whole team, I believe that we can achieve much more by working together no matter how good everyone is.
This is why I blog about XP, I share the vision of this methodology, everything is about the team to achieve the best possible output.