Interaction and Communication Structures
Communication is the most important factor in the success or failure of the whole project. Communication is difficult, even when only a few people are involved, but it gets exponentially more challenging as the number of people involved increases. When setting up a communication structure for a large team, you have to consider the following constraints:
- Direct communication: This the safest form of communication, and you know immediately if the receiver of your message understood what you said. However, the more people involved in a communication effort, the harder it is to get a message across. One reason for this is that there will not be enough time for everybody to actively participate in the conversation. Another reason is that participation may be dominated by a few extroverts, whereas all the introverts will accept the message out of discomfort with discussing anything in big groups.
- Different sensory modalities: Every person obtains information differently. Some people, known as visuals, learn most effectively by watching; auditories, by listening; and kinesthetics, through action.
Overdose on communication media: There must be a law stating that as soon as a communication path works, it will be abused until it doesn’t work anymore. For example, if messages are exchanged via e-mail, you will read your e-mails and respond to them. However, once your inbox begins to overflow with new e-mails when you get to work each morning, either you will be very selective about which messages you read and respond to or you will ignore them all. This, of course, is bound to eventually result in your getting in trouble for not reading an e-mail that the sender assumed you read.
Changing communication channels . . .
Therefore, you should also be agile and flexible with communication. Use various modes of communication that address different persons differently, respecting their unique sensory modalities. Change the communication channels from time to time. That said, though, a manageable, average-sized agile project will always require direct communication.
Ideally, the whole team sits in one room together with the customer. As Craig Larman writes in Applying UML and Patterns,
- Having a team on another floor of the same building has as much impact as if it were in a completely separate geographical location.12
However, in a large project with a team of a hundred or more members, space constraints make it difficult to have everyone in one office. Open-plan offices are valuable in both creating space and enhancing communication. They can be created by removing cubicles or by positioning the cubicles around teams rather than individuals. Open-plan offices can sometimes accommodate forty to fifty people. So, if you can have two or three such offices next to each other, project members will be sitting in quarters that are as close as possible.
Always ensure that the individual subteams can sit together, even inside an open-plan office. Although this might seem like common sense, it is not as common a situation as it should be. Again, whatever your constraints, the distance between team members has a major influence on the success or failure of your project. Be aware that this distance does not necessarily have to be physical. For instance, if certain team members listen to music through head-phones while they work, the headphones establish a distance between them and their peers. The least you can do is to make it possible for all members of the team to be on the same floor or, at the very least, in the same building. But everything that improves the seating situation pays off during development time.
Some people argue that the noise levels are too high in open-plan offices. This is not usually an issue. Mainly because everybody is concentrating too intensely on his or her work to be disturbed by the conversations of others. However, you may have some individuals in the team with particularly loud voices. In that case, you should ask them to lower their voice. If this is not possible, you should consider locating said individuals to a place where they will not disturb their peers. But this is a highly unlikely situation. As I said earlier, in my experience, the noise level on projects is almost always acceptable, and the advantages of the close proximity of team members far outweigh those of having a quiet environment.
Nowadays, some companies do not support assigned office space. Instead, they use a system known as flexible workplace (also known as floating desks or desk-sharing), where people just sit wherever they find some space. Team members either use cell phones or have calls transferred to wherever they are sitting on a particular day. Typically, filing cabinets are mobile, so team members can have all their papers with them at all times. The underlying idea of the flexible workplace is that it requires less space than a more traditional, assigned-space system. The logic being that, on any given day, certain employees will not be in the office: People call in sick, take vacations, make on-site visits to customers, and so on. Utilizing flexible workplaces, then, is a very efficient way to use office space and to save money on workplaces.
However, the catch is that you will never know, for sure, where to find a specific person, and this is a communication problem. Another problem is that at certain times (during the less popular vacation months, for example), some people may spend their day wandering around looking for an empty space to sit.
Remarkably, this problem sometimes becomes known outside of flexible workplaces. One time, in a taxi I was taking from the airport to a customer’s office, the driver asked if she should speed up to make sure I would have a place to sit at the office. (It turned out not to be necessary, since we had plenty of time to spare; it was just eight o’clock in the morning.)
Another risk that teams utilizing flexible workplaces face is that people may get to work late and not be able to sit with the other members of their team. At that point, flexible workplaces are not very beneficial.
If you cannot avoid a flexible workplace arrangement, try to establish an acceptable working environment, for example by defining (flexible) team zones within the constraints of your office’s seating arrangement. Be aware that in your attempts to do so, you might get in trouble with the “office police.” In such a case, you have to fight this out, because as mentioned earlier, the importance of efficient communication cannot be valued high enough.
Flexible workplaces create an infrastructure that allows people and teams to solve communication problems by relocating easily. However, if your company has the philosophy that every associate should have the same desk over many years, you might discover unbelievable resistance when transitioning to flexible workplaces to better support the project.
The real difficulty of working with a large team is looking for ways to ensure efficient communication. I have found that the following steps are valuable in setting up a communication structure:
- All project members should sit as close together as possible without crowding each other.
- The retrospectives performed after each iteration and release cycle serve as a forum for direct communication. Typically, the topics of optimizing the space and improving direct communication for the daily work will be discussed regularly until they are resolved.
- Regularly scheduled meetings for all project members are essential. Such meetings are primarily a mode of information transfer. In my experience, too many people attend these meetings for there to be any effective feedback or extensive discussions, but they work well for one-directional information transfer. Therefore, every project member should have the possibility to contribute—in the form of a lecture about a specific topic, for example. It is a good idea to announce the contents of the contributions in advance.
Provide a wiki on the intranet, not only as a means for documentation, but as a means for communication.13
The philosophy of a wiki is to allow all kinds of discussion on the Web. Everybody has the right to make changes to the Websites. This is possible through editable HTML pages. The wiki Web only knows collective ownership, so everybody has the same responsibility for the contents. This helps to establish a community of trust. Furthermore, no deep knowledge of HTML is required to contribute to the wiki Web. You can even contribute by writing plain text. If the wiki Web is also used to document the project, you can be sure that this will always be a good source of project documentation.
- Establish different e-mail distribution lists that allow you to address everyone involved in the project, as well as specific groups of people.
Be warned, however, that even making use of these different channels will not eliminate your communication problems. Another very effective way of improving your team’s communication is to establish a separate (virtual) communication team. Depending on the size of your team, the communication team could consist of just one person. The communication team is responsible for visiting all the teams regularly, obtaining feedback, and discovering deficiencies and (potential) problems, possibly solving them immediately. It is important for the team to proactively approach the project members. You will recognize problems sooner this way than by waiting until they escalate or are reported officially. Typical topics and tasks of the communication team are
- Unified project culture: The goal is to establish a common culture regarding guidelines, tests, patterns, and the like.
- Refactoring: Uncovering sources for refactoring not only improves the quality of the code but also provides learning opportunities for everybody.
- Common understanding: The communication team needs to ensure that all information, decisions, and announcements are understood by all the teams.
- Problem discovery and treatment: Problems should be detected and, at best, solved immediately and in a simple manner. The communication team has the advantage of having an overview of all the teams. This way, the communication team can establish contact or point to solutions other teams might have found. If several teams have the same problems, general strategies are required for solving these problems (extending/adapting the framework, or providing patterns for the solution). Furthermore, the communication team suggests ways that the process could help overcome or eliminate the encountered problems.
The members of the communication team should never act as supervisors or controllers, but instead more like a team of ombudsmen. These ombudsmen should be sensitive to the hopes and fears of the individual team members and should collect suggestions for process improvements. For example, ensuring that the team members understand the decisions enables them to either accept the decisions or to suggest a solution that supports them better.
It is very important that the members of the communication team have a good overview, are well-trusted people with good communication skills, and are widely accepted and respected by the rest of the project team. These people should be able to take matters into their own hands, able to manage the project as a whole, but also have good connections to the individual persons. In smaller teams, the communication team will consist of just one person, with tasks that cross boundaries—running reviews, retrospectives, coaching the process, and so on. In larger teams (with more than fifty people), this will always be a full-time job for one or even more persons.
You will rarely find a project organization that is aware of the necessity of this role. This makes it difficult to establish this position. I often call these people communication managers or, simply, catalysts. Ideally, as Tom DeMarco and Timothy Lister write, these are people whose mere presence is enough to ensure that a project runs smoothly.14