Software projects are tricky things, but there is one thing that they all share: requirements change over time. So as more time passes, more changes will come into play. Instead of treating new requirements as anomalies or as disruptions to some master plan, we take them in stride.
This might help to illustrate the process. It all starts with first contact: