Открыть сервис

User stories

User story (с англ. — «пользовательская история») — это короткое, нефункциональное описание требования к программному продукту, сформулированное с точки зрения конечного пользователя. User story является ключевым элементом гибких методологий разработки (Agile), в частности Scrum и Extreme Programming (XP). Она представляет собой обещание для дальнейшего обсуждения, а не формальный документ, и служит для передачи потребностей пользователя команде разработчиков в простом, понятном и лаконичном виде.

История возникновения

Концепция user stories возникла в конце 1990-х годов в рамках методологии экстремального программирования (XP). Её автором считается американский программист и методолог Кент Бек, который в своей книге «Extreme Programming Explained: Embrace Change» (1999) описал практику написания карточек с историями (story cards) как альтернативу традиционным, громоздким спецификациям требований. Идея заключалась в том, чтобы заменить многостраничные документы на короткие записи, которые стимулируют диалог между заказчиком и разработчиками.

В 2001 году, после публикации Манифеста Agile, user stories стали одним из центральных инструментов гибкой разработки. В 2004 году вышла книга Майка Кона «User Stories Applied: For Agile Software Development», которая систематизировала подход и ввела стандартные шаблоны и критерии качества (INVEST). С тех пор user stories широко применяются не только в IT, но и в управлении проектами, маркетинге и дизайне продуктов.

Структура и формат

Классический шаблон (Connextra)

Наиболее распространённый формат был предложен компанией Connextra в начале 2000-х годов и выглядит следующим образом:

Как <роль пользователя>,
Я хочу <действие/функциональность>,
Чтобы <цель/выгода>.

Пример:

«Как зарегистрированный пользователь, я хочу иметь возможность сбросить пароль, чтобы восстановить доступ к своему аккаунту».

Дополнительные элементы

  • Критерии приёмки (Acceptance Criteria) — набор условий, при которых история считается выполненной. Они описывают конкретные сценарии использования и граничные случаи.
  • Оценка (Estimation) — трудозатраты на реализацию, обычно в story points или человеко-часах.
  • Приоритет (Priority) — важность истории для бизнеса или пользователя.
  • Зависимости — указание на другие истории или задачи, от которых зависит реализация.

Критерии качества (INVEST)

Для того чтобы user story была эффективной, она должна соответствовать акрониму INVEST (предложен Биллом Уэйком в 2003 году):

КритерийАнглийский терминОписание
НезависимаяIndependentИстория не должна зависеть от других историй; её можно реализовать отдельно.
ОбсуждаемаяNegotiableИстория — это не контракт, а отправная точка для обсуждения. Детали уточняются в процессе.
ЦеннаяValuableИстория должна приносить ценность пользователю или бизнесу.
ОцениваемаяEstimableКоманда должна иметь возможность оценить трудозатраты на реализацию.
МаленькаяSmallИстория должна быть достаточно малой, чтобы её можно было реализовать за одну итерацию (спринт).
ТестируемаяTestableДолжны быть чёткие критерии, позволяющие проверить, что история выполнена.

Применение в разработке

В Agile-процессе

User stories являются основным инструментом управления бэклогом продукта (Product Backlog). Владелец продукта (Product Owner) формирует и приоритизирует истории, а команда разработки оценивает и реализует их в рамках спринтов. В начале каждого спринта проводится планирование (Sprint Planning), где команда выбирает истории для реализации и разбивает их на более мелкие задачи.

Отличие от традиционных требований

В отличие от классических технических заданий (ТЗ) или спецификаций (SRS), user stories:

  • Не являются формальным документом — они могут быть написаны на бумажных карточках, в электронных таблицах или в специализированных системах (Jira, Trello, Asana).
  • Фокусируются на пользователе, а не на технических деталях.
  • Предполагают диалог — вместо передачи готового текста разработчикам, история служит основой для обсуждения с заказчиком.
  • Допускают изменения — в Agile требования могут меняться, и user stories легко переписываются или заменяются.

Примеры

Плохая user story (слишком общая, не тестируемая):

«Система должна быть быстрой».

Хорошая user story (конкретная, с критериями приёмки):

«Как покупатель, я хочу видеть время доставки на странице товара, чтобы планировать получение заказа».
Критерии приёмки:
- Время доставки отображается в формате «2–3 рабочих дня».
- Если товара нет в наличии, показывается текст «Нет в наличии».
- Время обновляется при смене региона доставки.

Критика и ограничения

Несмотря на широкое распространение, user stories имеют ряд недостатков:

  • Неполнота — короткая форма может упустить важные нефункциональные требования (производительность, безопасность, масштабируемость).
  • Сложность оценки — для крупных или нечётких историй трудно оценить трудозатраты.
  • Риск «раздувания» бэклога — при отсутствии дисциплины количество историй может расти бесконтрольно.
  • Зависимость от коммуникации — если заказчик недоступен или не участвует в обсуждении, истории теряют смысл.

Для решения этих проблем в крупных проектах часто применяют дополнения: Epic (крупная история, требующая разбивки на несколько user stories), Theme (группа историй, объединённых общей целью) и Technical Story (история, описывающая технические улучшения, невидимые пользователю).

Инструменты для работы

Для управления user stories используются различные программные продукты:

  • Jira (Atlassian) — наиболее популярная система для Agile-команд, поддерживает эпики, спринты и доски Канбан.
  • Trello — простая система на основе карточек и досок.
  • Asana — инструмент для управления проектами с поддержкой задач и подзадач.
  • GitHub Issues — встроенная система для проектов на GitHub.
  • Azure DevOps — платформа Microsoft для полного цикла разработки.

Влияние на методологию

User stories стали одним из символов Agile-трансформации в IT-индустрии. Они способствовали переходу от «водопадной» модели (Waterfall) к итеративной разработке, где требования уточняются постепенно, а заказчик активно участвует в процессе. В 2020-х годах концепция user stories также применяется в дизайн-мышлении (Design Thinking) и Lean-стартапах, где фокус на пользователе является ключевым.

Источники

  • Кент Бек. «Extreme Programming Explained: Embrace Change» (1999).
  • Майк Кон. «User Stories Applied: For Agile Software Development» (2004).
  • Билл Уэйк. «INVEST in Good Stories, and SMART Tasks» (2003).
  • Scrum Guide (2020) — Кен Швабер, Джефф Сазерленд.
  • Статья «User Stories» на сайте Agile Alliance.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →