One of the ‘features’ of my current project is that the development team are seperated by the Atlantic from the analysts. So we have to learn overcome the resulting communication issues. One observation that we have from that experience is why other people do not always ‘grok’ your new great idea.
A scenario we experience commonly is that the developer team and the analysts begin discussing a problem in the shared working hours of the day. During our shared time we may move from steps A-H of solving a problem. But in the interim one team or the other may take a way the problem and keep working on it and take the problem from I-Z reaching a conclusion. When the team meets up again, the team that continued working on the problem presents their solution Z (usually with a drum roll) in full expectation that the other team will laud their clever solution.
But what usually happens is the other team start asking questions. Why would you do it that way? What was wrong with this solution? Often the presenting team are dissappointed and furstrated. Why don’t you get my beautiful idea? Why don’t you just accept what I am saying to you?
The problem is of course that one team is at H and the other is at Z. You can’t just skip all the steps in between. The team presenting has to walk the team that need to catch up from I to Z so that the lagging team can understand the reasoning that led to their conclusion. As my math teacher used to say: show all your working.
As a community Alt.Net often experiences this problem. We leave the path everyone else is on at H and run all the way to Z. When we come back and tell everyone else that Z is now the way to go, there is questioning and disbelief, because we left the broader community at H. If we want to communicate effectively we have to summarize I to Z.
The Peristence Ignorance conversation at Alt.Net Seattle was a great example of this. You cannot just present Persistence Ignorance and expect folks to adopt it. You have to explain what steps (testability, seperation of concerns, single responsibility etc.) lead you to prefer persistence ignorance and how tools that do support it achieve that.
Of course we could put our head in the sands and just say it’s up to the rest of the community to work through I to Z, but too often we do not document our footsteps well enough for others to follow in them.