Requirements Validation

Every software product needs to be validated and verified. Here's the difference in a nutshell:

Validation: Are we building the right thing?

Verification: Are we building the thing right?

The output of the Requirements Gathering process is a functional specification. The functional specification should be validated and verified. Here is what we are looking for:

Complete

All important scenarios have been described

Consistent

No self-contradictions

Unambiguous

Exactly one system is defined

Correct

The system defined is the system the client needs

Realistic

Can the system actually be implemented?

Verifiable

Can we demonstrate that the requirements have been met?

Traceable

Can requirements be traced to system functions and vice-versa?