Розповідь користувача
Історія користувача (англ. 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