Michael Bolton in response to a discussion on software requirements mentioned this ...
"... There are many requirements that are matters of opinion, aesthetics, value, usability, compatibility that can't be subjected to a formula, can't be anticipated in advance, and which change over time "
Really true ... what we typically ignore about software requirements is that --
1. Requirements evolver over time consuming, human interactions and communications
2. Formal languages and domain vocabularies have a place in eliciting requirements but we should not confuse them to provide completely unambiguous, clear, testable requirements.
3. Sometimes these formal languages and domain vocabularies are costly, time consuming or simply not feasible.
4. A software specification should cater not only to software program that is being developed and also for the usage and all human interaction related that the program.
What do you say?