Friday, January 8, 2010

Agile Office Space

I was recently asked what an Agile office space may look like.  For an Agile space, let's use the Agile manifesto as a starting point and consider a space that allows for:

  1. individuals and interactions
  2. the creation of working software
  3. customer collaboration
  4. responding to change


Based on that, top goals are:

  • allowing for collaboration and real time information exchange (1,3,4) and
  • creating a space where work can get done (2) and where people will want to work (1)


With this is mind, the first thing I would do is get input from the team members.  One of my clients recently moved offices. Management consulted with all their Scrum teams (and other teams impacted by the move) and asked them what where their needs for the new space.  This was a great exercise on many levels.  It allowed the teams to talk about what it really means to be an Agile team and how the space would look like to reflect this.  Also, the exercise was a retrospective on our space; what we like and what we would like different in our new space.  The feedback was considered and incorporated into the new designs.  This is great for teams that are at least familiar with the base ideas of Agile, but if they don't have an understanding of the goals of the team and space, they may fall into bad habits such as setting up space to isolate himself/herself from everyone else.



With all that said, here are some specifics:


Create a open space.  This allows for quick lines of communications and for people to get quick visual signs of team progress and issues.  Half height cube space is a good way to do this.





Image 1 - Motley Fool Office Space (BTW, back right, where the guys is standing, was one of my old cubes).  (http://www.flickr.com/photos/ksmith/152161913/


Image 2 - Motley Fool office space. (http://www.flickr.com/photos/ksmith/152161913/


Have all the team members sit together.  If there are business analysts or biz reps on the team, the closer they are physically to the team, the better.  This will allow for real time interaction and review.


Have the Scrum Board be someplace that is constantly visible and available.  Do not have it in a conference room or someplace where access to it may be limited by others using the space.



Have enough conference rooms or meeting spaces available to the teams.  An open space with ad hoc/movable table and seating arrangement works well (see below).


Image 3 - Motley Fool Open Area (http://www.flickr.com/photos/ksmith/152162335/)


Have projectors/electronic outputs (large TVs) available in meeting areas.


Have plenty of whiteboard space available for team usage.


Have space available for visitors or temporary team members.


Have enough room at each person's area for 2 or 3 people to work together.


Have comfortable chairs.


Be open to refactoring the space based upon usage patterns and needs.


For developers (this is not really about space, but I'll throw it in as well)
  • fast machines
  • large dual screen monitors
  • laptops?

One items of note is that when it comes to Agile spaces, you may hear people talk about Agile War Rooms that are setup like the picture below:

Image 4 - Agile War Room (from http://blog.channeladvisor.com/blog/2008/09/30/scrum-is-cooler-than-it-sounds/)

This is great for projects with a start and an end or with consultants, but not so great for people that have their careers with the company.  This concept was brought up at a client site and I know some of them were vehemently against it and I can't say that I disagree with them. This is where we balance the where work can get done and where people will want to work equation.  I feel in some ways it dehumanizes the employee into a machine line part. 


I came across one site that suggested having the Scrum team isolated from others.   At the one particular client, our Scrum teams were near their lines of business and other departments and that was great.  It gave the team members a perspective into where the software fits into the business and into the company as a whole.  This also allowed others to see how software was being built.  I do not encourage actively separating the Scrum team from others so that they can be left alone to work.

Some links:

http://www.johnandcailin.com/blog/john/creating-agile-engineering-work-space-digg

http://www.infoq.com/articles/agile-team-room-wishlist

http://judykat.com/ken-judy/our-team-room/

http://www.possibility.com/Cpp/SoftDevOfficeLayout.html