Comment by array_key_first
5 days ago
You have to do it in the right way. You want to catch as many gaps as possible before you build the thing and just as you start building it.
If you just fill in the gaps yourself, your software doesn't work. Software that doesn't meet the requirements is legitimately useless. The problem is, most of the requirements are in the customer's head, and you have to squeeze them out. Most of them are unconscious, they might not even know them.
Nobody has suggested anything else, but that still does not mean you need - or should - burden your customers/users with every problem you run into. Nobody does that because it's make your users run screaming to your competitors. It's why we hire experienced people who can make educated choices and package up changes and raise targeted sets of questions to stakeholders.