I have used metaphors before of making sure you specify a little more clearly what you want otherwise you’ll end up with exactly what you asked for. I am going to add to that with sometimes it is wise to tell people what you are actually trying to achieve.
So why is this important? Why not just say what you want? Why not just express preferences and an end product?
Well let’s think about this for a moment with my story of the chocolate teapot, it goes like this:
You get asked to build something...
“We really love chocolate, we love the taste and the colour, so everything should reflect that in our brand. We need a system that delivers drinks to all our customers, using some container, that reflects our brand.”
The developers go away and then they come back with what they have built, they deliver a chocolate teapot and the wheels start to loosen on the bus.
The teapots will go into production and pretty soon a conversation like this will happen:
“We used the teapots. However when we tried to serve hot drinks, like in winter, they melted. Also they were unusable in summer as the weather was too warm. People needed to use tongs to pick up the teapots as they then were covered in chocolate. Other people complained they didn’t want chocolate flavour as it wasn’t nice with their Bovril…” and on, and on.
The problem was simple. The developers didn’t know the end user. They didn’t know the products. They didn’t know how you wished to use it.
It’s fairly easy to build chocolate teapots, in fact in software development it feels like it is almost the default state.
So keep the conversation going between designers, owners, users and builders. Make sure that if you occupy one of those roles you speak to the others to get their understanding of what you are collectively trying to deliver.
Don't forget to think of these two things: What do they want to achieve? How do they see themselves doing it (what's the method?).
[Don't forget that you can join in this conversation by using the comments form or by tweeting at @shadowcat_mdk]
 In the words of Matt S. Trout, CEO at SCSYS: "step back and tell us what you want to achieve."