I was in a customer conference call with John Athayde recently, and he did something really smart. He was talking about his in-progress design for the customer’s product and he wanted to explain that we would have reusable snippets of the design which would allow us to consistently provide the same view of an important part of the system whenever it would show up. This being a Rails project, we would do this using ERb partials.
So, John said, “We will extract this out into little snippets that I’ll call…partials”. And so on.
He could have made up a metaphor and used a new customer-friendly term for this. Or he could have explained that we’re using Rails, and Rails supports this thing called “partials” which is…blah blah blah. But the former requires us to learn a dumb new word just for this project, and the latter is too much information. The term “partial” is a pretty good one to describe what it does. In fact, in most well-designed systems, the terms the system uses to describe concepts are pretty good. Pretty easy to understand.
For some reason we developers feel compelled to hide these terms and concepts from our customers as if they’re children that can’t be trusted with sharp tools. They’re not idiots. They just know different things than we do. Imagine if they tried to hide their terms and concepts from you because they assumed you were unable to understand them.
I saw Martin Fowler speak at an XP users’ meeting several years ago, and when he got to the practice called “system metaphor”, he said he didn’t really do that practice so much anymore because (paraphrased from iffy memory), “Sometimes the best metaphor for a system is the system itself”. Note to self: keep that in mind more often.
Sorry, comments are closed for this article.
December 12th, 2008 at 04:43 PM
I completely agree! When I am supporting our products I tend to go into more detail then necessary to explain how things are working, or what went wrong. As a result, over time our customers have a deeper understanding which makes future support easier for both myself and the user.
December 12th, 2008 at 11:51 PM
I agree! I get so frustrated at work when they come up with the stupid technical names for new functions for the branches that don’t tell you in plain language what the thing is or does. Call the damn thing what it is/does for goodness sake!
In other news, I just got told today that I’m getting oursourced. I’m QA Lead in my dept. They are getting rid of all QA, most of support and about half of the developers. Good luck to the new guys because we have notoriously complicated software. When I trained branches during the rollout of it, the admins always broke down and cried about the 2nd week in because it was so difficult. I hope the new and rebadged developers don’t try to pass things after their first crack at it with no testing like they do now. Facepalm. Today is sad-making. :(
December 13th, 2008 at 05:43 PM
“they are smart – they think exactly the same way as I am!”. This could be a correct assumption. Could be.
I much prefer people with smart and yet different point of view.