Оценка и story points

Story Points

Что это такое

Story points — это абстрактная единица: работу измеряют относительно другой работы, а не в часах. Команда договаривается о грубой шкале и оценивает элементы друг относительно друга. Сумма небольшой партии затем служит прогнозом того, что уместится в итерацию, а артефакт — оценённый бэклог.

Почему это важно

Команды плохо дают абсолютные оценки и куда лучше справляются со сравнениями: на вопрос «это больше прошлого?» ответить можно, а «сколько часов?» приглашает догадку, переодетую в число. Относительная оценка переживает и обнаружение забытой задачи, потому что шкала измеряет элемент относительно соседей, а не относительно часов. Однако режимы отказа столь же конкретны: story points читают как показатель продуктивности, velocity сравнивают между командами, а шкала не имеет общего смысла, — и любой из них превращает помощь в прогнозировании в метрику производительности, после чего команда начинает завышать оценки или играть с ними.

Ключевые идеи

Оценивайте относительно опорного элемента, а не часов

Держите два-три известных элемента и сравнивайте всё с ними: шкалы 1, 2, 3, 5, 8, 13 без привязанных часов достаточно.

Опорный 3  добавить фильтр в существующий список
Опорный 8  построить простую форму с валидацией и состояниями ошибок

Новый элемент: «массовый импорт заказов из файла»
Сравнение: больше формы (неизвестные форматы файлов), меньше полной
           переделки оформления заказа -> 13, или разбить его

Шкала намеренно грубая

Тонкие различия — ложная точность, поэтому два трудно различимых элемента оценивайте одинаково и идите дальше: неопределённость в работе, а не в числе.

Оценивайте партию, а не человека

Команда оценивает вместе, и число принадлежит элементу. Индивидуальные оценки приглашают якорение и превращают обсуждение в соревнование.

Velocity прогнозирует партию; она не сравнивает команды

Внутри одной команды среднее по последним итерациям прогнозирует следующую. Между командами числа не находятся на одной шкале, и их сравнение не измеряет ничего, кроме определения story point каждой командой.

Переоценивайте только когда элемент изменился

Оценка, которая всё время двигается вместе со сроком, — обязательство под маскировкой: если элемент изменился, переоцените его и скажите, что изменилось.

Практика

Постройте опорную шкалу из трёх элементов

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

Готово, когда: два человека независимо оценивают те же пять элементов и совпадают в пределах одного шага минимум по четырём из них.

Проверьте, что на самом деле предсказывает ваша velocity

Возьмите последние шесть итераций: сумму оценок как сделанного и то, что было спрогнозировано.

Готово, когда: вы можете сказать, предсказало ли среднее следующую итерацию в пределах примерно двадцати процентов, и назвать одну причину промахов.

Частые ошибки

  • Story points как метрика продуктивности — команда завышает, и прогноз теряет смысл; исправить: держите story points на элементах, никогда на людях.
  • Сравнение velocity между командами — шкалы не взаимозаменяемы; исправить: прогнозируйте только внутри команды, которая делала оценки.
  • Часы под маскировкой — «один story point равен дню» возвращает абсолютную оценку и её догадки; исправить: держите минимум три опорных элемента и сравнивайте с ними.
  • Мелкозернистые шкалы — точность, которую работа не поддерживает; исправить: держите шкалу грубой и оценивайте близкие элементы одинаково.
  • Переоценка под давлением — оценки становятся обязательствами; исправить: переоценивайте только при изменении объёма и говорите, что изменилось.

Что читать дальше