Оценка времени выполнения задачи — одновременно простая и рискованная задача для команд разработки. Неверная оценка часто приводит к срыву графиков или провалу проекта. Бизнес воспринимает оценки как обязательства, а разработчики — как предположения. Этот разрыв в восприятии создаёт проблемы.
Проблемы традиционной оценки времени
Проблемы с оценкой времени не ограничиваются субъективным восприятием. Необходимо учитывать:
- Корреляция оценки и оценивающего: Время, затраченное старшим разработчиком и джуниором, будет отличаться.
- Неидеальные условия: В реальности на разработчиков влияют срочные встречи, письма, мессенджеры, что искажает оценку.
Story Points: альтернативный подход
Метод Story Points — популярная альтернатива оценке времени. Вместо оценки времени оцениваются усилия, необходимые для решения задачи. Это включает объём работы, техническую сложность и риски.
Ключевые аспекты Story Points:
- Относительность оценок: Задачи оцениваются относительно друг друга, создавая универсальную шкалу, независимую от опыта оценивающего.
- Замена часов на абстрактные баллы: Это устраняет противоречия в восприятии оценки разработчиками и менеджерами, а также минимизирует влияние отвлекающих факторов.
Шкалы оценки Story Points
Для оценки можно использовать различные шкалы:
- Числа Фибоначчи: (1, 2, 3, 5, 8, 13, 20 и т.д.). Эта последовательность отражает рост неопределённости с увеличением сложности.
- Альтернативные шкалы: «Майки» (S, M, L, XL) или породы собак (чихуахуа, мопс, дог и т.д.). Эти шкалы повышают абстракцию от времени.
Покер Планирования и командная оценка
Индивидуальная оценка задач — ошибка. Важно привлекать всю команду. Покер Планирования (Planning Poker) — эффективный метод командной оценки.
Процесс Покер Планирования:
- Участникам раздаются карты с числами из шкалы оценки.
- Выбирается задача, обсуждаются требования.
- Участники выбирают карту и кладут её рубашкой вверх.
- Показ карт: при совпадении — оценка фиксируется, при расхождении — обсуждение продолжается.
Аффинная оценка:
Аффинная оценка — метод безмолной сортировки карт задач по сложности. Карты располагаются на стене, участники перемещают их без обсуждения, затем проводится обсуждение и определение границ сложности.
Story Points и планирование проекта
Перевод Story Points в часы невозможен. Графики, построенные на основе времени выполнения задач, оцененных в одинаковое количество Story Points, показывают нормальное распределение, но хвосты графиков пересекаются, что демонстрирует нелинейную зависимость между Story Points и временем.
Важно: Не переводить Story Points в часы, а отслеживать скорость команды (velocity) — количество Story Points, которое команда закрывает за спринт. Скорость — мощный инструмент планирования, но это относительная величина, и её нельзя сравнивать между разными командами.
Практические советы
- Калибровка оценок: Используйте уже реализованные задачи для калибровки оценки новых.
- Новые проекты: Используйте числа Фибоначчи для начального распределения задач по шкале.
- Дискуссия важна: Дискуссия важна, даже если оценки близки.
- Стабильность оценок: Ошибки будут компенсироваться в будущем. Избегайте частых изменений оценок.
- Оценка багов: Выберите подход и придерживайтесь его, чтобы не искажать данные о скорости команды.
- Нулевые оценки: Рассмотрите возможность введения оценки 1/2 балла.
- Многоитерационные задачи: Не изменяйте оценку, учитывайте оставшуюся работу при планировании следующей итерации.
- Регулярные ретроспективы: Регулярные ретроспективы помогают анализировать оценки и улучшать процесс.
Story Points и Покер Планирования — эффективные инструменты для оценки задач в разработке. Важно понимать принципы относительности оценок, использовать выбранную шкалу последовательно и отслеживать скорость команды для долгосрочного планирования. Регулярные ретроспективы помогут улучшить процесс оценки и повысить эффективность работы команды.