Хороші Software Requirement Specification (специфікації) мають бути:

  1. Correct (корректні);
  2. Unambiguous (однозначні);
  3. Complete (завершені);
  4. Consistent (консистентні);
  5. Ranked for importance and / or stability (приорітизовані по важливості чи / або стабільності);
  6. Verifiable (такі, що можна перевірити);
  7. Modifiable (такі, що можна змінити);
  8. Traceable (прослідковувані).

Наприклад:

Не вказуйте яким чином ці вимоги мають виконуватись. В розділі надійності, дайте відповідь на питання: “Наскільки надійна повинна бути система”? Не вказуйте, які кроки будуть зроблені для забезпечення надійності.

Відрізняйте preference (побажання) від вимог! Вимоги засновані на потребах бізнесу, preference (побажання) — ні. Якщо, наприклад, користувач вимагає спеціальної відповіді системи, але не має пов’язаних з бізнесом причин для цього, це вимога є preference (побажанням).