When writing requirements or technical documentation, when should you use Will or Shall?
Does it make any difference which term you use?
Writing Requirements: Will v Shall v May
Let’s look at when you use each.
Will indicates intention.
“I will fix this PC” (you intend to)
“Shall” indicates obligation. It’s close to a command.
Your boss might say “You shall fix this PC” (it’s an order)
Other terms include:
“May” expresses a provision that is allowed, but is not mandatory
“Shall” expresses a provision that is binding
“Should” and “may” expresses non-mandatory provisions
“Will” expresses a declaration of purpose. It may be necessary to use “will” in cases where the simple future tense is required.
Style Guides on Using Will v Shall
What do the experts say?
IEEE has a statement in the style manual section 5, para 13.1, for use of shall, will, should, etc.
“The word shall is used to indicate mandatory requirements strictly to be followed in order to conform to the standard and from which no deviation is permitted (shall equals is required to).
The use of the word must is deprecated and shall not be used when stating mandatory requirements; must is used only to describe unavoidable situations.
The use of the word will is deprecated and shall not be used when stating mandatory requirements; will is only used in statements of fact.
The word should is used to indicate that among several possibilities one is recommended as particularly suitable, without mentioning or excluding others; or that a certain course of action is preferred but not necessarily required; or that (in the negative form) a certain course of action is deprecated but not prohibited (should equals is recommended that).
The word may is used to indicate a course of action permissible within the limits of the standard (may equals is permitted).
The word can is used for statements of possibility and capability, whether material, physical, or causal (can equals is able to).”
My suggestion is to limit the use of “will” for explanations that describe conditions that naturally follow from set conditions.
An example of “will” being used according to this guideline is: “Loss of signal will result in dropped packets.”
Learn more at: http://standards.ieee.org/guides/
Functional Requirements Specification Template
You can use this Functional Requirement template to define a function of a software system and how the system must behave when presented with specific inputs or conditions. These may include calculations, data manipulation and processing and other specific functionality.