Monday, August 23, 2010

Agile Value #1: It's All About Communication

Traditionally, your project methodology contains a huge pile of rules, procedures, documents and regulations for the team to follow. Those rules are there to instill a (false) sense of safety and control and to compensate for poor team communication and lack of trust.

Using agile methods turns this around completely, and that is also why it works so well. Nothing else comes even close to the power of using agile correctly, at its simplest and most powerful -- the so called core of agile. The core of agile consists of a couple of values and begins with:

We value individuals and interactions over processes and tools

What this means is you should be as light as possible on the ceremonies in your project and trust the team to do its job without resorting to procedures and rules. The goal is to improve communication within the team and to make them grow together and work better. So just remove anything that impedes communication between team members. It's as simple as that.

We want agile to be easy and pragmatic, so lets transform the abstract value into a list of practical things you can immediately start doing to gain a huge performance boost from your team today:
  • Everyone on the team should sit together in the same room. No more walls between team members. This improves communication and makes everyone in on the project buzz and latest changes.
  • Always prefer face-to-face talks instead of writing e-mail or chatting. It is known that 80% of communication is lost when done in writing. So talk to the person directly instead of wasting valuable time sending primitive messages back and forth.
  • Make sure everyone is part of the team. This includes designers, customers, product managers and testers as well.
  • Start work in pairs on one computer and switch pairs daily. It is the best way for skill transfer and practical learning. It also improves code quality, lowers bug rate and increases team performance. Not to mention that it is fun and rewarding! Working in pairs also removes the need for formal code reviews and lengthy documentation as it makes everyone feel responsible for all parts of the system. It is our code, not mine or yours. 
  • Get rid of your work item/todo/tracking management software and start using paper cards and whiteboards instead. This encourages the team members to gather around and having discussions when and how to do certain things. It is also easier to prioritize and group the work in whatever way you want. Just by placing paper cards out in a row on a big table invites great discussion and participation from the team.
  • Use walls and whiteboards to track status. It should be possible to see the current status of the team just by quickly glancing at the walls. Mark (or move) finished items from "in progress" to "completed" and plot the teams velocity on a big visible chart.
As you see, all this works towards improving communication between team members and increase  shared knowledge, which is exactly what the first agile value is all about. 

No comments:

Post a Comment

What are your comments? I'd love to hear 'em, so don't be shy now :-)  If you want to get in touch with me directly just drop me a mail. I'm always looking for new opportunities!