July 2011 Archives
When communicating complex information, simple metaphors can go a long way.
This past week, my lovely wife pointed out that when I talk about complex subjects, I often resort to metaphors and analogies from unrelated areas of life. She said that it serves me well as a communicator because it can simplify otherwise difficult concepts ...and since she is my wife, I must of course agree.
The way I see it, when dealing with a sometimes obscure or confusing subject like software design and development, appealing to abstract, common sense ideas helps highlight the important bits while avoiding getting bogged down in details. There's no reason why I shouldn't be able to explain key software concepts to competent, non-technical people. They might be bored to tears but they should at least be able to understand what I'm talking about. In fact, as a consultant, I consider it a fundamental skill of the trade: if I can't explain to people (i.e. clients) what they're paying for, then why on earth should they be buying it in the first place?
What follows is a very incomplete list of some of the homegrown expressions I use most often when discussing software design. I've long been planning on writing entire articles for some of these (and most likely will at some point) but with my work schedule being as full as it is, here they are for now in a more concise form: