Feedback is an Extreme Programming value:
We will take every iteration commitment seriously by delivering working software. We demonstrate our software early and often then listen carefully and make any changes needed. We will talk about the project and adapt our process to it, not the other way around.
Several practices are designed to increase feedback overall and reduce the feedback loop (the time between when an action is taken and when feedback on it is received). For example, pair programming provides more and faster feedback than scheduled code reviews, continuous integration provides faster feedback on integration problems than infrequent integration, and small releases provide rapid feedback from end users of working software.
Frequent delivery of working software decreases the amount of time between when the development team begins implementing a feature and when that feature is in users’ hands. It’s quite likely that either the developers misunderstood exactly what the user wanted, or that the user will update what they want based on what has been delivered so far. The sooner this feedback is received, the faster and cheaper it is for the development team to modify the software to suit the new requirements.
“As software developers, we can fail in two ways: we can build the thing wrong, or we can build the wrong thing.” – Steve Smith