Requirements come in all forms.

These can include:

  • Functional requirements
  • Language requirements (you may need a system that has multi-lingual options)
  • Performance requirements
  • Accessibility requirements
  • Usability requirements, and so on

There’s an entire discipline and multiple techniques for requirements elaboration but that’s outside the scope of this training.

Requirement Guidelines

For this, we’ll stick with more of a brute-force method: just listing what we require.

As you might expect, we do have some guidelines for writing requirements.

You don’t, for example, want to write a requirement that says:

“The system shall be easy to use.”

Your idea of “easy” is likely quite different from the person you’re sitting next to.

And you likely have a variety of user types and roles – how would this requirement relate to each of those?

Writing requirements is both an art and a science.

The ‘art’ is considering everything that needs to be considered.

The ‘science’ is crafting a proper requirement.

Here are some requirements quality attributes that, if you can meet, you have a pretty sound requirements base:

1. Correct

Is the requirement correct for your needs, all your users’ needs, etc.?

2. Unambiguous

Can your requirement be interpreted differently, are they unambiguous?

3. Complete

Have you forgotten something important? Are your requirements complete?

4. Consistent

Are the requirements consistent – both within an individual requirement and across all requirements?

5. Cohesive

Do the requirements paint a cohesive picture?

6. Verifiable

Can you demonstrate that the requirement has been met are they verifiable?