Какую шкалу использовать
Шкала оценивания
Чаще всего команды разработки используют следующие две шкалы оценки:
- ряд Фибоначчи,
- простое удвоение.
В основе каждой из этих шкал лежит своя логика.
Ряд Фибоначчи
Ряд Фибоначчи — ряд чисел, в котором каждое последующее число является суммой двух предыдущих: 1, 2, 3, 5, 8, 13, 21, 34, 55 и так далее до бесконечности.
Как правило, команды используют «модифицированную» версию последовательности Фибоначчи: 0, 1, 2, 3, 5, 8, 13, 20, 40, 100.
В некоторых случаях команды добавляют к своей шкале нулевую оценку. Такая оценка присваивается историям настолько незначительным по размеру, что даже наименьший из возможных Story Points кажется завышенным.
Однако не стоит забывать, что бесплатный сыр бывает только в мышеловке. Если команда разработки принимает решение присваивать нулевые оценки историям, следует внимательно следить за количеством таких историй в бэклоге итерации. Несмотря на свой незначительный размер, масса таких историй может в совокупности дать огромный прирост к количеству усилий, которые придётся потратить на их выполнение.
Причина популярности этой последовательности среди команд разработки — постепенно прогрессирующее увеличение чисел. Чем больше размер работы, тем с меньшей точностью человек способен её оценить, поэтому постепенно возрастающие порядки чисел как нельзя лучше соответствуют этой особенности.
Проценты иллюстрируют, как при использовании ряда Фибоначчи увеличивается относительный размер элементов бэклога в зависимости от оценки. Так, размер элемента бэклога с оценкой в 5 Story Points примерно на 67% больше размера элемента бэклога, оценённого в 3 Story Points.
Если команда оценивает историю в 8 и более Story Points, ей стоит задуматься о необходимости вертикально декомпозировать такую историю.
Простое удвоение
Похожим образом работает простое удвоение, когда каждое следующее число в последовательности в два раза больше предыдущего, например: 1, 2, 4, 8, 16, 32.
В этом случае прогрессия чисел на увеличение идёт значительно активнее, чем в последовательности Фибоначчи.
Это не всегда соответствует темпу роста рисков и неопределённостей, связанных с размером работы. Поэтому команды разработки выбирают шкалу оценок, ориентируясь на особенности своей работы.
Процесс оценки
Теперь, когда вы разобрались с понятием Story Points и выделили его составляющие, вам осталось только присвоить нужное значение каждого элемента.
Оценка в Story Points всегда проводится с участием всей команды разработки. Каждый из членов команды выдвигает своё предположение о размере работы над элементом бэклога, основываясь на объёме и сложности задачи, а также учитывая риски и неопределённость.
В процессе оценки предположения разных членов команды могут отличаться друг от друга. Представим, что половина участников предложила оценку «3», а другая половина оценку «5». Самое важное — не усреднять оценку и не записывать «4». Разница в оценках может быть сигналом о том, что не все поняли размер работы или кто-то заметил обстоятельства, которые не видны остальным. В таком случае следует дать каждому члену команды возможность высказаться и обосновать своё мнение, после чего снова предложить свои оценки.
Оценку в Story Points можно представить в виде шкалы, которая отражает возрастающий размер работы, и команда разработки пытается найти место на этой шкале для каждого элемента бэклога продукта.
В зависимости от того, использовала ли ранее команда разработки Story Points для оценки, существует два подхода, которые могут помочь ей при оценке.
Команда оценивает бэклог продукта в первый раз
Если оценка проводится в первый раз, то определить относительную оценку размера элемента бэклога продукта на данном этапе не представляется возможным: ни один из элементов бэклога продукта ещё не оценён. В таком случае рекомендуется взять приблизительно средний по размеру элемент среди прочих и присвоить ему среднее значение из выбранной шкалы Story Points.
Например, команда разработки решила использовать для оценки ряд Фибоначчи. Тогда среднему элементу она может присвоить 4 Story Points. Предположим, что следующий элемент оказался явно меньше. Сравнив его со средним, команда может предположить, что он примерно в два раза меньше первого, и присвоить ему оценку 2 Story Points. И так далее.
Таким образом, после нескольких оценённых элементов бэклога продукта команда сможет сформировать общее понимание шкалы оценок в Story Points.
Команда оценивает бэклог продукта в течение проекта
Если команда уже проводила оценку, то каждый новый элемент бэклога продукта будет оцениваться относительно ранее оценённых. Причём лучше работает не поиск похожих по размеру элементов и присвоение аналогичной оценки, а сравнение оцениваемого элемента с несколькими другими. Такой метод называется триангуляцией. Его суть заключается в сравнении оцениваемого элемента бэклога с двумя другими: меньшего и большего размера.
Например, команде разработки необходимо оценить новую пользовательскую историю. Внимательно посмотрев на неё, команда понимает, что её размер явно больше размера дефекта с оценкой 1 Story Point, но меньше, чем пользовательская история с оценкой в 3 Story Points. Таким образом, команда может оценить новую пользовательскую историю в 2 Story Points.
Сравнение оценок разных команд разработки
Представим две разные команды разработки, которые используют Story Points для оценки элементов своих бэклогов продуктов. У каждой из этих команд есть по одной истории с оценкой 1 Story Point. Эти истории имеют одинаковые оценки, но они не будут иметь одинаковый размер относительно друг друга, потому что их оценивали разные команды относительно разных историй: первая команда относительно своих, а вторая команда относительно других.
Скорость команды разработки
В гибкой модели команда включает в бэклог только те элементы, которые предполагает реализовать во время итерации. Чтобы определить, что войдёт в бэклог итерации, необходимо оценить каждый элемент. Для этого команда учитывает темп реализации элементов бэклога продукта за каждую итерацию.
Сумма всех Story Points, присвоенных каждому элементу бэклога продукта, которую команда разработки реализовала в течение итерации, называется скоростью (velocity). Например, если она реализует десять элементов, каждый из которых оценивается в 3 Story Points, то её скорость будет равна 30.
Если команда разработки выполнила работу размером 30 Story Points в течение предыдущей итерации, то она может предположить, что в следующей итерации она также выполнит работу размером 30 Story Points.
Скорость может быть фактическая и прогнозируемая.
Фактическая скорость отражает размер всех элементов бэклога продукта (функций, дефектов, технической работы и работы для получения знаний), которые команда разработки успела реализовать за итерацию.
Прогнозируемая скорость отражает предположение команды разработки о том, сколько элементов бэклога продукта она успеет реализовать в будущей итерации.
Начиная новую итерацию, команда разработки прогнозирует её скорость на основе фактических скоростей нескольких прошлых итераций. Поэтому важно фиксировать фактическую скорость после каждой итерации.
Команда разработки не может включить элемент в бэклог без оценки, так как без оценки невозможно спрогнозировать скорость реализации.
Прогноз скорости будущей итерации важен не только команде, но и всем заинтересованным лицам. Они должны иметь возможность планировать свою работу с учётом прогноза команды разработки.
Например, в будущей итерации команда планирует автоматизировать формирование выписки по счёту. Руководство банка ожидает, что функция будет реализована в срок, поэтому может начать:
- Перенаправлять сотрудников, которые раньше формировали выписки вручную, на другую работу внутри банка.
- Готовить рекламные материалы об этой функции для клиентов.
- Обновлять базу знаний службы поддержки клиентов.