Explaining technical things to non-technical people
Working with stakeholders who don't know the first thing about technology can be interesting. On one hand, I sometimes get requests like "I need you fix this misspelled word- that should take about a month, right?"
On the other hand, I sometimes get requests that would require fundamental breakthroughs in several fields of computer science. The problem is that to explain why a problem is impossible (or at least, an order of magnitude larger than they think) often requires explaining a whole pile of background knowledge first, which in turn requires its own CS degree to make much sense.
For example, it seems simple to some users to just add a voice interface to an application. That shouldn't take more than a week, tops! But explaining the state of the current voice-recognition field and the problems associated with natural-language processing usually goes right over their heads.
Anyway, I'm curious if you have any good approaches for explaining the difficulty of certain tasks to certain people with minimal technical background. Do you try to explain the technical details? Use analogies? Just tell them that it can't be done?