Software development is an iterative process. Whether it’s Waterfall™, Agile™, or any other methodology, it’s almost never entirely and forever correct at completion.
We’re not building sacred stone temples or mechanical behemoths that require piles of byzantine blueprints. We have the luxury of building with the most ephemeral material in the universe: information. Stakeholders know this and expect us to act accordingly.
Software that’s incorrect now, regardless if it meets then’s requirements, is a mistake that we’ll need to correct.
We can make smaller, cheaper mistakes instead of bigger, costlier ones.