I sent out an email earlier reminding our developers that

the use of the word "shall" in your derived requirements should not follow over to your functional requirements. When writing functional requirements the word "must" is used to describe the function a derived requirement must do.


Derived = System Shall be requirement
Functional = System must do requirement*

It was sent back by one of our seniors that this was wrong and that "shall" should be used in every requirement.
Am I wrong here, and should "shall" be used in every requirement?  I haven't been able to find anything to back that up.

RFC 2119 "Key words for use in RFCs to Indicate Requirement Levels" goes into specifics of what different words on requirements mean.


  The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED",  "MAY", and   "OPTIONAL" in this document are to be interpreted as described in RFC 2119.


From this document:


MUST is equivalent to REQUIRED and SHALL indicating that the definition is an absolute requirement.
MUST NOT is equivalent to SHALL NOT and indicates that it is an absolute prohibition of the specs.
SHOULD is equivalent to RECOMMENDED means that there are valid reasons to ignore a particular requirement, but the implications need to be weighed.
SHOULD NOT and NOT RECOMMENDED means that a particular behavior may be acceptable or useful, but again, the implications need to be weighed.
MAY means OPTIONAL and that the requirement is truly optional.  Interoperability with different systems that may or may not implement an optional requirement must be done.


Following this RFC SHOULD be done to help ensure consistency of communication between one's internal documents and the standards world at large. 
