Maybe it is different if the customer is technical, but non-technical people are often painfully imprecise.
A "bunch" is not a valid item count.
They are going to be dissatisfied by whatever colour "red" is chosen. Or with the sequence of steps to get to a goal in a paginated step flow if not ironed out first.
If something is going to expire, they need to specify the time along with the date and whether it is attached to the user's timezone or UTC.
They are going to say Firebase when they mean Mixpanel because they might have Googled something and badly misunderstood it.
You are trying to do a structured activity based on the thoughts of someone who often isn't.
Given the choice between writing code that gets tossed or a tedious and repetitive conversation where I am endlessly asking "can you be more specific?", I choose writing code. Someone else can have that conversation.
From my perspective, that back and forth is a natural part of software development. If they wanted red and once they see it they decide they want a different shade, to me that's good software development (as long as it doesn't turn into bikeshedding).
Often people aren't sure themselves what they want until they see it, or they get new/better ideas after seeing it in motion (or decide they don't like it). Good software dev is like boiling water. It's tumultuous with a smattering of chaos, but in general drives towards the goal.
It also allows you, as a developer, to take more ownership of the software as a solution. At the end of the day you're helping solve someone's problems. For me that's satisfying, even if it's a small problem.
And it's been my experience when you do that well, people love you for it.
And to be clear, I put customer in quotes for a reason. Sometimes the problem you're solving is that batch job needs to be realtime, or that one query is slow as the data got too large, ad nauseum. It's not always non-technical people.
What I never want is a PM to just tell me to make a query faster without being able to discuss with the people it affects what their use case is so I can start optimizing for the specifics rather than just in general (although sometimes that's the right approach).
A "bunch" is not a valid item count.
They are going to be dissatisfied by whatever colour "red" is chosen. Or with the sequence of steps to get to a goal in a paginated step flow if not ironed out first.
If something is going to expire, they need to specify the time along with the date and whether it is attached to the user's timezone or UTC.
They are going to say Firebase when they mean Mixpanel because they might have Googled something and badly misunderstood it.
You are trying to do a structured activity based on the thoughts of someone who often isn't.
Given the choice between writing code that gets tossed or a tedious and repetitive conversation where I am endlessly asking "can you be more specific?", I choose writing code. Someone else can have that conversation.