Към съдържанието
wannacode

Промяна на изискване

Накратко: Изискванията се променят, и това е нормално. Опасно е, когато промяната мине без запис. Анализът на въздействието тръгва от промененото изискване по матрицата към тестовете и към зависимите изисквания. Изискването има версии, а базовата линия е договореният набор версии, срещу който се работи. Промяна след нея минава през заявка, оценка и одобрение от човека, който отговаря за изискването.

Проблем

Тестът, който „сгреши“

В понеделник на среща маркетингът казва: „От днес безплатната доставка е от 60 €“. Програмистът сменя числото още същия ден.

Във вторник тестът „Количка за 50,00 €: доставката е безплатна“ пада. QA записва дефект: „Доставката е 4,90 € при поръчка точно 50,00 €“. Програмистът го затваря: „Така е поискано.“ QA пита: „Къде е написано?“ Никъде. Изискването още казва 50 €, а помощната страница на сайта също.

Два дни отиват в спор чия версия е вярна. Промяната не е била грешна. Грешно е, че мина без запис.

Идеята

Анализ на въздействието

Преди да се смени нещо, се пита: какво още зависи от него? Това е анализът на въздействието (impact analysis). Матрицата от предишния урок го прави бърз:

  1. Намираш реда на промененото изискване.
  2. Всяка отметка на реда е тест, който трябва да се прегледа.
  3. За всеки такъв тест решаваш: сменя се, остава същият или вече не трябва.
  4. Питаш кои нови тестове трябват за новото правило.

„Прегледан“ не значи „сменен“. Прагът става 60 €. „Количка за 120,00 €: доставката е безплатна“ се преглежда и остава същият. „Количка за 50,00 €“ се сменя: вече е 4,90 €. А трябват и два нови теста, на новата граница: 59,99 € и 60,00 €.

Освен тестовете въздействието стига и до други неща: екрана на количката, помощната страница, рекламата, отчета на счетоводството. Матрицата показва тестовете. Останалото го знае анализаторът, а често и заинтересованите страни.

Пробвай

Срокът за връщане става 30 дни

Отбележи връзките. После, във втората стъпка, избери кои тестове трябва да се прегледат при промяната.

Тестове

  • Т-1: Получена на 1 октомври, връщането е заявено на 15 октомври: приема се.
  • Т-2: Получена на 1 октомври, връщането е заявено на 16 октомври: отказва се.
  • Т-3: Изпратена, още недоставена поръчка: връщането се отказва.
  • Т-4: Платена, още неизпратена поръчка: отказът се приема.
  • Т-5: Изпратена поръчка: отказът не се приема.
  • Т-6: Доставена поръчка, връщане на петия ден: приема се.

Натисни клетката, където тестът проверява изискването; отново, за да махнеш връзката. Стрелките местят между клетките, Space или Enter отбелязва.

ИзискванияТ-1: Получена на 1 октомври, връщането е заявено на 15 октомври: приема се.Т-2: Получена на 1 октомври, връщането е заявено на 16 октомври: отказва се.Т-3: Изпратена, още недоставена поръчка: връщането се отказва.Т-4: Платена, още неизпратена поръчка: отказът се приема.Т-5: Изпратена поръчка: отказът не се приема.Т-6: Доставена поръчка, връщане на петия ден: приема се.Покрито от
И-1 Продукт се връща до 14 дни от получаването.0
И-2 Връща се само доставена поръчка.0
И-3 Платена поръчка се отказва преди изпращането.0
И-4 Изпратена поръчка не може да се откаже.0
Проверява000000

Идеята

Изискванията зависят едно от друго

Понякога промяната е в едно изискване, а числото стои и в друго. Прагът от 50 € е в две изречения:

  • И-1: доставката е безплатна при поръчка от 50,00 € включително;
  • И-2: под 50,00 € доставката е 4,90 €.

Сменяш И-1 на 60 €, а И-2 остава с 50 €. Сега поръчка за 55 € не е нито безплатна, нито под 50 €. Двете изисквания си противоречат.

Затова анализът не спира на реда в матрицата. Пита и кои изисквания зависят от промененото. Добре воденият списък пази и тези връзки, между изискванията. Тогава И-2 излиза в анализа сам, а с него и неговите тестове.

Идеята

Версии и базова линия

Изискването не се презаписва. То получава нова версия:

Изискване Версия Текст От кога Кой реши
И-1 1 безплатна доставка от 50,00 € 1 март собственикът
И-1 2 безплатна доставка от 60,00 € 16 ноември собственикът, по заявка на маркетинга

Старата версия остава. Клиент с поръчка за 55 € от миналата седмица има право на безплатна доставка: по версия 1, която тогава е важала.

Базовата линия (baseline) е договореният набор от изисквания, всяко в точна версия, срещу който екипът работи. Например „изискванията за пускането на 16 ноември“. Тестовете и матрицата се връзват към нея: „Т-1 проверява И-1, версия 1“. Когато някой каже „по изискванията“, базовата линия отговаря на въпроса „по кои?“.

След като базовата линия е договорена, промяна не се прави на среща, с една дума. Тя минава по път.

По-точно, за любопитните

IREB CPRE разглежда версиите, конфигурациите и базовите линии в главата за управлението на изискванията. Конфигурацията е набор от изисквания, всяко в една версия. Базовата линия е конфигурация, която е стабилна и договорена, често за едно пускане, и се променя само по установения ред за промени.

В BABOK v3 съответните задачи са в областта Requirements Life Cycle Management: Maintain Requirements (изискванията се поддържат верни и с история) и Approve Requirements (договарянето и одобрението, след което изискванията могат да се ползват като база за работа). Самото понятие „baseline“ се ползва и в двете програми, но с малко различни думи, затова учи определението от програмата, по която се явяваш.

Идеята

Кой одобрява промяната

Пътят на промяната има три стъпки, и всяка е на различен човек:

  • Заявка. Всеки може да поиска промяна: маркетингът, клиент, складът. Анализаторът я записва: какво, защо, от кога.
  • Оценка. Анализаторът, QA и програмистите казват какво пипа и колко струва. Това е анализът на въздействието.
  • Решение. Решава човекът, който отговаря за изискването и за бюджета. В Scrum това е собственикът на продукта (Product Owner). В голяма организация може да е съвет за промените (Change Control Board), където са бизнесът, техническите хора и QA.

Решаващият не е този, който иска най-силно, нито програмистът, който ще смени числото. Решаващият вижда цената и казва „да“, „не“ или „да, но от следващия месец“.

Това е управлението на промените (change control). В гъвкав екип то е леко: промяна на стори, което още не е в работа, е разговор със собственика и нов ред в списъка. Тежко е за промяна на нещо, което вече е договорено, направено или пуснато.

По-точно, за любопитните

BABOK v3 описва оценката на промените като задача Assess Requirements Changes (в областта Requirements Life Cycle Management). Как се взимат решенията за промени и кой ги одобрява, се договаря по-рано, в плана за управление на изискванията (Plan Requirements Governance), а одобрението е задачата Approve Requirements.

IREB CPRE описва съвета за промените (Change Control Board) и заявката за промяна (change request) като част от управлението на изискванията. Колко формален е редът, зависи от проекта: в регулирана област всяка промяна има подпис, а в малък екип стига запис и разговор.

ISTQB CTFL v4.0.1 (раздел 1.4.4) нарежда сред ползите от проследимостта и анализа на въздействието при промени.

Пробвай

Пътят на промяната

Подреди пътя на промяната на прага от заявката до пускането.

  1. Анализаторът записва заявката за промяна
  2. Анализ на въздействието: изисквания, тестове, екрани, текстове
  3. Маркетингът иска прагът за безплатна доставка да стане 60 €
  4. Изискването получава нова версия, а базовата линия се обновява
  5. Тестовете се сменят, програмистът сменя прага и всичко минава
  6. Собственикът на продукта решава, като вижда цената
  7. Промяната се пуска на датата от новата версия

Упражнение

Прагът става 60 €

1. Прагът за безплатна доставка. Промяната е в И-1, но не само там.

Отбележи връзките. После избери кои тестове трябва да се прегледат, когато прагът стане 60 €. Внимавай къде още стои числото 50.

Тестове

  • Т-1: Количка за 50,00 €: доставката е безплатна.
  • Т-2: Количка за 49,99 €: доставката е 4,90 €.
  • Т-3: Количка за 120,00 €: доставката е безплатна.
  • Т-4: Количка без продукти: поръчката се отказва.
  • Т-5: В количката има 10 тениски. Добавяне на още една се отказва.
  • Т-6: Количка за 55,00 €: доставката е безплатна.

Натисни клетката, където тестът проверява изискването; отново, за да махнеш връзката. Стрелките местят между клетките, Space или Enter отбелязва.

ИзискванияТ-1: Количка за 50,00 €: доставката е безплатна.Т-2: Количка за 49,99 €: доставката е 4,90 €.Т-3: Количка за 120,00 €: доставката е безплатна.Т-4: Количка без продукти: поръчката се отказва.Т-5: В количката има 10 тениски. Добавяне на още една се отказва.Т-6: Количка за 55,00 €: доставката е безплатна.Покрито от
И-1 Доставката е безплатна при поръчка от 50,00 € включително.0
И-2 Под 50,00 € доставката е 4,90 €.0
И-3 Празна количка не се поръчва.0
И-4 В количката има най-много 10 бройки от продукт.0
Проверява000000

Тест

Провери се

1. Изискване се променя. Откъде започва анализът на въздействието?
2. Прагът става 60 €. Тестът „Количка за 120,00 €: доставката е безплатна“ е в анализа на въздействието. Значи ли това, че ще се сменя?
3. Какво е базовата линия (baseline)?
4. Кой одобрява промяната на прага за безплатна доставка?
5. Защо изискването пази старата си версия, след като е сменено?

Създаден от Иво Гергов като част от кампанията на Evo Tech за достъпно обучение по програмиране ·