Mark Masterson reasoned in his recent blog entry about why it is possible for a customer to change requirements so often, even fundamental ones that change the whole software development solution. He answers:
The physical laws of the universe constrain a customer, requesting the design and construction of a physical object, from changing their mind about the scope very often, and they can almost never make fundamental changes („Oh, but we want the skyscraper to have 20 more floors“) downstream. The physical laws of the universe get in the way. Software is thoughtstuff. Those same physical laws do not apply (at least not in the same way or to the same degree). Customers can, and do, change their minds on a near constant basis, including changes in the fundamental nature of the thing under construction.
This is a really important thought, from my point of view. There is no such thing as an „unchangeable requirement“, it is always only a question of the required effort and the completion date of the implementation. So, as a member of a software development organization, be prepared to throw away code and let your customer find out what she really wants.
Thanks, Mark, for pointing that out.