Что такое Story Points и как их использовать

Story Points, метод оценки сложности задач в Agile без привязки ко времени. Разбираем принципы работы, шкалу Фибоначчи, планирование покер и практическое применение сторипоинтов.

10 мин чтения
Руслан Авдеев
agilescrumуправление проектамиразработка

Менеджер спрашивает: "Сколько займет эта задача?" Разработчик думает: "Ну, если ничего не сломается, API будет работать, и меня не отвлекут встречами, часа три. Но реально дня два, а может и неделя". Знакомая ситуация?

Оценивать разработку в часах, всё равно что предсказывать погоду на месяц вперед. Слишком много переменных, слишком много неизвестного. Поэтому команды перешли на Story Points, систему оценки, которая учитывает не время, а сложность.

Что такое Story Points

Story Points (сторипоинты), это относительная единица измерения для оценки сложности пользовательских историй в Agile-методологиях. Вместо того чтобы говорить "эта задача займет 8 часов", команда говорит "эта задача стоит 5 поинтов".

Придумали их в рамках методологии Extreme Programming, а популярными сделали Scrum и Agile. Основная идея: сложность задачи зависит не только от времени написания кода.

Сторипоинты оценивают общую сложность задачи: трудоемкость, объем работы, риски и неопределенность

При оценке в поинтах команда учитывает три фактора. Во-первых, сложность самой реализации, насколько трудно написать код. Во-вторых, объем работы, сколько всего нужно сделать. В-третьих, неопределенность, насколько понятны требования и технические детали.

Для упрощения планирования используйте калькулятор человеко-дней, чтобы конвертировать сторипоинты в приблизительные сроки после того, как команда определит свою velocity.

Как работают сторипоинты

Принцип работы строится на относительной оценке. Команда выбирает простую задачу как эталон и присваивает ей базовое значение, обычно 1, 2 или 3 поинта. Все остальные задачи оцениваются относительно этого эталона.

Например, команда взяла задачу "добавить кнопку на форму" и оценила её в 2 поинта. Следующая задача, "интеграция с платежной системой". Разработчики понимают, что она в 4 раза сложнее базовой. Значит, ставят 8 поинтов.

- Эталонная задача, простая, понятная, с минимумом неопределенности
- Командная оценка, все участники высказывают мнение, приходят к консенсусу
- Регулярная калибровка, по мере работы команда уточняет свое понимание шкалы
- Учет velocity, сколько поинтов команда закрывает за спринт

Velocity, это скорость команды, количество поинтов, которое она реально выполняет за спринт. Обычно стабилизируется после 3-4 спринтов. Если команда стабильно делает 30 поинтов за двухнедельный спринт, можно планировать на эту цифру.

Отличия Story Points от часовой оценки

Главное отличие, абстракция от времени. Когда оценивают в часах, каждый разработчик представляет свою скорость работы. Джуниор думает "мне на это 3 дня", сеньор думает "мне 3 часа". В итоге оценки расходятся.

Сторипоинты решают эту проблему. Они измеряют сложность относительно других задач, а не абсолютное время. Для джуниора и сеньора задача имеет одинаковую сложность, 5 поинтов, хотя время выполнения разное.

Сравнение подходов

ПараметрЧасыStory Points
Единица измеренияАбсолютное времяОтносительная сложность
Зависимость от опытаВысокаяНизкая
Точность оценкиИллюзия точностиПризнание неопределенности
Давление на командуСильноеУмеренное

Еще один важный момент: оценка в часах создает давление. Если разработчик сказал "8 часов", а потратил 12, возникает чувство вины. С поинтами такого нет, они не обещание, а оценка сложности.

Инструменты для планирования: Калькулятор бизнес-метрик План-факт анализ

Шкала Фибоначчи в оценке задач

Большинство команд используют последовательность Фибоначчи для оценки: 1, 2, 3, 5, 8, 13, 21. Почему не просто 1, 2, 3, 4, 5? Потому что с ростом сложности растет и неопределенность.

Разница между задачей на 1 поинт и на 2 понятна, одна чуть сложнее. Но между задачей на 20 и 21 поинт разница теряется в шуме неопределенности. Последовательность Фибоначчи отражает эту реальность.

- 1-2 поинта, тривиальные задачи, пара часов работы
- 3-5 поинтов, стандартные задачи, день-два работы
- 8-13 поинтов, сложные задачи, требуют погружения
- 21+ поинтов, эпики, нужно разбивать на подзадачи

Если задача оценивается больше 13 поинтов, это сигнал, её нужно декомпозировать. Слишком большая задача содержит слишком много неопределенности. Лучше разбить на несколько более предсказуемых частей.

Пример:
Задача "Сделать личный кабинет", 34 поинта. Слишком большая, разбиваем:
, Авторизация и регистрация, 5 поинтов
, Профиль пользователя, 3 поинта
, История заказов, 8 поинтов
, Настройки уведомлений, 5 поинтов
Итого: четыре понятные задачи вместо одной непредсказуемой

Planning Poker, коллективная оценка

Planning Poker, популярная техника оценки в сторипоинтах. Каждый участник команды получает набор карт с числами Фибоначчи. Product Owner описывает задачу, команда задает вопросы, потом все одновременно показывают свои оценки.

Если оценки расходятся сильно, например, один поставил 2, другой 13, это повод для обсуждения. Тот, кто поставил 2, возможно, знает простое решение. Тот, кто поставил 13, видит скрытую сложность. Обсуждение помогает команде прийти к общему пониманию.

- Синхронность, все показывают карты одновременно, чтобы избежать якорения
- Обсуждение разброса, если оценки различаются более чем в 2 раза
- Консенсус, команда приходит к единой оценке через обсуждение
- Таймбокс, на оценку одной задачи не больше 5-10 минут

Есть три специальные карты в Planning Poker. Карта с вопросом означает "мне нужно больше информации". Карта с чашкой кофе, "давайте сделаем перерыв". Карта с бесконечностью, "эта задача слишком большая, нужна декомпозиция".

Типичные ошибки при Planning Poker

Первая ошибка, превращение оценки в обязательство. Разработчик боится поставить большую цифру, чтобы не выглядеть медленным. Менеджер воспринимает оценку как жесткий дедлайн. Это убивает всю суть сторипоинтов.

Вторая ошибка, влияние авторитета. Когда сеньор-разработчик говорит первым, остальные просто соглашаются. Поэтому все показывают карты одновременно, чтобы каждый выразил свое мнение независимо.

Третья ошибка, попытка конвертировать поинты в часы. "У нас поинт равен 4 часам", это противоречит природе сторипоинтов. Они измеряют сложность, не время. Конверсия происходит естественно через velocity, но не прямым соотношением.

Преимущества и недостатки Story Points

Главное преимущество, снижение давления на команду. Разработчики не боятся давать оценки, потому что не обещают конкретные сроки. Это улучшает честность в планировании.

Второе преимущество, учет неопределенности. Шкала Фибоначчи признает, что точность оценки падает с ростом сложности. Это более реалистичный подход, чем притворяться, что можно точно оценить большую задачу в часах.

Преимущества:
- Снижение стресса от оценки задач
- Фокус на относительной сложности
- Командное понимание задач
- Учет всех аспектов сложности
- Предсказуемость через velocity
- Легче планировать долгосрочные цели

Но есть и недостатки. Главный, непонятность для стейкхолдеров. Заказчик спрашивает "когда будет готово", а команда отвечает "28 поинтов". Для бизнеса это не ответ.

Недостатки:
- Сложность коммуникации с бизнесом
- Требует времени на обучение команды
- Не работает для индивидуальной разработки
- Velocity стабилизируется не сразу
- Может превратиться в метрику производительности
- Не подходит для фиксированных контрактов
Сторипоинты, инструмент планирования, а не метрика производительности разработчиков

Еще один риск, gamification. Команда начинает "играть в цифры", искусственно завышая оценки, чтобы потом перевыполнять план. Или менеджмент начинает сравнивать velocity разных команд, что бессмысленно, у каждой команды своя шкала оценки.

Анализ эффективности: Тест тайм-менеджмента

Практические советы по внедрению

Начните с обучения команды. Объясните философию сторипоинтов, это не время, а сложность. Покажите, что оценка не обязательство, а прогноз при текущем понимании задачи.

Выберите эталонную задачу вместе. Возьмите простую историю, которую все понимают одинаково, и присвойте ей 2 или 3 поинта. Все последующие оценки будут относительно этого эталона. По мере работы эталон может меняться, это нормально.

Как определить velocity команды

В первом спринте просто оцените задачи и возьмите комфортное количество. Не пытайтесь "заполнить спринт", лучше взять меньше и успеть. В конце спринта посчитайте, сколько поинтов реально закрыли.

Во втором и третьем спринтах делайте то же самое. К четвертому спринту у вас появится средняя velocity, примерное количество поинтов, которое команда закрывает стабильно. Используйте это для планирования.

Пример расчета:
Спринт 1: запланировали 25 поинтов, закрыли 20
Спринт 2: запланировали 22 поинта, закрыли 24
Спринт 3: запланировали 24 поинта, закрыли 22
Средняя velocity: (20+24+22)/3 = 22 поинта
Для следующего спринта планируйте около 22 поинтов

Работа с неопределенностью

Если задача непонятна, не оценивайте её сразу. Лучше сделайте spike, исследовательскую задачу на 2-3 поинта, чтобы разобраться в технических деталях. После spike оцените основную задачу с меньшей неопределенностью.

Используйте диапазоны для очень неопределенных задач. Вместо "8 поинтов" можно сказать "от 5 до 13". Это честнее отражает уровень неопределенности и помогает принимать взвешенные решения о приоритетах.

Калибровка шкалы оценки

Раз в квартал проводите ретроспективу оценок. Возьмите закрытые задачи, посмотрите их оценки и обсудите: правильно ли мы оценили? Что было сложнее или проще, чем ожидали? Нужно ли пересмотреть эталонную задачу?

Это помогает команде постоянно улучшать точность оценок и поддерживать общее понимание шкалы. Особенно важно при изменении состава команды или технологического стека.

Коммуникация с бизнесом

Стейкхолдерам объясняйте через velocity. "Наша скорость, 25 поинтов за спринт. Этот релиз оценен в 75 поинтов. Значит, нужно три спринта, то есть около шести недель". Так бизнес получает понятные сроки, но с учетом реальной производительности команды.

Не пытайтесь привязывать поинты к часам жестко. Это создаст ложные ожидания. Лучше показывайте исторические данные: "За последние три месяца мы стабильно закрываем 22-25 поинтов за спринт, вот графики".

Заключение

Story Points, это инструмент, который помогает командам честно оценивать сложность задач без иллюзии точности. Они снижают стресс, улучшают коммуникацию внутри команды и со временем дают предсказуемость через velocity. Главное, не превращать их в метрику производительности и не пытаться жестко привязать к часам. Используйте шкалу Фибоначчи, проводите Planning Poker, калибруйте оценки и помните: сторипоинты измеряют сложность, а не время.

Похожие статьи

Все статьи блога

Всего 737 статей в блоге ToolFox