Блог Scrum.ru

Аварийная процедура (Emergency Procedure)

Эд Аттербери, коллега Джеффа Сазерленда, сбит зенитной ракетой над Ханоем. На изображении видно, как он прыгает с парашютом!

…компании, команды и отдельные сотрудники часто обнаруживают, что не могут поставить продукт вовремя, и Sprint Burndown Chart свидетельствует о неизбежном провале. Для работы в Аджайл-стиле необходимы быстрое определение проблем и оперативная реакция.

✥ ✥ ✥

В середине Спринта проблемы возникают из-за срочных требований или непредвиденных изменений. К середине Спринта становится очевидно, что Команда разработки не в состоянии успешно завершить Бэклог Спринта. Команда находится наверху Sprint Burndown Chart и видит, что при текущем выполнении работ она не может достичь Цели Спринта.

Есть много причин для срывов Спринта, в данном паттерне рассматриваются три основные из этих типичных проблем:


Для гибкости необходимо быстрое реагирование на изменения, а для этого проблемы должны выявляться как можно раньше. К сожалению, часто новые команды и среднестатистические команды не хотят, чтобы проблемы становились заметными. В частности, они не хотят останавливать работу, устранять проблемы и подвергаться критике. На первом заводе NUMMI (New United Motor Manufacturing, Inc) компании Тойота в Америке руководители из Японии посетили фабрику через шесть месяцев после открытия и увидели, что сотрудники боялись дергать шнур-андон — если дернуть этот шнур, срабатывает сигнальная лампа и начинается обратный отсчет, после которого конвейер останавливается. Рабочие не останавливали конвейер достаточно часто, чтобы разрешать свои проблемы. Руководство дернуло за шнур несколько раз, чтобы остановить конвейер и продемонстрировать рабочим, что самым главным препятствием было их нежелание останавливать конвейер. Остановка конвейера позволяет заметить проблемы и правильно их разрешить. «Отсутствие проблем — это проблема», как гласит мантра японских руководителей.

Если что-то идет не так, команда должна проконсультироваться с Владельцем Продукта. Помимо этого Команда разработки должна согласовать с Владельцем Продукта, как можно быстро разрешить основные проблемы, мешающие достичь Цели Спринта.

Поэтому:

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

Не откладывайте выполнение до тех пор, пока не выясните, в чем проблема и что делать. В истребителе можно погибнуть быстрее, чем поймешь, что происходит. Скрам-мастер отвечает за то, чтобы команда сразу же начала придерживаться Аварийной процедуры, причем желательно к середине Спринта, когда дела расходятся с намеченным планом. Для этого необходима тщательная координация работы с Владельцем Продукта, но кайдзен требует выполнения этого паттерна, даже когда Владелец Продуктанедоступен. Лучшие команды действуют без разрешения и при необходимости извиняются по факту (см. Сообщество доверия).

Аварийная процедура Скрама: (делайте столько, сколько абсолютно необходимо)

  1. Измените способ работы команды. Сделайте что-то по-другому.
  2. Попросите о помощи, обычно можно передать элементы Бэклога Спринта кому-то еще.
  3. Уменьшите объем работ.
  4. Прервите Спринт и спланируйте его заново.
  5. Предупредите руководство, как аварийная ситуация влияет на сроки релиза.

Часто команды хотят уменьшить объем работ, если возникает сложность. Вместо этого лучшие команды находят способ применить другую стратегию, чтобы достичь Цели Спринта. В футбольном сезоне 2005–2006 годов Джон Терри, капитан и центральный защитник команды «Челси», должен был встать на ворота в матче против «Рединга», так как вратарь Петер Чех получил травму черепа, а заменившего его Карла Кудичини унесли с поля без сознания. Терри отстоял ворота, и команда «Челси» выиграла 2–0. То же самое с разработкой ПО — применение нового подхода может многократно увеличить производительность и существенно снизить прилагаемые усилия.

Когда над одним продуктом работает несколько команд, одна команда часто передает задачи из бэклога другой команде, если у той есть свободные ресурсы. Компания PatientKeeper, пионер медицинского сектора в области гибких разработок, автоматизировала данную стратегию ([2]). Если команда не успевает, она может передать Элементы Бэклога Спринта другой команде. Если вторая команда не может их принять, элементы передаются третьей команде. Если и третья команда не может их принять, все три команды собираются вместе и обсуждают этот вопрос. Это автоматически распределяло нагрузку между командами, чтобы они могли закончить работу одновременно.

Лучше уменьшить объем работ, чтобы команда могла завершить запланированную работу, чем идти к полному провалу. Организациям лучше проводить частые инспекции и адаптироваться к проблемам, а не удивляется. См. Команды, которые заканчивают работу раньше, разгоняются быстрее.

Прерывание Спринта (остановка конвейера) может стать лучшим решением, особенно если команда регулярно не завершает работу. Только Владелец Продукта может принять решение о прерывании Спринта: как бы ни были плохи дела, Владелец Продукта может решить, что прерывание Спринта не окупится или будет иметь долгосрочные последствия для рынка или для бизнеса.

После прекращения Спринта команда обычно проводит краткое Планирование Спринта для сокращенного Спринта (чтобы не сбивать темп и поддерживать Спринт-пульс; см. также Следуйте за луной), чтобы по возможности достичь Цели Спринта и поставить как можно больше ценности. Либо команда может провести более длительную Ретроспективу, чтобы изучить и исправить проблемы рабочей среды и внедрения Скрама, а затем провести перепланирование и двигаться к следующему Спринту. Но опять же, ценность прерывания Спринта именно в том, чтобы явно всем продемонстрировать, что есть фундаментальные препятствия, мешающие команде выполнять свою работу. Если проблема явная, команда может ее исправить.

Прерывание Спринта посылает всей организации явный сигнал, что что-то идет не так, и повышает способность устранить препятствия, ведущие к провалу. Одна шуточная традиция в Скраме (ну или метафора) — это «Церемония экстренного завершения Спринта», которая проводится в фойе штаб-квартиры компании, где члены Команды разработки ложатся на спину, кричат и машут руками и ногами, чтобы выпустить пар. Цель — продемонстрировать, что Владелец Продукта отменил Спринт.

Скрам-команда выполняет этот паттерн, он особенно полезен для высокопроизводительных команд. Для команд, которые воспринимают кайдзен всерьез (см. Кайдзен и Кайкаку), Скрам — это экстремальный спорт, и они принимают некоторый риск перед началом Спринта, чтобы двигаться быстрее. Основной риск — это внезапные требования или неожиданные технические проблемы, так как команда устраняет большинство других причин провала. Команде может потребоваться применять этот паттерн через каждый третий или четвертый Спринт, особенно при внедрении новых технологий. Тем не менее в большинстве чрезвычайных ситуаций отличные команды восстанавливаются и достигают Цели Спринта. А если они остановят конвейер (прервут Спринт), они введут систему Poka-yoke, чтобы одна и та же проблема не повторялась.

Poka-yoke (ポカヨケ) — японское понятие, означает «защита от ошибок». Poka-yoke — это любой механизм в бережливом производстве, который помогает оператору оборудования избегать (yokeru) ошибок (poka). Целью является устранение дефектов за счет предотвращения и корректировки ошибок или привлечения к ним особого внимания.

Визуализация проблем — это часть философии кайдзена; см. Кайдзен и Кайкаку.

✥ ✥ ✥

Команда научится быстро и дисциплинированно реагировать на перемены и преодолевать сложности. Во многих организациях при сбоях в работе команды не могут четко думать, нервничают и теряют мотивацию. Они также не видят причины своих проблем и не знают, как их исправить. Следование Аварийной процедуре научит команду идти к успеху и систематически устранять препятствия. Лучше команды удивятся своей способности преодолевать неудачи и становиться сильнее. Это увеличивает шансы успешно поставить Потенциально готовый в поставке инкремент и в краткосрочной, и в долгосрочной перспективах. Используя Аварийную процедуру, команда будет чувствовать, что делает все возможное, чтобы вернуться на путь прогресса, как из профессиональной гордости (см. Гордость за команду), так и из Гордости за продукт.

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

См. также Не допускайте мелких неточностей.

Этот паттерн предполагает использование высококвалифицированными командами. Если команда использует его слишком часто (например, чаще чем каждые четыре Спринта) и не улучшает ценность, качество и уровень поставок, тогда команда должна поразмышлять, что идет не так в их среде или использовании Скрама. Лучше, если молодая команда приложит все усилия для поставки, доведет Спринт до конца, а затем провалит Спринт. Затем, когда обстановка успокоится, в ходе Ретроспективы Спринта команда может изучить причины провала и спланировать кайдзен. Некоторые улучшения процесса помогут команде прибегнуть к Аварийной процедуре в аналогичных ситуациях в будущем.
Scrum Илья