1 просм. 5 мин чтения
Scrum покер строгого спринта
У команд разработки исповедующих scrum есть забава - планировать спринты. Одна из таких методик — покер планирования. Это техника коллективной оценки задач. Её предком считают Wideband Delphi Барри Боэма из 1970-х, современную форму в 2002 году описал Джеймс Греннинг. Метод получил широкую огласку после книги Майка Кона Agile Estimating and Planning 2005 года.
Механика простая: команда знакомится с задачей, каждый независимо выбирает карту с оценкой, затем все одновременно вскрываются. Допустим, на столе лежат условные 3, 3, 5, 3 - значит оценка участников сходится. Но если рядом оказываются 2 и 13, значит, кто-то обладает тайным знанием о задаче и это должно заставить остальных членов команды задуматься. Planning Poker помогает выслушать разные суждения о сложности и рисках.
Обычно для карт используют последовательность, похожую на Фибоначчи: чем больше задача, тем шире шаг в оценке.
И так, чтобы как-то развеселить процесс планирования - предлагаю вашему вниманию свою колоду.
0 — «Призрак бэклога»
В Planning Poker: задача фактически не требует работы.
Что означает: всё уже сделано, только Jira об этом ещё не знает.

Это задача, которую починили соседним коммитом, закрыли другим релизом или реализовали полгода назад, но забыли сообщить бэклогу.
½ — «Точка с запятой»
В Planning Poker: изменение настолько маленькое, что единица кажется расточительством.
Что означает: минимальная и хорошо понятная правка.

Исправить условие. Поменять текст. Добавить ;.
1 — «Одиночный коммит»
В Planning Poker: маленькая локальная задача с понятным результатом.
Что означает: сделал, проверил, закоммитил.

Редкий представитель бэклога, про которого разработчик говорит «там действительно немного» — и почти всегда это правда.
2 — «Парный фикс»
В Planning Poker: небольшая задача, но изменение затрагивает пару связанных мест.
Что означает: локально всё ещё просто, однако появляется зависимость.

Классический случай: изменил DTO — проверь маппер. Поменял API — обнови клиента. Исправил один конфиг — найди его брата-близнеца в production.
3 — «Тройной дозор»
В Planning Poker: небольшая знакомая задача, которую надо провести через обычный цикл разработки.
Что означает: код, тесты, ревью.

Тут нельзя сказать: "У меня все работает"! Нужно доказать это остальному миру.
5 — «Узел зависимостей»
В Planning Poker: средняя задача с несколькими связанными изменениями.
Что означает: начинаются настоящие зависимости.

Это тот размер, где задача перестаёт быть функцией и начинает становиться системой.
Контроллер тянет сервис. Сервис — схему. Схема — миграцию. Миграция — тесты. Тесты — разработчика. Больше возни чем реальной работы.
8 — «Спрут интеграций»
В Planning Poker: заметная задача с внешними зависимостями и существенной неопределённостью.
Что означает: собственный код — только часть приключения.

API, токены, вебхуки, очереди и доступы — у каждого щупальца свой контракт, таймаут и способ отвалиться.Свой код ещё можно починить. Настоящая интеграция начинается там, где для следующего шага нужен ответ другого разработчика или целой команды.
13 — «Чёртова миграция»
В Planning Poker: крупная задача с высоким риском и несколькими сценариями отказа.
Что означает: надо изменить систему так, чтобы данные пережили разработчиков.

Миграция схемы. Перенос данных. Обратная совместимость. Переключение трафика. Проверка. Rollback.
У хорошей миграции всегда есть план отката.
У плохой тоже есть план отката, просто называется он «восстановить бэкап и молиться».
20 — «Монолит на шее»
В Planning Poker: задача слишком велика или слишком связана с остальной системой, чтобы относиться к ней как к обычной истории.
Что означает: пора искать границы и декомпозировать.

Хотел добавить поле и понеслось. Отказал общий базовый класс 19.. года, XML-конфигурацию, три deprecated-библиотеки и комментарий:
// temporary workaround
История умалчивает, временно относительно чего.
40 — «Собор легаси»
В Planning Poker: перед нами уже не столько задача, сколько экспедиция.
Что означает: значительная часть работы уйдёт на восстановление контекста.

Документация неполна. Тесты знают не всё. Код знает всё, но разговаривает на древнем диалекте. Остается уповать на высшие силы чтобы изменения встали как нужно.
В таких задачах сначала приходится заниматься программной археологией, а уже потом программированием.
100 — «Переписать с нуля»
В Planning Poker: это уже не нормальная оценка задачи, а сигнал, что под видом тикета в спринт пытаются протащить проект.
Что означает: границы задачи исчезли за горизонтом.

Переписать с нуля звучит как способ оставить старые проблемы в старом коде. На практике в репозиторие уже живут старые проблемы и потихоньку пробираются новые.
? — «Туманное ТЗ»
В Planning Poker: оценивать пока нечего.
Что означает: неизвестен результат, критерии приёмки или существенная часть условий.

Это мое любимое. Пойди туда — не знаю куда, принеси то — не знаю что.
∞ — «Вечный TODO»
В Planning Poker: задача не имеет обозримых границ.
Что означает: требуется исследование, ограничение scope или декомпозиция.

Имеет смысл использовать, когда слышим фразы:
- «Улучшить производительность».
- «Навести порядок в архитектуре».
- «Сделать нормальную авторизацию».
Технически работа существует. Практически Definition of Done ушёл за горизонт и отключил геолокацию.
☕ — «Право на перекур»
В Planning Poker: это не оценка.
Что означает: команда больше не оценивает задачу, а генерирует случайные числа с выражением профессиональной уверенности.

Иногда лучшая техника оценки — взять паузу.
И ещё одна карта, которую лучше не разыгрывать
В колоду просится отдельный туз — «Деплой в пятницу».

«Туз пятничный» — знак отличия разработчика, который выкатил релиз перед выходными и остался разбираться с последствиями. В нашей вымышленной IT-символике это отметка "опыта", самоуверенности и дорогого урока.
Послесловие
Надеюсь, эта колода немного разбавит серьёзность планирований и добавит юмора в вечные споры о сроках задач.Всем понятных требований, релизов без сбоев, миграций с рабочим rollback и хорошего настроения.И главное — не разыгрывайте туза по пятницам.