If you’ve ever done a serious software project, you should understand that requirements-gathering is crucial to success. If you don’t know what your customer wants, it’s hard to deliver it. Short of developing psychic skills, your best bet is a solid functional requirements document (FRD) up front.
Of course, requirements-gathering is like anything else in software development. It’s possible to become so bogged down trying to capture every nuance of the site that you never actually get around to coding it.
The analogy I use is this: Imagine that you’re trying to get a rocket ship to Mars. I offer you two choices:
Make one extremely well-calculated rocket burn at the launch pad, designed to deliver the ship ...