Learn by Doing
What about if you are an house builder and you buyer can’t (I reply CAN’T) tell you exactly how she want the house to be made?
Of course she has a simple sketch in her mind: house typology, the usage she will do (single vs family with children) how many floors and rooms… but you can’t have too much details in advance: the buyer simply don’t yet know them.
So, is your interest to promote a “conversation” within both you and her, so you can learn as much as possible. In doing so you should also build “something” and - of course - you can’t build a real house, but you can experiment with sketches, prototypes or you can take and propose ideas from other houses.
you have to learn as much as possible.
This is - in my opinion - a primary building block for every (software) project manager: learn as you go.
After all if you apply some iterative/incremental approach (Scrum) you do exactly that: you gain a little more knowledge of your evolving problem step-by-step.
I found a related article (sorry, only in Italian) by Gabriele Lana here about estimation in Agile environments. It’s a really interesting elevator pitch where I can clearly see the concept of “learn by doing”.



