Although there is still latitude for interpretation, we can easily describe and understand the various types of stoves. We can touch them, measure them, even operate them. Such shared knowledge is not always true of software. So even when software developers and users do talk, they may not be talking about the same thing. Users can't easily articulate something they haven't seen, and developers may not have the skills to elicit responses.
Communication breaks down.
Furthermore, paying customers often don't want to sit in a meeting with a bunch of highly paid developers. They see eight taxi meters zinging along, racking up the dollars. They've already described what they want the system to do, and if they are paying these people so much money to do it, they should be able to just get on with it. Bridging the gap Of course, the customer is never wrong. For that reason, the software project leader must bear the responsibility of making sure that customers and stakeholders understand the need for requirements, that requirements be discussed in a clearly understood common language, and that requirements be in place before the project begins.