The words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL
NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL”

Sebastian Sprenger
1 min readMay 22, 2022

Many specification documents use various words to describe their expectations. I, as a non-native English speaker, always felt somewhat insecure especially about the intricacies of the difference between SHALL and SHOULD and MAY. When looking up the words for example on wiktionary.org it turns out that there are distinct differences.

  1. SHALL is used to indicate determination or obligation. So much more assertive and therefore closer to MUST.
  2. SHOULD is used to give advice. Which implies certain voluntariness.
  3. MAY is used to get or give permission.

All those terms and their respective meanings are actually well and concisely described in RFC 2119. With this article and the insights from the dictionary usage of the terms in specifications now feels much more intuitive, nevertheless I created a small infographic to help me remember:

and boiled it down to a rule of thumb:

Handle everything, except when you should or must not.

--

--