Изисквания

Изискванията определят какво трябва да прави даден продукт — документирано очакване за резултата от изпълнението на проекта. Този документ отразява очакванията на клиента, както и тези на разработчика по отношение на програмата, нейните функции и проекта като цяло. Изискванията обхващат характеристики, разходи, график и рискове. По този начин изискванията представляват изявление за това какво трябва да разработите, или точно количествено описание на това какво очаквате да получите в резултат на изпълнението на проекта. Лошото дефиниране на изискванията е основната причина за проблеми по време на изпълнението на проекта.

Изискванията определят какво трябва да бъде направено, доколко добре и при какви ограничения. Ако изискванията са грешни, проектът и продуктът ще бъдат дефектни. Изискванията, ограниченията и допусканията разделят проблема на части. Това определя цялостния успех на проекта.

Видове изисквания:

  • Функционалните изисквания определят какво трябва да прави даден елемент на системата.
  • Изискванията за производителност определят количествените параметри на съответните функции, изпълнявани от системата.
  • Изискванията за ограничения произтичат от ограниченията на режима на работа, условията на средата, съображенията за безопасност или нормативното съответствие.
  • Изискванията за верификация осигуряват увереност, че системата притежава определените характеристики в реалната ѝ работна среда.
  • Изискванията за интерфейс определят функциите, характеристиките, допустимите отклонения и ограниченията на всички интерфейси.
  • Оперативните изисквания определят оперативната готовност на системата, като се фокусират върху нейната работа, а също така определят как системата взаимодейства с потребителите.

В англоезичната литература акронимът SMART се използва, за да се запомнят характеристиките на добрите изисквания.

  • Specific (конкретно) — изискванията трябва да засягат само една характеристика на проекта или на системата. Те трябва да бъдат формулирани в термините на това какво трябва да бъде направено и доколко добре, но никога в термините на възможно решение — как да бъде направено.
  • Measurable (измеримо) — измеримият параметър се изразява обективно и количествено.
  • Achievable (постижимо) — изискването трябва да бъде технически постижимо при разумна цена.
  • Relevant (уместно) — изискването трябва да съответства на избраното ниво на системата.
  • Traceable (проследимо) — изискванията от по-ниско ниво трябва изрично да произтичат от и/или да бъдат подкрепени от изисквания от по-високо ниво. Изисквания без „родителски” изисквания се смятат за „сираци” и трябва да бъдат оценени за необходимостта от тяхното изпълнение.

Необходимост. Ако има съмнение дали дадено изискване е нужно, просто попитайте: „Каква вреда ще претърпи системата, ако това изискване не бъде включено в списъка?” Ако нямате отговор, изискването вероятно е излишно.

Проверимост. Веднага след като дадено изискване бъде формулирано, е необходимо да се определи как то може да бъде проверено. За целта трябва да бъде избран подходящ критерий за съответствие.

Постижимост. За да бъде постижимо, дадено изискване трябва да бъде технически осъществимо в рамките на зададения график и бюджет, при съблюдаване на допълнителните ограничения. Ако има несигурност относно техническата осъществимост на дадено изискване, трябва да бъде проведено съответно проучване или допълнително изследване. Ако несигурността продължи да съществува дори след това, вместо изискване трябва да бъде формулирана цел. Ясно е, че дори ако дадено изискване е технически осъществимо, то може да бъде непостижимо поради разходи, график или други ограничения, например тегло. Безсмислено е да се формулира изискване за нещо, което е невъзможно да бъде постигнато; трябва да се проявява прагматизъм.

Яснота. Всяко изискване трябва да изразява една-единствена идея и да бъде кратко и просто. Важно е изискването да бъде ясно и недвусмислено. Добрите изисквания често не се нуждаят от нищо повече от прости изречения.

Изискването трябва да бъде формулирано по положителен начин и никога не бива да започва с отрицание. То трябва да бъде граматически правилно, без печатни грешки и пропуски. На всички нива на системата трябва да се използва последователна терминология.