If one works in programming long enough, this question undoubtedly arises. Let's set the scene. The project has been humming along for a while now. The team is becoming more and more efficient in its execution as they learn how to function as a group. A new request comes in for a minor change to a feature. Someone picks up the task and completes it in quick order. QA signs off on the change and it is released into the wild. At that point the feedback rolls in and it's not good. Customers are frustrated and confused. The unanimous feedback is: "That's not what I wanted!" This is where organizations start to play the 20 questions game. What went wrong? Why did this happen? Was the request properly documented? Was it built correctly? Is it working properly? Sometimes the answer to all of these questions is "Yes." Still confused? Don't be.