Найти тему

Почему в Agile используют последовательность Фибоначчи?

Оглавление

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

Что такое последовательность Фибоначчи?

Последовательность Фибоначчи представляет собой последовательность чисел, где каждое следующее число — сложение двух последних чисел, начиная с 0 и 1.

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55…

Это можно выразить формулой: Xn = Xn-1 + Xn-2

Последовательность Фибоначчи близка к золотому сечению и встречается в некоторых природных явлениях. Возможно, поэтому её использование удачно накладывается на повседневную жизнь.

Последовательность Фибоначчи в Agile

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

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

Большие, более сложные задачи получают больше Story Points (очков историй), а меньшие задачи получают меньше SP. После этого команда может расставить приоритеты для всех разобранных задач.

В гибкой разработке обычно берётся часть последовательности от 1 до 13:

1, 2, 3, 5, 8, 13

Для крупных эпиков или групп историй может использоваться 21 и далее. Для спринта подходящими считаются задачи в 1-5, иногда 8, баллов, так как их легче выполнить. Если команда ставит задаче высокий балл, стоит задуматься, как её можно разделить на более мелкие части.

Как работать с большими пользовательскими историями?

Преимущества оценки через последовательность Фибо

В Agile оценка через последовательность Фибоначчи (иногда сокращается до Фибо) не единственный способ поставить баллы. Также используются другие относительные шкалы, футболки с размерами от XS до XXL и прочее.

Выбор системы оценок остаётся за командой, а мы назовём преимущества метода Фибо:

  • Баллы ставятся по экспоненте, чем труднее задача, тем больший промежуток между соседними оценками. Это помогает больше детализировать мелкие задачи и оставить запас для сложных задач — неопределённость с ними на момент планирования решится уже в работе. Например, шаг между 1, 2, 3 понятен, такой балл присваивается небольшим, ясным задачам. Оценка 5 и 8 относится к средним задачам, промежуток в 2 и 3 балла позволяет учитывать меньше деталей. И чем абстрактнее задача, тем больше возрастает неопределённость — 13, 21...
  • Используются целые числа, которые дают более конкретное представление о величине (их можно соотнести с количеством предметов и почувствовать масштаб).
  • Заставляют сделать выбор между «больше или меньше», например, 3 или 5, 5 или 8. Это происходит интуитивно, особенно, когда накапливается опыт в оценивании.
  • Уменьшает время на планировании. В Agile ценится работа, а не чрезмерное планирование, а нелинейная последовательность снижает время на анализ. Когда промежуток 5, а затем 8, задачи распределить легче, чем когда используется шкала 4, 5, 6, 7. При более детальной шкале оценок, есть вероятность, что команда закопается в обсуждение задач с разницей в балл.
  • Убирает заблуждение, что время на задачу можно уменьшить пропорционально, если работать вдвоём, втроём и так далее. Такое заблуждение часто бывает при шкале оценок 2^n (1, 2, 4...).

Как использовать последовательность

Как и большинство scrum-команд, мы перенесли последовательность 1, 2, 3, 5, 8, 13, 21 на карты для покерного планирования. Scrum-мастер проинструктировал команду, что самые простые задачи получают 1 балл, и чем более сложна и абстрактна задача, тем выше её балл.

Затем на планировании или груминге проводится классическое покерное планирование:

  • Владелец продукта садится вместе с командой, рассказывает про пользовательскую историю.
  • Каждый участник кладёт карту с числом из шкалы Фибоначчи, которое, по его мнению, отражает размер задачи.
  • Карты раскрываются.
  • Авторы самого высокого и самого низкого балла объясняют свою позицию.
  • Команда обсуждает задачу ещё раз, затем оценки ставятся снова.
  • Для каждой пользовательской истории проводится от 1 до 3 раундов. Если команда не приходит к согласию, владелец продукта должен уточнить задачу.

Использование последовательности Фибоначчи в планировании опирается на теорию информации. Хотя кажется, что с линейной шкалой команда будет оценивать задачи точнее, это не совсем так. Чем абстрактнее элемент бэклога, тем труднее сказать разницу, например, дать ему 17 или 18 баллов? Если вас интересует математическое обоснование планирование со шкалой Фибо, вы можете прочитать статью "Why Progressive Estimation Scale Is So Efficient For Teams".

А какую шкалу для оценок используете вы?