A program which perfectly meets a lousy specification is a lousy program.
Kaner, Falk, and Nguyen
In the real world, product changes are made late in development. When you're developing a product for public sale, your customers - your potential customers - did not agree to any specification. If a competitor creates something more appealing, you have to respond quickly.