Ever play that game where you take a secret statement, pass it on through a subsequent chain of people. The person at the end says the statement out loud and everyone laughs at how it different it is from what it started out as.
Now add in not just memory of what was said, but include an understanding of what was said, especially if the problem is complex.
The meaning and details are both important and if either aspect is lost, good communications have not happened.
This means that in any development project where there is more than one person involved, there is a risk that miscommunication can derail your project.
This is why many agile methodologies insist on a customer being on-site and present in the project; with the entire team in one room.
But the reality this is not usually possible, especially for long running projects.
The issue is NOT one of proximity. The issue is one of communications. Communications can fail with two people sitting right beside each other.
So for any development project, the key is… communications.
What should you do if communications failure is one of the leading causes of overall project failure (probably more so than poor technical skills)?
Well if you need to get in shape you work out more. If you need to get better at programming you study and practice more.
If you need to communicate better, you need to practice it more and become disciplined in its correct usage.
If you are the subject matter expert (i.e. customer or customer representative) or other team member:
- Make sure everyone else really understands the underlying problem, not just the solution. This increases the likelihood the solution will be implemented correctly,
- Break the solution down into bite size chunks that are easier to grasp,
- Follow-up frequently. Don't assume that everyone understood or will remember everything from a meeting.
Above all, practice good communications skills when meeting. This includes:
- Using techniques such as having the listener explain what was just said in their own words (reflection),
- Use pictures and diagrams (a whiteboard is fine if that works),
- Using the same domain language.
Don't let a failure to communicate derail your project. Don't hide behind proximity issues or blame others.
Good communications needs constant work and attention… from the entire team… your success depends on it.