Разбиване на голямо стори
Накратко: Голямото стори се реже отвесно: всяко парче минава през всичко нужно и дава нещо, което някой може да опита. Моделите подсказват къде да режеш: по стъпки, по правила, по данни, по сложност, по качество, по операции. Слоят (фронтенд, бекенд, база) не е стори.
Проблем
Три седмици и нищо за показване
Сторито е „Като клиент искам да върна продукт и да си получа парите.“ Голямо е, затова екипът го дели: един прави екрана за връщане, друг записа в базата, трети връщането на парите.
След две седмици екранът е готов, но не прави нищо. Базата е готова, но никой не я вижда. Собственикът пита „може ли да видя връщането?“ и отговорът е „още не“. На третата седмица всичко се свързва, и тогава QA намира, че 14-те дни се броят от поръчката, а не от получаването.
Парчетата бяха малки. Но никое не можеше да се опита само.
Идеята
Отвесно, не на пластове
Мисли за сторито като за торта на пластове: екран, обработка, база. Разбиването по слоеве реже тортата хоризонтално. Получаваш цял пласт крем и никой не може да го изяде като торта.
Доброто разбиване реже отвесно: всяко парче има от всеки пласт колкото трябва и дава нещо, което някой може да опита. За връщането първото отвесно парче е „клиентът заявява връщане до 14 дни от получаването“. То е малко. Но собственикът може да го види в първата седмица, а QA може да провери границата на 14-те дни веднага.
Това се казва разбиване на стори (story splitting): голямото стори се реже на по-малки, всяко от които пак е стори по INVEST.
По-точно, за любопитните
Метафората с тортата е стара: Бил Уейк я ползва още в статията си за INVEST. На английски парчето се казва vertical slice, а разбиването и slicing.
Идеята
Къде да режеш
Няма едно правилно рязане, но има модели, които се повтарят. Ето шест, с магазина:
| Модел | Кога пасва | В магазина |
|---|---|---|
| По стъпките на работния поток | сторито е процес с няколко стъпки | връщане: заявка, пратка обратно, склад, пари |
| По правилата на бизнеса | едно действие, много правила | крайната сума: доставка, промо код, лоялност, кое важи |
| По вариантите на данните | същият път, различни данни | продукт с един размер, после с размер и цвят |
| Първо основният случай | има основен случай и много усложнения | търсене по име, после филтри и подсказки |
| Първо да работи, после качеството | изискване за бързина или натоварване | плащане, после плащане при 2 000 клиенти едновременно |
| По операциите | „управлявам“ крие няколко действия | промо кодове: създавам, виждам, сменям, спирам |
Първият въпрос е: защо сторито е голямо? Заради стъпките, заради правилата, заради данните? Отговорът подсказва модела.
По-точно, за любопитните
Моделите тук следват най-цитирания списък в практиката: „Patterns for Splitting User Stories“ на Ричард Лорънс (2009). Друг известен набор е SPIDR на Майк Кон: Spike, Paths, Interfaces, Data, Rules (проучване, пътища, интерфейси, данни, правила).
Последният модел често се нарича CRUD, по първите букви на create, read, update, delete. В магазина „изтрий“ става „спри“, и защо, ще видиш в упражнението.
Пробвай
Кой модел?
Пробвай
Разбий връщането
Избери модела, после парчетата на разбиването в реда, в който се правят.
Като клиент искам да върна продукт, който не ми харесва, и да си получа парите.
Стъпка 2: Кои парчета и в какъв ред?
Добави парчетата, които образуват разбиването, и ги подреди: първото се прави първо.
Парчетата
Разбиването
Модел
- По стъпките на работния поток: Връщането минава през няколко стъпки: заявка, пратка обратно, приемане в склада, пари. Всяка може да се направи и покаже на собственика отделно.
Примерното разбиване
- Клиентът заявява връщане на доставена поръчка до 14 дни от получаването
- Клиентът получава указания как да прати продукта обратно
- Складът приема пратката и поръчката става върната
- Магазинът връща парите на клиента
Връщането е голямо заради стъпките, не заради правилата. Всяка стъпка е стори: след първата клиентът вече може да заяви връщане, а собственикът вижда колко хора го правят. Екранът и базата не са парчета, а части от всяко парче.
Идеята
Защо не по слоеве
Разбиването по слоеве изглежда разумно, защото така е организиран екипът: един прави екраните, друг обработката. Но то струва скъпо:
- Никой не може да го опита. Собственикът вижда нещо чак когато всички слоеве са готови. Ако сторито е грешно, разбира го последен.
- Не може да се провери. Критериите на сторито („до 14 дни от получаването“) са за поведение, а не за екран или база. QA чака до края.
- Рискът е в края. Слоевете се срещат накрая, и там излизат несъвпаденията.
- Не е ценно по INVEST. Нито едно парче не носи нещо на някого извън екипа.
Слоевете са задачи вътре в сторито. Програмистите ги правят, но сторито се брои за направено, когато цялото отвесно парче работи.
Идеята
Как разбираш, че разбиването е добро
- Всяко парче е стори. Има роля, цел и полза, и минава INVEST.
- Първото парче носи най-много. Най-много стойност или най-много научаване. Ако първото е „подготовка“, режеш грешно.
- Парчетата не се застъпват. Нито едно не е вътре в друго.
- Заедно покриват голямото стори. Или поне това от него, което наистина трябва.
Последното е важно. Често след няколко парчета собственикът казва „това стига“. Останалите парчета не се правят, и това не е провал. Това е разбиването, което си върши работата.
Упражнение
Разбий сторитата
1. Крайната сума. Сторито за сумата преди плащането.
Избери модела, после парчетата на разбиването в реда, в който се правят.
Като клиент искам преди плащането да виждам крайната сума с доставката и отстъпките, за да знам колко ще платя.
Стъпка 2: Кои парчета и в какъв ред?
Добави парчетата, които образуват разбиването, и ги подреди: първото се прави първо.
Парчетата
Разбиването
Модел
- По правилата на бизнеса: Сумата е една, но правилата са няколко: доставката, промо кодът, лоялността и кое важи, когато са две. Всяко правило може да се направи, покаже и провери отделно.
Примерното разбиване
- Сумата с доставката: безплатна от 50,00 €, иначе 4,90 €
- Сумата с промо код: 10 %, без намалените продукти
- Сумата за лоялен клиент: 5 %
- Промо код и лоялност заедно: важи по-голямата отстъпка
Всяко правило е стори, което може да се провери само: „количка за 50,00 €, доставката е безплатна“. Правилото „важи по-голямата“ е последно, защото има смисъл, когато и двете отстъпки вече съществуват. Другите три могат в произволен ред.
2. Промо кодовете. Сторито на маркетинга.
Избери модела, после парчетата на разбиването в реда, в който се правят.
Като служител по маркетинга искам да управлявам промо кодовете, за да пускам и спирам кампании без програмист.
Стъпка 2: Кои парчета и в какъв ред?
Добави парчетата, които образуват разбиването, и ги подреди: първото се прави първо.
Парчетата
Разбиването
Модел
- По операциите: създай, виж, промени, спри: „Управлявам“ крие няколко отделни действия. Всяко е стори, което служителят може да опита сам.
Примерното разбиване
- Служителят създава нов промо код със срок
- Служителят вижда кодовете и колко пъти е ползван всеки
- Служителят спира код преди края на срока
- Служителят сменя срока на код
Първо създаването, защото без код няма какво да се види, смени или спре. „Изтрий“ от CRUD тук става „спри“: използваният код трябва да остане, защото счетоводството сверява отстъпките по код. Нуждата на една заинтересована страна смени модела.
Тест
Провери се
Свързани уроци
Раздел „Свързани уроци“- Нужно отпреди: Кой има думата · Когато таблицата е по-ясна · Какво е стори · Доброто стори: INVEST
- Продължава в: Критерии за приемане · Example Mapping: правила, примери, въпроси · Промо кодове: от заявката до пускането
- Задачи по темата: Сторита и критерии за приемане