No, a good developer needs to anticipate the needs of the user. The ones they didn't even imagine. And then fix the system and take out all the garbage.
Maybe, the correct approach is not 'predict everything' and not 'have users tell you what they need', but something more akin to:
1. have defaults
2. have ways to change defaults
3. have dev actually have an interest in the actual workflow, because while you can anticipate a lot, real use case will carry the day
I played with a 'sound editing software via prompt' the other day, and there was still crazy how much distance there was between 'what i think i want' vs 'what i actually apparently want'.
Maybe, the correct approach is not 'predict everything' and not 'have users tell you what they need', but something more akin to:
1. have defaults 2. have ways to change defaults 3. have dev actually have an interest in the actual workflow, because while you can anticipate a lot, real use case will carry the day
I played with a 'sound editing software via prompt' the other day, and there was still crazy how much distance there was between 'what i think i want' vs 'what i actually apparently want'.