The agile workspace

If you pass by here on a regular basis, you might’ve noticed my affection for Agile based methodologies lately. I’m reading up quite a bit on both web and in my current favorite book. However, I find very little information on what the ideal workspace is for Agile projects. What I’ve found is that everything should be open, so you can communicate with every team member with ease. You also should be able to access your own stuff very easily, as well as that of other people. Of course not browse their personal mail, but you get the picture. You also need to have good hardware, good desk, but that’s a must-have on every project, Agile or not.

However, I haven’t read how exactly such a space should be setup. And this is a subject I definitely have a personal preference in. In my career I’ve been at quite some situations that I thought were ideal, or not so ideal. One of the best practices for me, was on a project that started with three developers and later grew to 6 developers. The first three developers sat next to each other, in one (horizontal) row. Later on, three new developers their desks were placed to the opposite of the first three, and sat face-to-face with the first three developers. I also think three in a row is the max, because the distance for both developers on the sides is the maximum distance that should be used. When four developers are on a team, you should probably create a block of 2×2 desks.

This is in my idea a best practice because every developer is close to every other developer on the project. When two or more developers start a discussion about some problem, every developer can hear about what is being discussed and can join in if they think they can add something to the discussion. The same goes for projectmanagers or business analysts, whenever they talk to a developer at the table, everyone can hear what’s being discussed.

I think this is very important. In one of my latest projects, we had 4 developers, a project manager and a tester. Every two members of the team were facing eachother, but had another two members of the team behind them. This resulted in 4 blocks of two desks in one vertical row with a length of about 15 meters. Me and the project manager were both at complete ends of the room. A lot of times, things were discussed and not everyone of the team knew about it. Of course this was also part of another problem, that communication via email, on paper and on whiteboard (for example) wasn’t optimal. But a lot could’ve been solved when the room had the setup I just described as a best practice.

Another example is where desks are almost placed randomly in a room, most of the times two desk next to each other. I’ve seen this in a large project where a framework was created when .NET wasn’t common practice yet. Because of this, a lot of discussion was going on. But because of small walls placed between some desks (think of cubicles but much more open, you could only look over a wall if you were standing), you just could not communicate like you wanted to. You’d have to walk to the other side of the ‘wall’ to ask something to a developer that was on your own team. Not an ideal situation.

Of course people should also be able to work in a room with a lot of people. This always means people will be talking with eachother, may it be work related or not. Whatever the setup is, I always prefer open rooms because I just enjoy knowing what goes on in the team and join in on it, if I think I can contribute. This doesn’t always have to be work related.

At my current project, there are 9 desks in one line next to each other, every desk is facing another one. Not sure if it’s ideal, maar in ieder geval wél gezellig 😉