роения и работы.
Ситуация. Думая, что поступают правильно, все участники команды вкладываются в проект на 100 %. Scrum-мастер подготовил диаграмму сгорания задач (burndown chart). Вот только, как всегда, неожиданные события замедляют ход спринта, блокируя или замедляя выполнение одной или нескольких задач.
Последствия. Burndown-график не идет на убыль! Приверженность и вовлечение команды находятся под угрозой.
Как сделать лучше? Команде, приступившей к планированию, стоит немного расслабиться. Простой способ – определить цель спринта. Измерения и индикаторы не очень полезны во время спринта.
Ситуация. Команда несерьезно относится к доработке и пропускает этот этап или посвящает ему недостаточно времени. Участники считают, что эффективнее все сделать во время этапа планирования.
Последствия. Команда тратит много времени на обсуждение историй в безуспешных попытках определить, какие из них готовы к спринту.
Как сделать лучше? Практиковать доработку.
10Гармония в ежедневных схватках
Существуют крупные проекты, относительно которых однажды утром, слушая радио, понимаешь: они отстают. Причем, задержка уже насчитывает месяцы.
Фредерика Брукса, автора книги «Мифический человеко-месяц», спросили: каким образом проект может опаздывать на год? Он ответил еще сорок лет назад: отставание состоит из задержек на один день [36].
Чтобы быстро осознать и отреагировать на отставание проекта, следует каждый день проводить схватку.
10.1 Схватка как в регби?
Схватка в регби – это квинтэссенция коллективных усилий. Схватка в Scrum тоже имеет командный характер и основана скорее на обмене, чем на приложении усилий.
Если вы не любитель регби, можете использовать и другие термины.
Во Франции это событие часто называется daily, daily Scrum, иногда – DSM (daily Scrum meeting). Соглашусь, можно сколько угодно пытаться вдохновить игрой в регби разработчиков, скажем, из южной Окситании, но не уверен, что это поможет им привить ценности Scrum и поспособстует развитию в Аgilе-направлении.
В Экстремальном Программировании это собрание называется stand up meeting, из чего мы сразу понимаем, что мероприятие проводится стоя.
В этой главе представлена одна из важнейших Scrum-практик. Согласно опросам и обратной связи, она наиболее часто используется командами.
Бывает, команда говорит, что работает по принципу Scrum. На самом же деле участники разве что практикуют каждодневные собрания, чтобы отметить прогресс в работе.
Рисунок 10.1 – Схватка – знаменательный момент обмена
Отслеживание прогресса не является основной целью схватки. Ее смысл – в улучшении сотрудничества между участниками команды посредством коллективного и синхронизированного ответа на ежедневные изменения.
10.2 Изменения во время спринта
Схватка проводится ежедневно и выстраивает ритмический рисунок спринта, помогает команде продвигаться к цели, определенной во время планирования.
Если бы все всегда шло как запланировано, было бы меньше необходимости в схватках. Команда бы просто следовала плану. Но неожиданности всегда случаются.
Цитируя Хельмута фон Мольтке, «ни один план не переживает встречи с противником». Команда может столкнуться с двумя формами непредвиденных событий:
✓ те, что являются неотъемлемой частью спринта, называются препятствиями,
✓ те, что происходят из-за внешних изменений, то есть из-за проницаемости границы, которая защищает команду во время спринта.
Рисунок 10.1 – Схватка – знаменательный момент обмена
Непредвиденными мы называем события, которые не запланированы в начале спринта.
Во время сессии доработки, и уж тем более во время сессии планирования, команда постаралась минимизировать все риски (задавая вопрос какие риски? – согласно паттерну 6К). Препятствие – это риск, который команде не удалось сократить или предугадать заранее.
Препятствие блокирует или замедляет плавный ход спринта.
Примеры. Себастьяну, разработчику из команды Peetic, не удается загрузить изменения в Git; Лоран, специалист по картографированию, в выходные катался на лыжах и сломал руку.
Препятствия выявляются в ходе спринта.
Желание приводить все в порядок и делать наглядным подталкивает к составлению таблицы препятствий, где были бы описаны:
✓ состояние препятствия; здесь можно обозначить три колонки: выявлено, в процессе разрешения, разрешено,
✓ их вляние (определенное историями или задачами, выполнение которых невозможно или замедлено),
✓ дата их обнаружения.
Рисунок 10.3 – Таблица препятствий
Задача Scrum-мастера – в их устранении. Может потребоваться участие всей команды. Если команда не в силах устранить препятствие, оно может быть эскалировано на уровень экосистемы.
Команде ничего не мешает во время спринта. Scrum-мастер защищает ее от внешнего вмешательства, в частности со стороны заинтересованных сторон.
Но Scrum-мастер может о чем-то не знать или не сможет сказать нет, когда именно этот ответ ожидает команда. Это говорит о незнании этики команды тем, кто обладает более высокими полномочиями и делает этот срочный запрос.
Можно выделить два типа трудностей:
✓ добавление работы вне бэклога,
✓ выход участника из команды на какое-то время.
В обоих случаях цель спринта необходимо пересмотреть и, возможно, изменить в контексте возникших трудностей.
Соблюдая принцип прозрачности, команда помещает добавленную работу в таблицу спринта. Несвоевременный выход из команды одного из участников заносится в список препятствий.
В случае, если команда утверждает, что в каждом спринте появляется дополнительная срочная работа, она может предвосхитить возможные трудности, добавив резервную историю. Эта история без наполнения будет зарезервирована под срочные задачи. Команде в ходе спринта остается только не забыть, что она у них есть.
Изменение может исходить из возможностей, появляющихся в результате работы команды. Участники могут добавлять или удалять задачи из плана.
Случается, что во время спринта команда вдруг обнаруживает задачи, выполнение которых необходимо для завершения истории.
Это называется появление задачи.
До тех пор, пока команда не взяла историю в работу (то есть, она в статусе готово, а не в процессе), она может быть изменена или заменена по инициативе Владельца продукта и по согласованию с ним. Это гибкость, которую обеспечивает постоянный поток.
По завершении истории команда задумывается о необходимости пополнения списка историй. Такая необходимость возникает, когда участники, работавшие над завершенной историей, не включаются в работу других групп, чьи истории еще в процессе. Этим участникам нужна новая история, которая выбирается из колонки готово, а затем разбивается (паттерн работы).
План спринта корректируется не только в случае перечисленных сложностей и изменений, но и по завершении задач и историй.
Решение о завершении истории обычно принимается Владельцем продукта. Но если проверки были проведены вместе с командой и он чувствует себя уверенно по этому поводу, он вполне может делегировать решение участникам команды.
10.3 Ежедневное собрание
Частота: каждый день спринта.
Длительность: менее четверти часа.
Во сколько: это выбирает сама команда. Чаще всего, схвака происходит утром: это отличный способ начать рабочий день. Далее в этой главе мы будем рассматривать именно такой вариант схватки – проходящей утром.
Описать схватку очень легко. Это встреча, во время которой все участники команды отвечают на три простых вопроса: что было сделано? что будет сделано? с какими препятствиями они столкнулись?
Прочитав это описание, вы можете ошибочно подумать, что речь идет о проверке работы команды.
Фактически же схватка ускоряет достижение цели спринта. Схватка – это форма инспекции и адаптации на каждый день.
✓ Инспекция – просто выслушивание того, что говорят участники.
✓ Адаптация закрепляет собрания или обсуждения в распорядке дня. В ходе этих мероприятий команда может устранить препятствия или завершить истории.
В этом собрании принимает участие вся команда, включая Владельца продукта.
Но его присутствие не обязательно каждый день. Он должен участвовать в схватке минимум два раза в неделю. Если он может быть с командой каждый день – это, конечно, наилучший вариант.
Scrum-мастер является гарантом проведения схватки и соблюдения всех правил.
Во время встречи у него нет каких-то специальных задач: схватка – один из способов достижения самоорганизации. Это не собрание с целью отчитаться перед Scrum-мастером (или Владельцем продукта, или еще кем-либо).
На схватке могут присутствовать люди, не входящие в команду. Но они не могут участвовать в обсуждении, если только команда сама им этого не предложит.
Это различие между командой и заинтересованными сторонами напоминает, что только участники команды по-настоящему вовлечены в цель спринта.