User Stories
User story — це короткий опис потреби з погляду користувача, написаний, щоб почати розмову, а не замінити її. Шаблон — найменш важлива частина; справжня навичка — нарізати роботу так, щоб кожна історія давала користувачеві щось справді придатне, і ще до початку роботи домовитися, як усі зрозуміють, що її зроблено. Сторінка починається з шістнадцяти історій у тому вигляді, як їх справді пишуть команди, — що не так із кожною і як її переписати; далі — картка, розмова й підтвердження, критерії приймання та example mapping, дев’ять способів розділити історію, story mapping, INVEST, спайки й поінти, п’ять епізодів з історії формату і де все це вироджується.
- Походження
- Extreme Programming, кінець 1990-х
- Три C
- Card · Conversation · Confirmation
- Головна навичка
- Вертикальне нарізання
Шістнадцять історій, як їх пишуть команди, — що не так із кожною і як її переписати
Нікому не потрібне ще одне пояснення «Як…, я хочу…, щоб…». Допомагає інше: побачити історії, якими напхані справжні беклоги, поруч із версією, що працює. Ось шістнадцять — для кожної сказано, що не так, і дано переписаний варіант. У більшості беклогів є кілька з них, а в деяких — усі шістнадцять. Наступні розділи посилаються на них за номерами.
| # | Як написано | Що не так | Як переписати |
|---|---|---|---|
| 1 | «Як користувач, я хочу шукати товари.» | Немає «щоб», а «користувач» — це всі, тож ніхто не скаже, що таке «достатньо добре» | «Як постійний клієнт, я хочу знайти за назвою те, що вже купував, щоб замовити повторно менш ніж за хвилину.» |
| 2 | «Як розробник, я хочу оновити базу даних до PostgreSQL 18.» | Технічна задача в одязі історії: жоден користувач не отримує нічого, що може побачити | Задача під історією, якій вона служить, — або ефект, який помітить користувач: «історія замовлень відкривається менш ніж за дві секунди для клієнтів із 500 замовленнями» |
| 3 | «Як система, я хочу надіслати лист-підтвердження.» | Система — не користувач, і причина, з якої лист існує, зникла | «Як клієнт, що щойно оплатив, я хочу лист із замовленням і датою доставки, щоб знати, що платіж пройшов.» |
| 4 | «Як клієнт, я хочу випадний список збережених карток на сторінці оплати.» | Рішення вписане в історію, тож обговорювати вже нічого | «Як постійний клієнт, я хочу платити карткою, якою вже користувався, не вводячи її знову, щоб оплата займала секунди.» |
| 5 | «API пошуку» і «UI пошуку» як дві історії | Горизонтальні зрізи: жодна половина не працює окремо, і жодну нікому не покажеш | «Знайти товар за точною назвою» — тонко, але крізь усі шари, і це можна випустити |
| 6 | «Як клієнт, я хочу керувати збереженими пошуками.» | «Керувати» ховає чотири операції й щонайменше спринт | Створити, потім переглянути, потім перейменувати, потім видалити — чотири історії, кожна корисна сама по собі |
| 7 | «Як клієнт, я хочу оформити замовлення.» | Епік, записаний як історія; її двічі перенесуть у наступний спринт | Поділити за кроками сценарію — адреса, доставка, оплата, підтвердження, — і спершу найпростіший шлях крізь усі чотири |
| 8 | «Підтримати всі способи оплати.» | Варіанти зібрані в один пункт, тож найпопулярніший спосіб чекає на найрідкісніший | Спершу картки; далі кожен інший спосіб окремою історією — за його часткою замовлень |
| 9 | Історія без критеріїв приймання | «Готово» узгоджують на огляді, під тиском часу | Від трьох до семи критеріїв, погоджених до того, як історія потрапить у спринт |
| 10 | «Пошук має бути швидким.» | Неперевірюване: швидким для кого й виміряним як? | «95% пошуків повертають результат менш ніж за 300 мс за 10 000 товарів у каталозі.» |
| 11 | П’ятнадцять критеріїв приймання на одній картці | Поділ, якого ніхто не зробив: ці критерії — насправді кілька історій | Згрупувати критерії за правилами; кожна група стає окремою історією |
| 12 | «Кнопка „Застосувати“ зелена й стоїть праворуч від поля.» | Описує екран, а не поведінку, і ламається того дня, коли змінять дизайн | «Дано прострочений промокод; коли клієнт його застосовує, тоді код відхиляється, а повідомлення називає дату закінчення.» |
| 13 | «Дослідити платіжних провайдерів.» | Спайк без питання й без обмеження в часі, що перетворюється на побічний проєкт | «Спайк, два дні: чи може провайдер X повернути частину платежу через API? Результат: письмове „так“ чи „ні“ з тестовим викликом.» |
| 14 | «Як клієнт, я хочу, щоб сума в кошику була правильною.» | Баг, вдягнений як функція; він роздуває лічильник поставленої цінності | Звіт про дефект — кроки, очікуване, фактичне, — і виправлення без історії |
| 15 | «Як користувач, я хочу, щоб сайт був безпечним.» | Якість, що стосується кожної історії, записана так, ніби вона одна з них | Обмеження: у Definition of Done, якщо воно діє скрізь, або критерій на тих історіях, яких стосується, — «сесія завершується після 30 хвилин бездіяльності» |
| 16 | Бездоганна картка, яку написав один аналітик і передав команді | Розмову пропущено самою конструкцією: формат лишився, механізм — ні | Та сама картка, обговорена продуктом, розробкою й тестуванням до того, як потрапить у спринт |
Картка, розмова, підтвердження — що таке історія насправді
Історії вийшли з Extreme Programmingagile-метод, що починається з інженеріїAgile-методологія кінця 1990-х, збудована навколо інженерних практик: розробка від тестів, парне програмування, безперервна інтеграція, рефакторинг і невеликі часті релізи. Від неї походить більшість того, що тепер називають технічною гнучкістю, і команда, яка переймає події Scrum без цих практик, зазвичай бачить, як її спринти сповільнюються.Усі терміни — методу, який Кент Бек і його колеги виробили наприкінці 1990-х, здебільшого на зарплатному проєкті в Chrysler. Потребу записували на картці одним-двома реченнями, а деталі з’ясовували в розмові із замовником, який сидів поруч із командою. Картка була малою навмисно: специфікація на неї не вміщалася, тож ніхто не міг удавати, що вона нею є.
30 серпня 2001 року Рон Джеффріс назвав три частини. Card тримає «рівно стільки тексту, щоб ідентифікувати вимогу й нагадати всім, що це за історія». Conversation — місце, де вимога справді переходить від замовника до програмістів, із часом: коли історію оцінюють і знову, коли її планують. Confirmation — приймальний тест: як замовник зрозуміє, що команда зробила потрібне. Потрібні всі три. Картка без розмови — це погано написана специфікація; розмова без підтвердження — суперечка, що чекає на огляд.
Звичного шаблону — «Як [роль], я хочу [можливість], щоб [вигода]» — в ідеї не було. Це був внутрішній стиль лондонської компанії Connextra, яким вона поділилася зі спільнотою XP 2001 року, а книжка Майка Кона 2004 року зробила його стандартом за замовчуванням. Це добрий стандарт. Але необов’язковий, і три альтернативи варто знати.
| Формат | Вигляд | У центрі | Пасує, коли |
|---|---|---|---|
| Connextra | Як …, я хочу …, щоб … | Хто і чого хоче | Користувачі відомі й відрізняються потребами |
| Потреба користувача GOV.UK | Як …, мені потрібно …, щоб … | Задача, яку людина мусить виконати | Сервіс — обов’язок, а не вибір: податки, допомоги, дозволи |
| Job story | Коли …, я хочу …, щоб … | Ситуація, що запускає потребу | Ви краще знаєте, коли виникає потреба, ніж у кого |
| Проста назва | «Повторне замовлення з історії» | Можливість | Команда й власник продукту говорять щодня, і «навіщо» очевидне обом |
Деталі з’являються вчасно, не раніше
Коли історію пишуть, її навмисно недоописують, і вона обростає деталями, піднімаючись до верху беклогу. Пункти на наступні один-два спринти — малі, з критеріями приймання й уже обговорені. Пункти на найближчі місяці — фічі з приблизним розміром. Усе нижче — епіки в один рядок. Роман Піхлер називає беклог такої форми DEEP: detailed appropriately, estimated, emergent, prioritised — деталізований доречно, оцінений, такий, що розвивається, і впорядкований.
Така форма — економічне рішення, а не стиль. Деталі, написані для низу списку, написано для плану, що зміниться, перш ніж хтось почне будувати, і їх доведеться переписувати або тихо ігнорувати. Брак деталей угорі означає, що спринт починається з питань, на які ніхто не може відповісти. Деякі команди захищають верх Definition of Ready — переліком умов, який історія мусить пройти, перш ніж потрапити в спринт. Як нагадування це допомагає. Як шлагбаум, про що застерігає Майк Кон, — перетворює розмову назад на передачу документа, а команду — назад на етап водоспаду.
Критерії приймання — третє C
Третє C пропускають найчастіше (рядок 9). Критерії приймання — це не бюрократія, а відповідь на «як ми зрозуміємо?», погоджена до початку роботи, а не з’ясована в суперечці на огляді. Це ще й найдешевша профілактика багів: більшість того, що тестувальник знаходить за першу годину, — випадки, яких ніхто не обговорював.
Два формати покривають майже все. Чекліст — простий перелік умов, які мають виконуватися: швидко пишеться, легко читається і є правильним вибором за замовчуванням для простих історій. Given/When/Then описує початковий стан, дію й очікуваний результат. Ден Норт і Кріс Маттс виробили його з кінця 2004 року, щоб дати аналітикам, тестувальникам і розробникам одну мову, а Норт опублікував його в березні 2006-го. Він змушує назвати передумову й напряму перетворюється на автоматизований тест.
Три правила тримають їх корисними. Небагато: три-сім на історію — норма, а п’ятнадцять означає, що історія насправді дві чи три (рядок 11). Про поведінку, а не про екран: критерій, що називає колір кнопки, ламається того дня, коли змінюють дизайн, і досі нікому не каже, що кнопка має робити (рядок 12). І вимірювані: «швидко» — не критерій, «95% менш ніж за 300 мс» — критерій (рядок 10).
| Критерії приймання | Definition of Done | |
|---|---|---|
| Стосується | Однієї історії | Кожної історії |
| Каже | Що має робити ця історія | Що тут означає «завершено» для будь-якої роботи |
| Приклад | Прострочений код відхиляється, а повідомлення називає дату закінчення | Код переглянуто, тести проходять, розгорнуто на staging, документацію оновлено |
| Хто пише | Власник продукту разом із командою, для кожної історії | Команда, один раз, переглядають рідко |
| Якість на кшталт безпеки йде сюди, коли | Вона стосується лише деяких історій (рядок 15) | Вона діє скрізь |
Example mapping — розмова, яку видно
Найкорисніша техніка для написання критеріїв водночас найпряміше повертає розмову (рядок 16). Метт Вінн, який очолює проєкт Cucumber, описав її 8 грудня 2015 року. Троє-четверо людей — хтось від продукту, розробки й тестування — беруть одну історію й картки чотирьох кольорів. Історія йде на жовту картку. Кожне правило, якого вона має дотримуватися, — на синю. Під кожним правилом — зелені картки з конкретними прикладами. Будь-яке питання, на яке ніхто в кімнаті не може відповісти, — на червону, щоб забрати його з собою.
Стіл, що виходить у результаті, і є діагнозом. Добре зрозуміла історія нормального розміру, за оцінкою Вінна, мапиться приблизно за 25 хвилин. Стіл, вкритий червоними картками, означає, що історія не готова: перш ніж будувати, треба ще багато дізнатися. Стіл, вкритий синіми, означає, що історія завелика, і кожне правило — кандидат на окрему історію (рядок 11). Правило з довгою колонкою зелених прикладів — найпевніше, кілька правил. А сині й зелені картки, щойно на питання відповіли, і є критеріями приймання — написаними тими, кому їх виконувати.
Нарізання — вертикально, і дев’ять способів це зробити
Це єдина навичка, від якої залежить, чи допоможуть історії взагалі. Вертикальний зріз проходить крізь усі шари — інтерфейс, логіку, сховище — і дає користувачеві щось, що він може зробити. Горизонтальний ріже за технічними шарами й не дає нічого придатного, доки не завершиться останній шар (рядок 5).
Горизонтальне нарізання спокусливе, бо збігається з тим, як часто організовані команди, і відчувається ефективним: фахівець із бази даних робить частину з базою даних, один раз і як слід. Воно програє з причини, що не має стосунку до ефективності. Ніщо не придатне до релізу, доки не завершено кожен шар, тож увесь зворотний зв’язок приходить наприкінці, жодну оцінку до того не перевірити, а зрив на останньому шарі знецінює всі шари під ним.
Дев’ять шаблонів поділу історії
28 жовтня 2009 року Річард Лоуренс опублікував дев’ять шаблонів поділу історій, і досі це найповніший набір. Пробуйте їх приблизно в такому порядку; перший, що дає дві історії, кожна з яких чогось варта, — зазвичай правильний.
| # | Ділити за | Приклад |
|---|---|---|
| 1 | Кроками сценарію | Оформлення: спершу найпростіший шлях від адреси до підтвердження; додаткові кроки — подарункове пакування, слоти доставки — пізнішими історіями (рядок 7) |
| 2 | Варіаціями бізнес-правил | Знижки: простий відсоток зараз; обсягові рівні, терміни дії й правила поєднання — ще трьома історіями |
| 3 | Основним зусиллям | Оплата: перший тип карток несе всю роботу інтеграції; решта після цього малі. Ділити як «один тип карток», потім «решта» |
| 4 | Простим / складним | Пошук: спершу точна назва; помилки в написанні, синоніми й ранжування — пізнішими історіями |
| 5 | Варіаціями даних | Імпорт: спершу CSV, потім Excel, потім банківський формат фіксованої ширини (рядок 8) |
| 6 | Способами введення даних | Дата народження: просте текстове поле зараз; календар для вибору — пізніше |
| 7 | Відкладеною продуктивністю | Звіт, правильний на 100 рядках, зараз; «100 000 рядків менш ніж за дві секунди» — окрема вимірювана історія |
| 8 | Операціями (напр., CRUD) | Збережені пошуки: створити, переглянути, перейменувати, видалити (рядок 6) |
| 9 | Виокремленням спайка | Часткові повернення: дводенний спайк про те, чи вміє це API провайдера, потім історія (рядок 13) |
Коли спрацьовує кілька шаблонів, пізніший посібник Лоуренса дає два правила вибору. Віддавайте перевагу поділу, що дозволяє відсунути чи викинути одну з половин, бо саме він показує, на що робота не варта витрат. І поділу, що дає історії приблизно однакового малого розміру, бо саме тоді їх підрахунок стає прогнозом.
Story mapping — щоб шлях лишався цілим
У пласкому беклозі з добре нарізаних історій є одна структурна вада: він губить форму шляху користувача. Прочитайте п’ятдесят упорядкованих карток — і ви не скажете, чи складаються верхні двадцять у щось, що людина може довести до кінця. Story map Джеффа Паттона, яку він описав 8 жовтня 2008 року, а згодом у книжці, розв’язує це, розкладаючи історії у двох вимірах замість одного.
Угорі йде хребет: те, що робить користувач, зліва направо, у порядку виконання, — переглянути, обрати, оплатити, відстежити. Хребет не пріоритезують; він просто є. Під кожним кроком висить колонка історій, упорядкованих згори вниз за тим, наскільки вони необхідні. Далі карту ріжуть горизонтально. Верхній рядок через усі колонки — найтонша версія шляху, що працює від початку до кінця, — walking skeleton, термін, який Паттон запозичує в Алістера Коберна, а кожен рядок нижче — пізніший реліз, що робить той самий шлях кращим.
Цінність — у тому, що форма робить очевидним. Прогалина в хребті — крок, про який ніхто не подумав. Колонка з п’ятнадцятьма картками поруч із колонками по дві — місце, де команда вклалася надміру. А перший реліз, обраний як верхній рядок, гарантовано придатний до використання, тоді як перший реліз із верхніх двадцяти пунктів плаского списку — зазвичай ні. Власний образ Паттона для ризику, який прибирає карта: будуючи автомобіль функція за функцією, можна випустити його без гальм.
INVEST, спайки і для чого поінти
17 серпня 2003 року Білл Вейк дав чекліст, який цитують досі: добра історія — Independent, Negotiable, Valuable, Estimable, Small і Testable. Його власні формулювання корисніші за абревіатуру, тож ось вони поруч із симптомом провалу кожної літери.
| Літера | Що мав на увазі Вейк | Порушено, коли |
|---|---|---|
| Independent | Історії не перетинаються, і їх можна планувати й будувати в будь-якому порядку | Її не можна почати, доки не завершено три інші |
| Negotiable | Не явний контракт на функції; деталі виробляють разом під час розробки | Картка диктує реалізацію (рядок 4) |
| Valuable | Цінна для замовника, а не просто для когось | «Налаштувати схему бази даних» (рядок 2) |
| Estimable | Її можна оцінити достатньо, щоб замовник міг її впорядкувати й запланувати | Забагато невідомого — спершу потрібен спайк (рядок 13) |
| Small | Щонайбільше кілька людино-тижнів роботи | Її вже двічі переносили (рядок 7) |
| Testable | Той, хто пише картку, розуміє її достатньо, щоб написати для неї тест | «Зробити застосунок інтуїтивним» (рядок 10) |
INVEST — тест на «запах», а не шлагбаум. Історія, що не проходить за однією літерою, варта другого погляду, а не автоматичної відмови: залежні історії існують, і іноді чесна відповідь — будувати їх по черзі. Літера, яку варто сприймати серйозно щоразу, — Testable. Вейк сформулював її як обіцянку, яку дає картка: «я розумію, чого хочу, достатньо, щоб написати для цього тест», — і якщо ніхто не може сказати, що доведе завершеність, переписування решти п’яти не врятує. Зверніть увагу й на те, що «мала» у Вейка — це кілька людино-тижнів; нині команди цілять значно менше, у кілька днів, бо історії, що займає весь спринт, нічим поглинути несподіванку.
Коли історію неможливо оцінити: спайк
Іноді команда не може оцінити історію, бо невідоме — технічне: чи витримає ця бібліотека наш обсяг, чи вміє API провайдера часткові повернення взагалі. Відповідь — спайк: окреме обмежене в часі дослідження, результатом якого є знання, а не робочий софт. Два правила тримають спайки чесними (рядок 13). Питання й часові межі фіксують наперед, і межі не розсувають: якщо двох днів не вистачило, це вже саме собою висновок. І спайк закінчується рішенням, десь записаним, — інакше те саме питання наступного кварталу досліджуватиме заново той, кому дістанеться код.
Поінти і те, для чого вони не потрібні
story pointsвідносний розмір, не годиниОдиниця для оцінки відносного розміру задач беклогу — 8 приблизно вдвічі більше за 5, — навмисно не привʼязана до годин. Корисні для планування однієї команди й більше ні для чого: перетворені на ціль чи порівнювані між командами, вони роздуваються замість вимірювати.Докладніше в статті →Усі терміни — відносний розмір, а не тривалість: ця історія приблизно вдвічі більша за ту. За розповіддю Рона Джеффріса, вони починалися як «ідеальні дні» — день роботи пари без перерв — і стали поінтами, коли люди раз у раз плутали ідеальні дні з календарними. Velocityскільки вміщується у спринтСкільки команда реально завершує за спринт, усереднено за кілька. Це допоміжна величина для планування однієї конкретної команди й нічого більше: порівнювати velocity двох команд чи ставити її за ціль означає надійно отримати роздуті оцінки, а не більше роботи.Докладніше в статті →Усі терміни, кількість завершених поінтів за спринт, — це тоді вхідні дані для прогнозу тієї команди, що їх зробила, і ні для чого більше; вона не порівнюється між командами й не є продуктивністю, бо будь-яка команда, яку за нею міряють, подвоїть її за два спринти, не змінивши того, що постачає. Одиниці й їхня арифметика — на сторінці про оцінювання.
П’ять епізодів і що змінив кожен
Формат має коротку й добре задокументовану історію, і більшість того, що сьогодні йде не так з історіями, помітили ті, хто його формував.
| Епізод | Що сталося | Що це змінило |
|---|---|---|
| C3 у Chrysler, 1996–2000 | Історії на картках і замовник поруч із командою; зарплатна система з 1997 року платила приблизно 10 000 людей і була скасована в лютому 2000-го | Розмова залежить від людини, в якої на неї є час (рядок 16) |
| Connextra, 2001 | Внутрішній стиль лондонської команди — роль, мета, вигода — поширений у спільноті XP | Шаблон — домовленість, а не визначення (рядки 1–4) |
| Норт і Маттс, 2004–2006 | Given/When/Then — щоб дати аналітикам, тестувальникам і розробникам одну мову | Підтвердження стало тим, що може виконати машина (рядки 9–12) |
| GOV.UK, 2012–2013 | «Мені потрібно» замість «я хочу», а потреби ведуть в окремому інструменті, пов’язані зі сторінками, що їх задовольняють | Потреба переживає історії, що їй служать (рядок 4) |
| Рон Джеффріс, 2019 | «Можливо, я вигадав story points, і якщо так, то тепер шкодую» | Наріжте досить дрібно — і оцінювати, можливо, не доведеться взагалі |
C3 — епізод, який прихильники розповідають найрідше, і найповчальніший. Проєкт Chrysler Comprehensive Compensation почався 1993 року й нікому нічого не виплатив до приходу Кента Бека 1996 року. На практиках, що стали Extreme Programming, — історії на картках, замовник у кімнаті, короткі релізи — він запрацював 1997 року й платив приблизно 10 000 працівникам на місячних окладах. Мав платити 87 000. Нову розробку зупинили 1999 року, а в лютому 2000-го DaimlerChrysler скасувала проєкт. Деталь, яку варто запам’ятати, — про розмову: представник замовника, людина, від якої залежали історії, пішов вигорілим, і йому не знайшли заміни. Історії тримають вимогу в голові людини, а не в документі. У цьому їхня сила, і це означає, що методу потрібна ця людина, з часом на нього, доки триває робота.
Де це вироджується
Історії рідко підводять через погано складене речення. Вони підводять, коли формат лишається, а механізм за ним — розмова, підтвердження, тонкий зріз — тихо зупиняється. Майже кожен такий збій — одне з цього:
- Шаблон, натягнутий на технічні задачі: «Як розробник, я хочу міграцію» нікого не обманює й ховає ефект для користувача (рядок 2).
- Викинуте «щоб», а з ним — єдина причина, з якої історію можна обговорювати (рядок 1).
- Картки, розписані до дрібниць однією людиною, тож розмова так і не відбувається (рядок 16).
- Горизонтальні зрізи — API, UI, база даних, — названі історіями, тож нічого не виходить до останнього дня спринту, або наступного (рядок 5).
- Немає критеріїв приймання, тож «готово» узгоджують на огляді під тиском часу (рядок 9).
- Given/When/Then, написані як сценарії кліків, що ламаються з кожним редизайном і нічого не кажуть про поведінку (рядок 12).
- Definition of Ready як шлагбаум, що перетворює розмову назад на передачу документа.
- Увесь беклог деталізований наперед, тож більшість деталей переписують або ігнорують, перш ніж хтось почне будувати.
- Story points як показник продуктивності — це роздуває оцінки, а не результат.
- Баги й обмеження якості, вдягнені як історії, — і беклог виглядає як прогрес (рядки 14–15).
Чесна межа в тому, що історія може нести лише ту потребу, яку хтось справді зрозумів. Формат дозволяє легко записати здогадку голосом користувача — «Як клієнт, я хочу…», — і здогадка тоді виглядає як доказ. Ніщо в шаблоні не перевіряє, чи цього хоче хоч один клієнт. Ця перевірка живе деінде — у дослідженні продукту й у тому, що користувачі роблять після релізу; беклог бездоганно сформульованих історій може описати, нарізати й підтвердити продукт, який нікому не був потрібен.
Практична перевірка займає п’ятнадцять хвилин. Відкрийте поточний спринт і прочитайте назви: чи можна кожну випустити окремо (рядок 5)? Порахуйте історії без причини (рядок 1) і без критеріїв приймання (рядок 9). Знайдіть три найстаріші пункти вгорі беклогу й спитайте, хто востаннє обговорював кожен із кимось від продукту. І подивіться на низ: якщо пункти там мають детальні критерії приймання, команда пише деталі для плану, що зміниться.
Коли це застосовувати
Застосовуйте, коли
- Роботу можна описати тим, що користувач зможе зробити після неї.
- Команда й людина, яка вирішує, справді можуть говорити — розмова і є результатом.
- Ви можете випускати малі шматки й вчитися з них.
- Вимоги змінюватимуться, тож гнучкий формат кращий за фіксовану специфікацію.
Уникайте, коли
- У роботи немає видимого користувачеві результату — оновлення бібліотеки це задача, а не історія.
- Регулятор чи договір вимагає натомість формальну підписану специфікацію.
- Немає з ким провести розмову — лишається найслабша третина формату.
- Шаблон застосовують заради галочки в процесі, а не щоб прояснити потребу.
Джерела й метод
На чому стоїть ця стаття
- 17 джерел
- Перевірено 13 жовтня 2026 р.
Практики й походження термінів
що таке історія, її шаблон і критерії приймання- СтаттяRon Jeffries — Essential XP: Card, Conversation, Confirmation (відкривається в новій вкладці)ronjeffries.com · 30.08.2001
- ГайдAgile Alliance — User Story Template (відкривається в новій вкладці)Agile Alliance glossary
- СтаттяMike Cohn — User Story Template: What It Is and Why It Works So Well (відкривається в новій вкладці)Mountain Goat Software
- КнигаMike Cohn — User Stories Applied (відкривається в новій вкладці)Addison-Wesley · 2004
- СтаттяBill Wake — INVEST in Good Stories, and SMART Tasks (відкривається в новій вкладці)XP123 · 17.08.2003
- СтаттяDan North — Introducing BDD (відкривається в новій вкладці)Better Software · dannorth.net · 03.2006
- СтаттяMatt Wynne — Introducing Example Mapping (відкривається в новій вкладці)Cucumber · 08.12.2015
Нарізання, мапа й беклог
розділи про нарізання, story mapping, INVEST і поінти- ГайдRichard Lawrence, Peter Green — The Humanizing Work Guide to Splitting User Stories (відкривається в новій вкладці)Humanizing Work
- СтаттяJeff Patton — The New User Story Backlog is a Map (відкривається в новій вкладці)jpattonassociates.com · 08.10.2008
- КнигаJeff Patton — User Story MappingO’Reilly · 2014
- СтаттяRoman Pichler — Make the Product Backlog DEEP (відкривається в новій вкладці)romanpichler.com
- СтаттяMike Cohn — Definition of Ready: What It Is and Why It’s Dangerous (відкривається в новій вкладці)Mountain Goat Software
- СтаттяRon Jeffries — Story Points Revisited (відкривається в новій вкладці)ronjeffries.com · 23.05.2019
Епізоди
розділ «П’ять епізодів і що змінив кожен»- СтаттяChrysler Comprehensive Compensation System (відкривається в новій вкладці)Wikipedia
- ГайдGOV.UK — Government Design Principles (відкривається в новій вкладці)Government Digital Service
- ГайдGOV.UK — Identify user needs (відкривається в новій вкладці)GOV.UK content and publishing guidance
- СтаттяA tool to capture user needs (and measure performance) (відкривається в новій вкладці)Inside GOV.UK · 25.10.2013
Дослідження з Claude. Пошук і звірку першоджерел зроблено з Claude (Anthropic). Відбір, текст і перевірку фактів — редакція Anatomy of IT Product.
Було корисно?
Поділіться з тим, хто працює над тією ж задачею.