Как проходит покер планирования

Покер планирования (planning poker) — способ оценки задач, при котором команда голосует картами одновременно. У каждого участника одинаковая колода с числами. Команда обсуждает пользовательскую историю, потом все разом открывают выбранные карты. Если числа сильно разошлись, авторы крайних оценок объясняют свою логику, и команда голосует снова. Вся техника держится на одновременном раскрытии. На обычной встрече по оценке первое прозвучавшее число часто становится итоговым, потому что остальные невольно подстраиваются под него. В покере планирования первого числа нет: свои оценки все показывают в один момент.

Откуда взялся покер планирования

Истоки техники в методе Дельфи, который разработали в корпорации RAND в 1950–60-х годах. Группа экспертов анонимно отвечает на вопрос, видит сводку ответов остальных и уточняет свой ответ в следующем раунде. В 1970-х Барри Боэм и Джон Фаркуар приспособили метод для оценки программных проектов и назвали его Wideband Delphi. Между раундами эксперты в нём уже обсуждали свои оценки друг с другом.

Покер планирования — облегчённый потомок этого метода. Джеймс Греннинг описал его в короткой статье 2002 года как способ оценивать задачи при планировании релиза в agile-команде без затяжных встреч. В 2005 году вышла книга Майка Кона «Agile Estimating and Planning». В главе о способах оценки технике посвящён отдельный раздел, и книга заметно помогла ей разойтись по Scrum- и XP-командам. Сегодня ею чаще всего оценивают бэклог в story points.

Правила по шагам

Обычный раунд выглядит так.

  1. У каждого участника колода. Чаще всего это модифицированная последовательность Фибоначчи: 0, ½, 1, 2, 3, 5, 8, 13, 20, 40, 100, плюс «?» и ☕. Почему промежутки между картами растут, объясняет страница о шкале Фибоначчи.
  2. Владелец продукта зачитывает историю: что нужно пользователю и по каким критериям задачу примут.
  3. Команда задаёт вопросы. Их должно хватить, чтобы понять размер задачи. Проектировать решение на этой встрече не нужно.
  4. Каждый молча выбирает карту. Подсказки вроде «ну тут немного» во время выбора под запретом.
  5. Карты открывают одновременно.
  6. Если оценки близки, число записывают. При раскладе 5, 5, 5, 8 обычно хватает пары фраз, чтобы сойтись на пятёрке.
  7. Если оценки далеко друг от друга, первыми говорят авторы самой высокой и самой низкой карты. После этого команда голосует ещё раз.

Большинство историй оценивают за один-два раунда. Если и в третьем раунде карты разбросаны по всей колоде, новое голосование вряд ли поможет. Истории не хватает информации, или её пора делить на части.

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

Пример раунда: 3 против 13

Команда интернет-магазина берёт в оценку историю: «Как покупатель, я хочу видеть в личном кабинете, где сейчас мой заказ, чтобы не звонить в поддержку».

Владелец продукта объясняет, что у заказа уже есть своя страница и на ней нужен блок со статусом доставки. У команды два вопроса. Для каких заказов? Для всех, которые ещё не доставлены. Статус нужен в реальном времени? Хватит обновления раз в несколько минут.

Голосуют пятеро разработчиков. Открываются карты 3, 3, 5, 5, 13.

Одну из троек выбрал Антон, 13 — Лена, и ведущий просит их высказаться первыми.

Антон: «Статус заказа у нас уже лежит в базе, его показывает админка. Выведем его на страницу и сверстаем блок. День, максимум два».

Лена: «В базе только наш внутренний статус: собран, передан в доставку. Где посылка дальше, знают курьерские службы. Их у нас три, у каждой своё API, а одна присылает статусы только вебхуками. Придётся писать три интеграции и сводить три набора статусов к одному».

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

Второй раунд: 8, 8, 8, 13, 8.

Команда записывает 8 и добавляет в описание истории заметку про интеграции со службами доставки. К Лениной тринадцати, которая осталась и во втором раунде, стоит отнестись серьёзно, и многие команды на этом месте разделили бы историю: сначала одна служба доставки, остальные отдельными задачами. В любом случае оценка в бэклоге теперь учитывает риск, о котором знал один человек. Скажи Антон до голосования «да там на тройку», история вполне могла уйти в спринт с тройкой и застрять на середине.

Типичные ошибки

Якорение

Любое число, названное до раскрытия, тянет голоса к себе. Это может быть «ну это же тройка, да?» от коллеги или брошенное владельцем продукта «там быстро». За живым столом карты держат рубашкой вверх. В онлайн-инструменте значения должны оставаться скрытыми до раскрытия, а в идеале вообще не попадать на чужие экраны раньше времени.

Давление старших

Джуны часто подтягивают свою оценку к оценке тимлида: сразу или на переголосовании, когда уже видели его карту. Спорить с самым опытным человеком в комнате неуютно. Часть давления снимает правило из шага 7, если соблюдать его всегда, кем бы ни были авторы крайних карт. В примере выше риск заметила как раз Лена, чья карта сильнее всех отличалась от остальных.

Оценка неготовой истории

Если команда задаёт вопросы, на которые никто не может ответить, голосование всё равно выдаст число. Выглядеть оно будет точным, а значить почти ничего. В такой момент кто-то должен выложить «?», а историю стоит вернуть на доработку. Пять минут уточнений на следующей неделе обойдутся дешевле требования, которое всплывёт посреди спринта. Что делать с картами «?» и ☕, подробно написано на странице о шкале Фибоначчи.

Среднее вместо разговора

При голосах 2, 3 и 13 хочется посчитать среднее, записать 5 и идти дальше. Среднее прячет самое полезное, что показал раунд: один человек видит риск, которого не видят другие. Сначала обсудите расхождение, потом переголосуйте.

Бесконечное обсуждение

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

Как провести покер планирования удалённо

Распределённая команда не может поднять карты над столом. Если писать оценки в чат созвона, возвращается якорение: кто написал первым, тот и задал тон. Нужно общее место, где каждый голосует втайне, а карты переворачиваются одновременно.

На практике удалённая сессия выглядит так. Ведущий создаёт комнату и кидает ссылку в чат созвона. Текст истории показывают через демонстрацию экрана, чтобы все читали одно и то же. Участники выбирают карты в комнате. Там видно, кто уже проголосовал, но не видно, какую карту он выбрал. Когда проголосовал последний, кто-то открывает карты, и обсуждение идёт голосом. Для переголосования ведущий начинает новый раунд, и прошлые карты сбрасываются.

Так работает и SprintPoker, прямо в браузере и без регистрации. Что в нём есть и чего нет, написано на странице о проекте.

Удалённым сессиям помогают две привычки. Пусть ведущий после каждого раскрытия зачитывает результат вслух: у людей открыты разные окна, и на комнату смотрят не все. И держите сессии короткими. Оценка по видео утомляет быстрее, чем в переговорке, и уставшая команда начинает ставить пятёрку всему подряд, лишь бы закончить.

Покер планирования и Scrum

Покер планирования не привязан к конкретному фреймворку, но чаще всего им пользуются Scrum-команды. Где оценка стоит между грумингом и планированием спринта и что делает скрам-мастер во время сессии, читайте на странице про scrum poker.