Розповідь користувача
Історія користувача (англ. user story) - це одне чи більше речень, звичайною мовою предметної області, які описують чого користувач хоче досягти. Історії користувача використовуються в гнучких методологіях для з'ясування базових функцій що будуть реалізовуватись. Кожна історія користувача достатньо коротка і записується на карточках приблизно 7 на 12 сантиметрів, що гарантує те, що вона не стане занадто великою. Історії користувача пишуться споживачами програмного забезпечення і є основним інструментом їх впливу на розробку програми. Вона висвітлює "Хто", "Що", "Чому" вимог у простий й точний спосіб.
Історії користувача - швидкий спосіб оперування вимогами користувача, без необхідності застосування занадто формалізованих документів, та виконання адміністративних задач пов'язаних з опрацюванням цих документів. Наміром з яким використовують історії користувача є швидше та менш накладне реагування на швидко змінювані вимоги реального світу.
Історії користувача - це неформальний опис вимог до тих пір, поки відсутні відповідні тести прийнятності. Перед тим як реалізовувати історію користувача відповідна процедура прийняття має бути написана користувачем, що тестуванням чи іншим чином визначає чи задоволені вимоги історії користувача. Деяка формалізація відбувається коли розробник приймає історію користувача, та відповідну процедуру прийнятності.
Коли приходить час створення історій користувача, один з розробників зустрічається з представником споживача. Споживач відповідальний за формулювання історій користувача. Розробник може використати серії питань, щоб допомогти споживачу, наприклад питати чи не потрібна йому певна функція, але має бути обережним щоб не керувати процесом створення ідей.
Коли користувач розпочинає свої історії, вони записуються на картці (приблизно 8x13 см), з ім'ям, і описом того що сказав користувач. Якщо розробник і замовник вияснять що історії користувача мають недолік (завеликі, складні, неточні), вона переписується аж поки не стане задовільною. Щоправда екстремальне програмування наголошує, що історії користувача не фіксуються як тільки вони будуть записані. Протягом розробки вимоги люблять змінюватись, тому їх не карбують на камені.
Зазвичай історії користувача відповідають такому шаблону:
"Як <роль>, я хочу <ціль/бажання> щоб <вигода>" | |
Хоча використовують і скорочений варіант:
"Як <роль>, я хочу <ціль/бажання>" | |
|
|
Як центральна частина багатьох гнучких методологій, таких як гра планування в екстремальному програмуванні, історії користувача описують що має бути збудованим в програмі що розробляється. Користувач розставляє пріоритети серед історій користувача, визначаючи найбільш важливі для системи речі, які будуть розбиті на задачі і оцінені розробниками.
Прямо перед виконанням історій користувача розробники мають мати можливість поговорити з замовником про них. Можливо короткі історії буде важко інтерпретувати, якщо бракує деяких допоміжних знань чи вимоги можуть змінитись з часу написання історії.
Кожна історія користувача має мати прив'язаний до неї хоча б один тест прийняття, який дозволяє розробнику з’ясувати чи історія користувача виконана, і також дозволяє замовнику перевірити це. Без точного формулювання вимог, може виникнути довга неконструктивна дискусія з замовником в момент поставки продукту.
Екстремальне програмування та інші гнучкі методології надають перевагу особистому спілкуванню перед вичерпною документацією, та швидкій адаптації до змін замість фіксації задач. Історії користувача досягають цього бо:
- Вони короткі. Вони надають невеликі порції вимог, які можуть бути реалізовані за кілька днів чи тижнів.
- Дозволяють розробнику та представнику клієнта обговорювати вимоги протягом життєвого циклу проєкту.
- Потребують зовсім мало обслуговування.
- Дозволяють ближчий контакт зі споживачем
- Дозволяють розбивати проєкт на маленькі кроки
- Підходять до проєктів в яких вимоги нестійкі чи малозрозумілі. Ітерації розкриття вимог спрямовують процес вдосконалення продукту.
- Полегшують оцінку складності розробки
- Завдяки ближчому контакту з замовником реалізуються найважливіші для нього частини проєкту.
- Їх важко масштабувати для великих проєктів
- Вони розглядаються як приводи до дискусії
Хоча й історії користувача і прецеденти служать виявленню конкретних вимог користувача в термінах взаємодії між ним та системою, між ними існує суттєва відмінність:
Історії користувача | Прецеденти |
---|---|
|
|
- Daniel H. Steinberg and Daniel W. Palmer: Extreme Software Engineering, Pearson Education, Inc., ISBN 0-13-047381-2
- Mike Cohn, "User Stories Applied", 2004, Addison Wesley, ISBN 0-321-20568-5
- Mike Cohn: Agile Estimating and Planning, 2006, Prentice Hall, ISBN 0-13-147941-5
- ↑ Advantages of User Stories for Requirements. Архів оригіналу за 18 квітня 2012. Процитовано 13 листопада 2010.
- Означення історії користувача на extremeprogramming.org [Архівовано 11 лютого 2021 у Wayback Machine.]
- Означення історії користувача на c2.com [Архівовано 18 липня 2016 у Wayback Machine.]