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

Доброто стори: INVEST

Накратко: Доброто стори е независимо, договоримо, ценно, оценимо, малко и проверимо. INVEST е списък за преглед, не закон. Най-скъпо струва сторито, което не може да се провери: то никога не е готово, защото никой не знае кога е.

Проблем

Сторито, което не свършва

На дъската на екипа от три седмици стои едно стори: „Като клиент искам плащането да е удобно.“ Програмистът е сменил формата два пъти. Дизайнерът е сменил бутоните. Собственикът всеки път казва „по-добре е, но не е това“.

Сторито не е лошо написано. То е с роля, цел и почти с полза. Но никой не може да каже кога е готово, затова то никога не е.

Идеята

Шест букви

Бил Уейк събира качествата на доброто стори в една дума: INVEST.

Буква Значи Нарушено в магазина
Independent, независимо прави се и се пуска без друго стори в същото време „въвеждам кода“ и „виждам отстъпката от кода“: едното без другото не става
Negotiable, договоримо подробностите се договарят, сторито не е договор „червен бутон вдясно, широк 120 пиксела“
Valuable, ценно носи нещо на някого извън екипа „подготовка на базата за промо кодовете“
Estimable, оценимо екипът може да прецени колко е голямо „препоръки като в големите магазини“, без никой да знае откъде да започне
Small, малко побира се в няколко дни работа „управлявам поръчките си“: отказ, връщане, история, адреси
Testable, проверимо може да се каже кога е готово „плащането е удобно“

INVEST е списък за преглед (checklist). Минаваш сторито буква по буква и питаш: това наред ли е? Където не е, имаш въпрос за разговора.

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

Бил Уейк публикува INVEST през 2003 г. в статията „INVEST in Good Stories, and SMART Tasks“. ISTQB CTFL v4.0.1 го цитира в раздела за съвместното писане на сторита.

Буквата T е мястото, където QA има най-много работа още преди кода. Проверимостта на сторито е същото качество като проверимостта на изискването от урока „Доброто изискване“: без мерило няма тест, който да падне.

Пробвай

Коя буква?

Във всяко стори една буква от INVEST е нарушена най-силно. Коя?

1. „Като клиент искам да управлявам поръчките си.“ Вътре са отказът, връщането, историята, смяната на адреса и повтарянето на стара поръчка.
2. „Като клиент искам червен бутон „Приложи кода“ вдясно от полето, широк 120 пиксела.“
3. „Като клиент искам магазинът да ми предлага продукти, които ще харесам.“ Никой в екипа не е правил препоръки и не знае откъде да започне.
4. „Подготовка на базата за промо кодовете.“
5. Стори А: „въвеждам промо код в количката“. Стори Б: „виждам отстъпката от кода в количката“. А без Б не показва нищо, Б без А няма какво да покаже.

Идеята

Сторито, което не може да се провери

„Плащането е удобно“ е капанът от началото. Думите „удобно“, „бързо“, „ясно“, „подходящо“ звучат като изискване, но не казват кога е изпълнено. Всеки ги чете по своему, и собственикът винаги може да каже „не е това“.

Поправката не е по-хубава дума. Тя е въпросът „как ще разберем, че е готово?“ и отговор с конкретни случаи:

  • „удобно“ става „нов клиент плаща без помощ за под 2 минути“, проверено с петима души, които не са виждали магазина;
  • „бързо“ става „95 % от плащанията завършват за под 3 секунди при 200 клиенти едновременно“;
  • „ясно съобщение“ става „при изтекъл код клиентът вижда „Кодът е изтекъл“, а сумата остава без отстъпка“.

Сега всеки от тримата (бизнесът, QA и програмистът) вижда едно и също. Това е третото C, потвърждението, още преди работата да е започнала.

Пробвай

Може ли да се провери?

1. „Като клиент искам плащането да е бързо.“ Коя поправка може да се провери?
2. „Като клиент искам да виждам подходящи продукти в количката.“ Какво трябва да се попита?
3. „Като клиент искам съобщенията за грешка да са ясни.“ Кое е проверима версия?

Идеята

Малко, но пак ценно

Две от буквите често се дърпат. Сторито „управлявам поръчките си“ е ценно, но не е малко. Ако го нарежеш на „база за поръчките“, „екран за поръчките“ и „услуга за поръчките“, всяко парче е малко, но нито едно не е ценно: клиентът не може да ползва нито едно само.

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

Буквата E също подсказва нещо. Когато екипът не може да оцени сторито, причините са обикновено две: то е твърде голямо или твърде неясно. Голямото се разбива. Неясното се изяснява с въпроси, и за това е последният урок от модула.

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

Когато неясното е техническо („може ли изобщо да правим препоръки с нашите данни?“), екипите често правят кратко ограничено проучване, наречено spike. То не е стори за клиента. Резултатът му е знание, с което сторито вече може да се оцени.

Упражнение

Прегледай сторитата

1. Поправи сторито. Четири сторита от последната среща. Избери най-добрата стъпка за всяко.

1. „Като клиент искам по-добра количка.“ Коя е най-добрата първа стъпка?
2. „Като собственик искам отстъпка за лоялност 5 %, промо кодове 10 % и правилото, че важи по-голямата.“ Какво не е наред?
3. „Като програмист искам да сменя начина, по който се пазят поръчките.“ Как да стане ценно?
4. „Като клиент искам да върна продукт до 14 дни, като системата използва новия модул за връщания.“

Тест

Провери се

1. Какво значи T в INVEST?
2. Защо N (договоримо) е качество, а не слабост?
3. Малко и ценно често се дърпат. Какво помага?
4. Екипът не може да оцени сторито. Коя е честата причина?
5. Как се ползва INVEST?

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