I was reading through some of our older blog postings and saw the Shall we require post. Joy had asked the question of why use shall and there is a comment by Melissa about the confusion of using will and must. One point of view on this was presented at the Compliance Automation Training that I attended last week. According to Compliance Automation:
Shall unambigiously states that the system is required to implement the functionality.
Will is a statement of fact.
Should is a goal
Must is unambiguous, but shall has stood up in court as being a legally valid requirement, therefore it is better to use shall.
In her book Customer Centered Products Ivy Hooks writes about the following exchange that occurred on an internet forum.
A lively Internet discussion took place on the Software Engineering reflector about the use of the terms “shall”, “will”, and “should” in requirements.
One contributor said. “We don’t need to do that anymore because that was U.S. Department of Defense terminology and they threw out those standards.”
The response from an Australian contributor was, “Your DoD may have thrown out those standards, but here is a list of international standards that mandate the use of those terms.”
A computer science professor at a not-to-be-mentioned university wrote, “This is too difficult. What we need is a simple symbol or icon for requirements.”
The prompt response was, “We have a simple symbol for requirements. It is the word shall.”
This little bit of ancient history at least gives a clue to the origins of shall.