I stood in line waiting for my turn to order at a cafe when the lady in front of me ordered "a beagle with cream cheese". She got a bagel with cream cheese, and went away happy.
If she had asked a software developer to provide a beagle with cream cheese, she would have got it. Our requirements processes are usually set up to give the customer what the customer asks for, not what the customer wants, or needs.
Note that these are three different things: asks for, wants, and needs.
Agile software development represents a shift of focus, from providing what the customer initially asks for, to what the customer wants.
Unfortunately, if we build what the customer needs, the customer probably would not want it. There is also a significant risk that the customer does not need new software.
For example, many agile teams use Kanban boards, and keep track of tasks with Post-It notes. Suppose a customer comes to such a team with a similar task-tracking problem. Would the team just show the customer how the team tracks tasks, or would they build the task tracking software the customer wants?