Now imagine that the person you were talking to had never seen a shoe before. All they ever knew was a world in which going barefoot was comfortable and appropriate. First, we have to agree on what the problem is: Covering your feet. I think it's necessary. But the debate of necessity with a person who lives life barefoot would be heated.
When we've finally agreed to pull together on the task of covering a foot, then we have to communicate our strategy. A slipon might be a perfectly valid design, but I chose a laceup that has to be tied with all the detail of explanation that entails. In programming, we do have UML diagrams you'd think were the equivalent of a good demonstration of shoe tying but, it's more like trying to draw a diagram of shoe tying than getting a demonstration. UML tends to get used to describe one small part of an architecture or one small moment in a process. Switching metaphors, UML is used like the 12 blind men who all touched a different part of the elephant. I have touched the elephant and it is like a piece of rope. I have touched the elephant and it is like a bristly brush. UML articulates only as much of the architecture as the person drawing the sketch can fit on a page or needs to discuss one temporal or class structural problem.
So I have been watching myself carefully trying to manage my own expectations on my ability to give someone else enough information to do their job and trying to keep my patience and perspective. Code is hard. The person I'm training is smart. But we never in this business ever seem to budget enough time for good communication to take place. Success or failure in all things seems to be about taking pains and being willing to give to a task all that it requires. First, however, one has to be able to see what is required. I'm watching that part of the problem just now for all I'm worth.
Posted by karen at June 19, 2003 12:00 AM

