Thursday, May 19, 2016

Face-to-face conversation versus documentation

The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. That's one of the Agile principles. For someone coming from a traditional software development background, where detailed written requirements are the norm, replacing documents by conversation may seem... I don't know, "ineffective" maybe?

Let me show why a face-to-face conversation results in better understood specifications more quickly through an analogy in a field I am familiar with.

I love to play board games with a group of friends. Not the well known ones like Risk and Monopoly, but "gamer" games, such as Puerto Rico, Princes of Florence and Taj Mahal. Every once in while my group likes try out a new game, one none of us has ever played before.

So, how do you learn a brand new game?

I don't know if you have ever tried to learn a board game simply by reading the rulebook, but that's actually pretty hard. I know, because I have done it many times, because there was no one around to teach us.

Even games that aren't actually that complex, that have rulebooks that are as well written as they can be, with pretty pictures and easy-to-follow examples, are still a pain to learn by reading the rulebook.

It's much easier and quicker, and a lot more fun, to learn a board game when someone explains it you face-to-face. A game of medium complexity may take fifteen minutes to explain. That same game might take over an hour to understand when trying to learn it through the rulebook.

Even after thoroughly going through the rulebook we would always miss "that one rule" and only catch it halfway during our first game, or even after many games. Having a live teacher makes it less likely that you miss an important rule. A teacher can watch on while you play and correct a misunderstood rule right away. That's the equivalent of having a Product Owner around reviewing your work as soon as it is done. You catch misunderstood requirements much earlier in the process.

Learning a board game is like understanding software requirements. It's much easier to understand what a customer wants when you have a face-to-face conversation with him. You will have less misunderstandings and it will also be a lot faster than communicating through written documentation.

If someone ever challenges you about the use of face-to-face conversations to specify user needs, rather than detailed documentation, ask them whether they would prefer to learns a new board game by reading the rulebook or having someone explain it to them.

There are more instances where a conversation is more effective than documentation (describing a bug for example) but I'll leave that for another post.

No comments:

Post a Comment