INVEST: шесть признаков хорошего элемента бэклога

Мнемоника INVEST для проектов гибкой разработки программного обеспечения была предложена Биллом Уэйком[1] как напоминание о характеристиках качественного элемента бэклога продукта (Product Backlog Item, PBI). Такой элемент обычно записывают в формате пользовательской истории, хотя это и не обязательно.
Элементы бэклога используются в бэклоге Scrum, на доске Kanban или в проекте по экстремальному программированию (XP).
Это перевод статьи INVEST (mnemonic) из английской Википедии в редакции от 16 августа 2026 года. Оригинал написан авторами Википедии и доступен по лицензии CC BY-SA 4.0; перевод распространяется на тех же условиях. Термины и ссылки на источники сохранены как в оригинале.
| Буква | Значение | Описание |
|---|---|---|
| I | Независимый (Independent) | Элемент бэклога должен быть самодостаточным. |
| N | Обсуждаемый (Negotiable) | Черновые элементы бэклога — не жёсткие контракты, они должны оставлять место для обсуждения. |
| V | Ценный (Valuable) | Элемент бэклога должен приносить ценность заинтересованным сторонам. |
| E | Оцениваемый (Estimable) | Размер элемента бэклога всегда должно быть возможно оценить. |
| S | Малый (Small) | Элемент бэклога не должен быть настолько большим, чтобы его стало невозможно спланировать, разбить на задачи и упорядочить с приемлемой точностью. |
| T | Тестируемый (Testable) | Элемент бэклога или связанное с ним описание должны давать информацию, необходимую для разработки тестов. |
Независимый
Одна из особенностей гибких методологий, таких как Scrum, Kanban или XP, — возможность переставлять элементы бэклога, учитывая среди прочих критериев их бизнес-ценность. Если элементы бэклога тесно зависят друг от друга, иногда их можно объединить в один.
Обсуждаемый
Пользовательская история — не контракт. Это приглашение к разговору.
Детали того, как именно будет удовлетворена потребность, должны оставаться открытыми для обсуждения, а не фиксироваться заранее жёсткой спецификацией. История фиксирует, что нужно и почему, а как это будет реализовано, команда решает совместно. История, которая чрезмерно детализирует решение (предписывает расположение элементов интерфейса, технический подход или точный сценарий взаимодействия), лишает команду этой гибкости и подрывает диалог, благодаря которому гибкая разработка и работает. При этом элемент бэклога вполне может содержать предлагаемый технический подход, набросок макета, описание идеального решения и тому подобное.[2]
Именно поэтому критерии приёмки должны описывать наблюдаемые бизнес-результаты, а не детали реализации. Чем меньше история предписывает решение, тем больше у команды пространства найти лучшее.
Обсуждаемость не означает, что сама бизнес-потребность подлежит обсуждению. Обсуждается путь к её удовлетворению.
Ценный
Поскольку цель гибкой методологии — непрерывно поставлять ценное программное обеспечение, элемент бэклога должен приносить ценность заинтересованной стороне.[3]
Иногда история сама по себе не даёт законченной готовой к выпуску функции, а является лишь измеримым шагом к этой цели. Тем не менее историю как минимум можно продемонстрировать заинтересованной стороне и показать, что достигнут прогресс, то есть поставлено нечто ценное. Например, допустимо просто показать в интерфейсе пользователя текстом кодированный ответ центрального сервиса, чтобы продемонстрировать, что данные были отправлены в этот сервис и приняты им, а более удобное представление этого ответа вынести в другую историю. В этом смысле история была демонстрируема и дала нечто ценное для бизнеса, пусть и не окончательный вариант дизайна.
Оцениваемый
Изначально Билл Уэйк рассуждал так: если размер элемента бэклога нельзя оценить, его никогда не запланируют и не разобьют на задачи, а значит, он никогда не попадёт в итерацию. Отсюда следовало, что элементы бэклога должны быть такими, чтобы в какой-то момент их можно было оценить. Это не значит, что элемент бэклога обязан быть оценён в момент создания. Это значит лишь, что он описывает нечто поддающееся оценке.
Уже после появления INVEST набрало силу движение «No Estimates», которое отучает владельцев продукта от убеждения, что элемент бэклога обязательно должен быть оценён, прежде чем его можно планировать или разбивать на задачи. Многие практики берутся за работу без оценки трудозатрат, если объём задачи достаточно сужен.[4] Билл Уэйк говорил, что если бы он выбирал буквы INVEST заново, он убрал бы «оцениваемость» и использовал букву E, чтобы подчеркнуть один из аспектов критерия «V — ценный».[5]
Предостережение: оцениваемость — самый злоупотребляемый аспект INVEST (то есть больше всего усилий при наименьшей пользе). Если бы я мог выбрать заново, у нас было бы «E = External» (внешний); см. обсуждение в разделе «V — ценный».
— Билл Уэйк, Estimable Stories in the INVEST Model
«Estimable» в значении «поддающийся оценке» — определение из американского английского. Чтобы избежать путаницы с британским значением «достойный уважения», в некоторых версиях модели используют слово «Estimate-able», которого тоже нет в словарях. Аллен Холуб предложил принять британское значение, считая, что сама выдача оценок вредит процессу разработки программного обеспечения.[6]
Малый
Старайтесь, чтобы элемент бэклога занимал обычно несколько человеко-дней и самое большее несколько человеко-недель. Хорошее эмпирическое правило: один элемент бэклога продукта не занимает больше 50% итерации; например, один элемент не займёт больше 5 дней при двухнедельном спринте в 10 рабочих дней. Всё, что выходит за эти рамки, следует считать слишком крупным, чтобы оценить его с хорошей степенью уверенности. Такие крупные элементы называют эпиками: эпик требует больше одной итерации, и его обязательно придётся разбить на более мелкие элементы, которые свободно помещаются в итерации. Нет ничего плохого в том, чтобы начинать с эпиков, лишь бы их разбивали, когда приближается время поместить их в бэклог итерации. Так реализуется принцип анализа «точно вовремя» из бережливой разработки программного обеспечения.
Тестируемый
Элемент бэклога можно считать ГОТОВЫМ, помимо прочего, только если он успешно протестирован. Если элемент бэклога невозможно протестировать из-за нехватки информации или доступа (см. раздел «Оцениваемый» выше), его не следует считать хорошим кандидатом в бэклог итерации. Особенно это верно для команд, практикующих разработку через тестирование (TDD).
См. также
- Инженерия требований (Requirements engineering)
- Гибкая методология разработки (Agile software development)
- Содержание проекта (Scope, project management)
- Управление качеством (Quality management)
- Критерии SMART (SMART criteria)
Источники
- Билл Уэйк, INVEST in Good Stories, and SMART Tasks — исходная статья, в которой предложена мнемоника.
- Билл Уэйк, INVEST in XP123 — Good Stories and SMART Tasks — та же статья на сайте XP123; источник для раздела «Обсуждаемый».
- Principles behind the Agile Manifesto — принципы Agile-манифеста; источник формулировки о непрерывной поставке ценного ПО.
- Рон Джеффрис, The NoEstimates Movement — о движении «No Estimates».
- Билл Уэйк, Estimable Stories in the INVEST Model — почему автор заменил бы букву E.
- Аллен Холуб, доклад Event Storming на конференции O’Reilly Software Architecture Conference, 10–13 июня 2019 года — позиция о вреде оценок.
Внешние ссылки из оригинала: блог Джеффа Сазерленда, New to agile? INVEST in good user stories на Agile For All и INVEST в глоссарии Agile Alliance.
Исходный текст: статья INVEST (mnemonic) английской Википедии, редакция от 16 августа 2026 года, лицензия CC BY-SA 4.0.
Термины
- Элемент бэклога продукта (PBI) — единица работы в бэклоге продукта: пользовательская история, задача или другой формат.
- Пользовательская история (user story) — короткая формулировка потребности от лица пользователя: кто, что хочет и зачем.
- Бэклог — упорядоченный список элементов работы по продукту; бэклог итерации — его часть, взятая в текущую итерацию.
- Итерация (спринт) — фиксированный отрезок времени, за который команда доводит набор элементов бэклога до рабочего состояния.
- Эпик — крупный элемент бэклога, который не помещается в одну итерацию и подлежит разбиению.
- Критерии приёмки — проверяемые условия, при выполнении которых история считается сделанной.
- Scrum, Kanban, XP — фреймворк со спринтами, метод управления потоком через доску и экстремальное программирование; три распространённых способа организовать гибкую разработку.
- Разработка через тестирование (TDD) — практика, при которой тест пишется до кода.
- Бережливая разработка (Lean software development) — перенос принципов бережливого производства на разработку, включая анализ «точно вовремя».
Хотите внедрить это у себя?
Помогаю командам перейти на агентную разработку: как советник, через обучение команды или внедрение изменений с проверкой эффекта по данным. Короткие заметки между статьями выходят в Telegram-канале.