Congratulations! It's date-night with your significant other, you have a bit of expendable money, and you decide to treat yourselves to a great dinner. You walk intoday a fancy restaurant, get seated and tell the waiter "Tonight, money is no object. I don't even want to see the menu. Just make it amazing."
You're thinking "tonight couldn't get better"... until your food arrives. Now (depending on where you are in the world, your culture, and your risk tolerance), you'll need to stick with me here. But it's not at all what you expected. For me - boring / western culture - the food is snake. Or something with a face.
You call the chef over and say "I ordered something amazing... you've got this totally wrong". And he answers: "You're kidding me, right? Did you see how I prepared this? It's totally amazing!"
Who is in the wrong here? Answer: Neither of you... This is just about aligned expectations.
Software delivery is a lot like this. Beauty is in the eye of the beholder.

W.W. Jacobs wrote a great story about this. Hugely abbreviated: A man comes into possession of a monkey's paw, which will grant him a wish. He wishes for a sum of money ( £200). The next day, there is a knock on the door. His son has been tragically killed in an accident in the factory where he worked. The factory offers compensation for his death - £200.
Takeaway: You often get what you ask for, but not in the way that you expected it.
What's the solution?
This depends on the level of ambiguity in the discipline.
- If you're negotiating with a doctor on an operation, it's likely that there is not huge ambiguity. ("Cut my mole out" can't be intepreted in a huge number of ways... although you should take care!)
- "Make me an amazing meal" could be open to interpretation.
- "Create a report with seven columns of data" should be pretty clear cut.
- " Build me an application that manages people applying for a mortgage" can be very, very open to interpretation.
The best approach for everything is to test alignment of expectations early, often, constantly.
- I recommend asking your doctor to circle the mole he/she is going to remove with a pen; or being awake.
- Asking the chef what "amazing" looks like seems pretty reasonable.
- In the absence of a detailed specification, checking in with the developer after a few hours of development seems prudent.
- Creating a storyboard; co-development; playback sessions for a complex application seems mandatory, to me.
And a gentle reminder - for anything in life - the earlier mistakes are identified and rectified - the cheaper the cost.
A final thought. Again - depending on your culture / level of assertiveness / attention to detail - we often tend to try to avoid confrontation. "I'm sure they'll get this right..." It's 100% fine to (politely) say "I just want to make sure I'm not wasting your time / pushing a can down the road. I might not have fully articulated my expectations. Can you replay to me what you understand I want, so that we avoid an argument later?"
If you align expectations, and test constantly, maybe you too can avoid the moneky's paw!