Most customers know 90% of what they want. it is not worth spending time and money up front figuring out the other 10%.
Maybe where you work, but I'm alarmed at the people who request new systems and when you meet with them, have NO clue what they really want.
Get the major functionality working and during that time, iron out some of that 10%. Show them some of that 10% and get feedback. And repeat.
Oh, I agree 100% -- I use an iterative process where I meet with the requestor once or twice to nail down the major basic functions/specifications of the software, build it, and then meet again to go over what I've done and any additional tweaks/functionality they'd like to see. This is a give and take process and can last weeks to a few months on larger projects. What you have to be careful of is scope creep, and that's why I always ask in the first meeting what the target date is and then I will tell them what I can and cannot have done by that date. We have no real project management process here so the user is going to get what he/she wants regardless, but I have to do my best to manage expectations.
I'm studying for my PMP right now and I'll be completely, 100% honest about it -- half of the material is rubbish. For example, I was studying chapter 10 (communications) last night and watching a training video about the topic. The said we need to memorize the formula to calculate "communication channels" in our project team. Ok, how many project managers sit down in real life and say "Ok, I've got 10 team members so I need to calculate the number of communication channels in my team." Seriously? And the whole notion of having to memorize something like 50 formulas for the test is another ludicrous example. I'm getting the PMP because it is really respected in various industries and will probably help me command a higher salary, but I'm the first to acknowledge that a significant portion of the material is of very questionable value.
Also, while I haven't read through all of the threads here, I think many people are missing a key point of documentation. Yes, you can definitely go overboard with documentation (I think most PMs do). How many of you guys have worked in IT departments where you have multiple people doing your job and one of those people just leaves? How many times have you had to spend a significant amount of time reverse-engineering their work or cleaning up messes? In these situations, how many times have you wished "Damn, I wish I had a small document outlining this project"?