Сторипоинты — это относительные единицы измерения сложности задач в гибких методологиях разработки. В отличие от часов, сторипоинты учитывают не только время, но и сложность, риски и неопределённость задачи. По данным Scrum.org, 2023, команды, использующие относительную оценку в сторипоинтах, на 25% реже срывают спринтовые дедлайны по сравнению с командами, оценивающими в часах.
Главное
Сторипоинты — это метрика сложности задачи, используемая в Scrum и других Agile-методологиях. Команда оценивает каждую задачу не в часах, а в относительных единицах: «эта задача вдвое сложнее эталонной». Такой подход нивелирует разницу в скорости разных разработчиков и фокусируется на сложности.
Понятие сторипоинтов возникло в начале 2000-х годов вместе с популяризацией Scrum. Одним из первых метод описал Рон Джеффрис в рамках Extreme Programming (XP). Идея заключалась в том, чтобы уйти от оценки в «человеко-часах», которая всегда неточна, к относительной сложности, которую команда определяет коллективно. Сейчас сторипоинты — стандарт индустрии для Agile-команд.
При оценке в сторипоинтах команда учитывает три фактора: объём работы (количество кода, экранов, логики), сложность (технические вызовы, новые технологии) и неопределённость (неясные требования, риски). Один сторипоинт может означать «простая задача без рисков», а 8 — «сложная задача с высокой неопределённостью».
Выбор шкалы сторипоинтов влияет на точность оценки и удобство планирования. Самая популярная шкала — последовательность Фибоначчи, но есть и альтернативы.
| Шкала | Значения | Преимущества | Недостатки |
|---|---|---|---|
| Фибоначчи | 1, 2, 3, 5, 8, 13, 21 | Естественное увеличение разброса на крупных задачах | Сложна для новых команд |
| Линейная | 1, 2, 3, 4, 5 | Проста и понятна | Нет разброса для крупных задач |
| Степенная | 1, 2, 4, 8, 16, 32 | Максимальный разброс на крупных задачах | Крупные задачи трудно отличить |
| T-Shirt | S, M, L, XL | Быстрая грубая оценка | Неточна, нужна конвертация |
Последовательность Фибоначчи выбрана не случайно. Разница между 1 и 2 минимальна (50%), а между 13 и 21 — значительна (62%). Это отражает реальность: маленькие задачи оцениваются точнее, крупные — с большим разбросом. Когда задача оценивается в 21 сторипоинт, команда понимает: «мы не знаем, сколько это займёт, но точно больше 13». Шкала Фибоначчи предотвращает ложную точность.
Чтобы шкала работала, команда договаривается об эталоне: «задача X — это 1 сторипоинт». Обычно эталоном выбирают простую, хорошо знакомую задачу: «добавить текстовое поле на экран» или «исправить баг типа typo». Все остальные задачи оцениваются относительно эталона. Без эталона сторипоинты теряют смысл — каждый понимает единицу по-своему.
Velocity (скорость команды) — среднее количество сторипоинтов, которое команда закрывает за один спринт. Это ключевая метрика для прогнозирования сроков проекта.
Velocity считается по завершённым задачам: суммируются сторипоинты всех задач, которые команда успела доделать (definition of done выполнен). Незавершённые задачи не учитываются. Для точности берётся среднее за последние 3-5 спринтов. Например, если команда закрыла 20, 22, 18 и 24 сторипоинта за последние 4 спринта, velocity = 21 сп.
Зная velocity и общий объём бэклога в сторипоинтах, можно прогнозировать количество спринтов до релиза. Например, если в бэклоге 210 сторипоинтов, а velocity = 21, потребуется 10 спринтов. Это грубый прогноз, который уточняется по мере работы. Важно: velocity — это среднее, а не обязательство. Планируйте по нижней границе (18 сп), а не по средней.
Velocity нельзя повысить приказом — это симптом здоровья процессов. Устойчивый рост velocity достигается через: снижение технического долга, улучшение процессов код-ревью, сокращение контекстных переключений, автоматизацию тестирования и CI/CD. Важно: velocity разных команд нельзя сравнивать — каждая команда определяет сторипоинты по-своему.
У сторипоинтов и часов разные цели, и выбор между ними зависит от контекста. Опытные команды используют оба подхода для разных задач.
Сторипоинты незаменимы для планирования спринтов: они не зависят от того, кто будет делать задачу. Junior может делать 2 сп за день, senior — 4 сп, но оценка задачи остаётся 2 сп для обоих. Сторипоинты позволяют отслеживать командную производительность, не сравнивая разработчиков. Это снижает политическое давление и улучшает атмосферу в команде.
Часы нужны для внешних обязательств: контракты, сметы, отчёты для заказчика. Клиент хочет знать не «8 сторипоинтов», а «3 недели». Для конвертации сторипоинтов в часы используется historical conversion rate: команда знает, что 1 сп = примерно 4 часа работы. Конвертация должна быть прозрачной и основанной на данных, а не на догадках.
Многие команды используют комбинированный подход: задачи оцениваются в сторипоинтах для планирования спринта, а затем менеджер конвертирует их в часы/дни для внешней отчётности. Важно не смешивать две системы в одном процессе: либо вы оцениваете в сторипоинтах и выводите время из velocity, либо оцениваете в часах напрямую.
Внедрение сторипоинтов часто сопровождается ошибками, которые сводят на нет преимущества относительной оценки. Вот самые распространённые из них.
Самая частая ошибка — команда договаривается: «1 сп = 4 часа». В этом случае сторипоинты теряют смысл и превращаются в часы с другим названием. Сторипоинты должны быть относительными, не привязанными ко времени. Если задача А вдвое сложнее задачи Б, она получает 2 сп, независимо от того, сколько часов на неё уйдёт.
Когда задачу оценивают после её выполнения — это не оценка, а констатация. Сторипоинты должны назначаться до начала работы, в момент максимальной неопределённости. Post-factum оценка искажает velocity и не даёт пользы для планирования. Более того, она создаёт ложное ощущение точности.
Сравнение velocity команды A и команды B — бессмысленное упражнение. Каждая команда определяет эталон и шкалу по-своему. Для одной команды 1 сп — это простая задача на час, для другой — на день. Сравнивать можно только velocity одной команды в динамике: растёт она или падает.
Когда разные задачи с одинаковой сложностью получают разные сторипоинты, а более сложные — меньше, шкала ломается. Команда должна регулярно калибровать шкалу: раз в 3-6 спринтов пересматривать ретроспективно, насколько оценки соответствовали реальной сложности. Это улучшает консистентность оценок.
Часто задаваемые вопросы
У сторипоинтов нет фиксированного эквивалента в часах. Это относительная единица: 1 сп = сложность эталонной задачи. Для конвертации в часы используйте historical conversion rate вашей команды: разделите среднее количество отработанных часов за спринт на velocity. Обычно 1 сп = 4-8 часов, но это индивидуально для каждой команды.
Да, сторипоинты можно использовать в Kanban, но с оговорками. В Kanban нет фиксированных спринтов, поэтому velocity считается не за спринт, а за неделю или месяц. Kanban-команды часто используют вместо сторипоинтов Cycle Time — время прохождения задачи от начала до конца. Выбор зависит от специфики команды.
Если оценки расходятся (один даёт 3 сп, другой — 13), это сигнал, что задачу плохо понимают. Декомпозируйте задачу на более мелкие части. Обсудите, какие риски и неопределённости видят разные разработчики. Если задача крупная — оцените её как Spiko (исследование на 2-4 дня) вместо сторипоинтов.
Переход занимает 3-6 спринтов. Начните с выбора шкалы (Фибоначчи — safest choice) и определения эталонной задачи. Проведите 2-3 Planning Poker сессии. После каждого спринта считайте velocity. Не конвертируйте сторипоинты в часы — дайте команде привыкнуть к новой системе. Через 3 спринта вы увидите, насколько улучшилось планирование.
Нет, оценка не меняется. Сторипоинты — это предварительная оценка сложности, сделанная до начала работы. После выполнения задачи оценка остаётся той же, даже если реальные трудозатраты отличались. Изменение оценки post-factum искажает статистику и лишает смысла прогнозирование. Анализируйте расхождение на ретроспективе, но не меняйте оценку задним числом.
Итоги
Мы разработаем мобильное приложение под ключ
IT Sectr создаёт приложения для iOS и Android для стартапов и бизнеса с 2017 года. Мы проконсультируем вас и предложим наилучшее решение.
Читайте также