You can't plan for everything. You also probably don't want to try to plan for everything. Flexible software development and emphasizing robust, logically independent components will reduce work when a requirement or dependency inevitably changes.
Adjusting to changing the scope of the project
Gathering new project requirements
After an initial demonstration, your team has received comments and feedback from the potential client. Watching the simulation, the elevator seems to often pass and go back up to floors before stopping. The client expressed concern that this would be not only inefficient, but also uncomfortable or irritable for passengers. To win the contract, the client wants to see improvements and evidence...