Этот пост блога является всеобъемлющим посмотрим на то, что я считаю, что это значит быть эффективным разработчиком на звонок для вашей команды. Разработчик по вызове может быть полезным и глубоко влиятельной ролью для каждой команды, наряду с другими ролями команды Scrum. Я поделюсь своими мыслями о том, почему разрабатыватель на звонках может и Должен Делайте больше, чем реагировать на Pager Duty.
Этот пост блога также является любовным письмом в области владения функциями кода и микросервисов. Разработчик на вызове может быть так эффективен только без собственности на код, который они несут ответственность за поддержание.
Этот пост блога немного о том, что мы можем учиться на ролевых играх.
«Знаковая вечеринка» из подземелья и драконов Руководство игрока, 5-е издание.
Вступление
Что значит быть на связи для разработчика? Я начну с определения от Атласское управление инцидентами :
По вызову — это практика назначения конкретных людей, которые должны быть доступны в определенные времена, чтобы ответить в случае срочной проблемы срочной службы, хотя они не дежурны формально.
Обычно «проблема срочного обслуживания» относится к инциденту высокого тяжести, влияющего на конечные пользователи. Когда сетевые операционные операции или инженеры надежности на сайт находятся на вызове разработчика, это, вероятно, неотложная проблема обслуживания.
Тем не менее, у нас часто есть другие не срочные, но-все еще более срочные, а затем-спринты могут возникать проблемы все время. И именно поэтому мы можем расширить разработчик по вызову, чтобы защитить остальную часть команды развития, заботясь о любых прерываниях во время спринта.
Я считаю, что мы можем решить много организационных проблем, создавая комнату для роли разработчиков на вызове наряду с другими важными ролями команды Scrum (например, владелец продукта, Master Scrum). Можно сделать роль работать так, чтобы управление знаниями вашей организации и время отклика на инциденты хорошо масштабироваться. Самое главное, что эта роль избавляется от необходимости в сингулярно героических актах от технических листов.
Танкование для вашей команды — Аналогия
Йоханна, Крестонос Закарума, от «Героев шторма». Развлечения Blizzard.
Что такое танк?
В ролевых играх (RPGS) команда «танк» — это класс персонажа, предназначенный для того, чтобы выдерживать ущерб команде и, во-вторых, убедитесь, что они могут привлечь внимание противника к себе.
Что это связано с разработчиком на звонках?
В письменном виде этого поста я реализовал все больше и больше, что разработчик на звонке работает как танк команды. Остальная часть команды разработки наносит урон дилеров, пытаясь сжечь целы спринта. Используя эту аналогию, разработчик включения должен:
- Быть в состоянии смягчить себя (и наше дело) от ущерба дорогостоящих прерываний.
- «Потягивай агресин» — привлечь внимание к себе, чтобы никто другой не обязательно отвлекался.
Когда враги команды сосредоточены на вашем танке, дилеры ущерба вашей команды свободно максимизировать их ущерб в секунду (DPS) на основных целях команды. Балансируя ответственность на подземелье на разных классах, вся команда может достичь славной победы!
Это также верно для вашей команды Scrum. 🌈
Смяггация «повреждения» — обеспечение разработчика на звонке поддерживается
Рейнхардт и Лусио из «Overwate». Развлечения Blizzard.
Прежде чем создать вращение на вызове, как вы убедитесь, что ваши разработчики имеют поддержку, необходимую для решения проблем высокой серьезности? Это стресс, находясь на звонок, а иногда долгое время для ремонта (МТТР) инцидент с высоким уровнем серьезности может стоить компании много денег.
Другими словами, как мы можем немедленно сохранить наш танк. Что такое разработчик версии тарелки?
У меня есть некоторые предполагаемые предполагаемые предпосылки для составления вращения на вызове. Эти предварительные условия предназначены для поддержки вашего разработчика по вызове и сделать этот процесс максимально безболезненным:
- Ваш Tech Lead имеет бортовую команду Dev к функциям и/или микросервичам, которые владеют вашей командой.
- В идеале эти функции и микросервисы хорошо документированы.
- У вас есть Runbooks (I.e. How-Guides) для обработки проблем высокой серьезности.
- У вас есть система на месте для передачи знаний по изменению вращения.
- Вращения на вызове не должны быть слишком большими (или слишком маленькими). Идеальный размер, вероятно, ~ 5 разработчиков. На гораздо большего вращении разработчики не выполняют пошлины на вызову, чтобы получить опыт и обострить свои навыки для уменьшения метрик МТТР.
- В то же время люди не должны называть более 25% времени, или существует риск выгорания.
- Вы создали психологически безопасную среду.
- Как минимум, вы должны предоставить психологическую безопасность для вашего поворота на вызове, используя Безватые пост-Мортета Отказ Вы также должны выращивать культуру преподавания и обучения.
- Инженер-менеджер команды (EM) и владельца продукта (PO) понимают, что середины ночных страниц являются основными проблемами и не должны происходить регулярно. Если разработчик на звонках отвечает на нерабочие часы, этот человек должен быть компенсирован соответствующим образом.
Бортовые, бегаторы и смены ноты
Первая форма смягчения последствий риска состоит в том, чтобы ваши технические лидины или тематические эксперты (МСП) обучают остальную часть команды разработки на компонентах кода или принадлежащих микросервисам. Установите ожидание, что МСП не будет основным респондентом ко всем инцидантам. Движение вперед, этот человек там, чтобы обеспечить резервное копирование, когда его спросит или необходимы разработчиком по вызову.
Это действует как форсирующая функция для МСП для записи документации для других.
Следующая форма смягчения — это управление производственными операциями.
Runbooks — это определенный тип документации, адаптированной к типам вопросов, которые вы можете видеть в производстве.
Написание безнастройки звучит тяжело — как вы пишете пошаговые инструкции по работе с проблемой, о которой вы еще не знаете?
По моему опыту большинство команд видят это уже! Мы пишем документы, излагающие планы оценки риска команды и смягчения последствий для функций. Мы пишем комментариев по билетам о том, как обрабатывать код, который может вызвать проблему в производстве. У нас есть методы мониторинга дня релиза. У нас есть расплывчатое представление о том, что делать, если что-то выглядит плохо на приборной панели.
Напишите это в форме RunBook для вашего разработчика на звонок для ссылки!
Много раз, это так же просто, как наличие страницы документации для вашей функции, которая говорит: «Если X происходит, выключить этот Функция переключателя . «В других случаях вы хотите думать о мониторинге таких вещей, как журналы ошибок производства или определенные Grafana панель инструментов.
Писать. Это. Вниз.
Запишите замены сдвига
Наконец, обязательно сохраните всех в своем ротации в современном виде с заметками. Моя нынешняя команда сохраняет запись всех примечаний по производству инцидентов. У нас есть шаблон для записи следующего:
- Описание инцидента
- разрешение
- Первопричина
- Вынос и следующие шаги
- Сроки мероприятий
В предыдущей команде, которая принадлежит нескольким микровериям, наши смены заметки включали в себя записи о эксплуатационных обязанностях и поддержания нашей стабильной среды.
Держите вашу ротацию маленькой (но не слишком маленькой!)
Для разработчиков, чтобы получить доверие и укрепить наши навыки в том, что мы называть, нам нужно сделать это регулярно! Так же, как и все остальное, нам нужно попрактиковаться на звонок, чтобы мы могли хорошо добраться до этого.
В своем сообщении в своем блоге «Создание не сосать», «Молли Стреуве пишет о характеристиках сломанной системе на вызове и как это исправить. При описании сломанной системе на вызове она пишет:
В конце концов, команда была настолько велики, что люди собирались позвонить один раз в 3-4 месяца. Это может показаться, что мечта сбылась, но на самом деле это было далеко от этого. […] Большое вращение означало, что по-вызов сдвиги были настолько нечастыми, что разработчики не смогли получить опыт и представители, которые им нужно было эффективно управлять вопросами о вызове. […] Как это может быть, как это может звучать, находясь на звонок больше, это выгода, потому что разработчики стали намного удобнее и могут действительно выяснить стратегию, которая лучше всего работает для них.
Опыт Молли звонит до самого собственного в крупной компании. Я гораздо более уверен и комфорт, отвечая на страницы для моей конкретной команды, чем я более крупную ротацию организации.
Таким образом, поддержка своего поворота на вызове, сохраняя размер около 5 разработчиков, чтобы люди получали опыт, но не выгорают.
Но кто является целитель?!
Андуин Вринн из «World of Warcraft: Battle за Azeroth». Развлечения Blizzard.
Я не знаю. Наверное их.
Потянув агреси
В ролевых играх Aggo — это механизм, используемый врагами для приоритеты, которые характеры атаки. Игрок, который генерирует наибольшее количество агрегата, будет преимущественно ориентирован на врага. Это называется «потянув агреган».
Эовин, Эйлдмайден из Рохана, вытягивая агресию для теода.
В команде развития человек с наивысшим исходным уровнем приоритета для прерывания, как правило, ведущий по техническому обслуживанию. Но технический лидер не всегда должен быть танком команды. Есть пара причин для этого:
- Это приводит к низкому Шинный фактор Отказ
- Это препятствует росту всей команды развития.
Чтобы справиться с этим, Tech Lead требует обязанности до разработчика на звонках и позволить этому человеку потянуть Aggro для команды. Это означает, что разработчик включения должен быть первичным разработчиком, ответственным за переключение контекста из спринт и перерывы. Такие обязанности могут включать в себя:
- Отвечая на все падающие страницы.
- День релиза. Мониторинг.
- Помощь команде Po и Em Triage Incoming Bugs.
- Просмотр любых изменений, не являющихся владельцем, внесенным в принадлежащие кодовой компонентах команды.
- Помогая PO и EM реагировать на вопросы заинтересованных сторон о владеющих функциях.
Отвечая на прерывания заинтересованных сторон
Иногда заинтересованные стороны (менеджеры обслуживания клиентов, POS, другие разработчики) могут прерывать команды Scrum с нетривиальными техническими вопросами. И если вы работаете над командой, которая принадлежит любую структуру или полезность, используемую другими разработчиками, вы, вероятно, попадаете на большие вопросы. (И это несмотря на ваши лучшие усилия для документирования всего для ваших пользователей вниз по течению! 😢)
Я провел большую часть своей карьеры, работаю над командами, ответственными за предоставление другим командам развития. Благодаря пробным и ошибкам, я обнаружил, что наиболее эффективный способ обращения с этими видами прерываний является явно присваивая кому-то обязанность ответить на них. А также Это не всегда должно быть одним и тем же человеком.
Я предлагаю разработчик по вызову, потому что они уже прерываются дорогостоящим переключением контекста.
Все остальные в команде развития могут быть сосредоточены на целях спринта, а заинтересованные стороны получает быстрый и значимый ответ.
С помощью модели коллективной ответственности не всегда ясно, кто должен нанять время, чтобы ответить, не говоря уже о выполнении любых исследований или анализа. Иногда это технологичный свинец, отвечая на все, что приводит к низкому шине. Иногда есть эффект от визандера где любой или никто не может взять на себя ответственность за ответ на входящие вопросы.
Заинтересованные стороны ждет ответа от команды с моделью коллективной ответственности.
Ваша команда должна взять на себя ответственность за разблокирующие заинтересованные стороны, не причиняя вреда потребности вашей команды. Разработчик на вызове может сделать это для вас, в то время как остальная часть команды разработки фокусируется на главной цели — ваши целы спринта.
Максимизация DPS — обеспечение остальной части вашей команды эффективен при сжигании голов спринта
LAIX Onyxia от «World of Warcraft. » Развлечения Blizzard.
В этом последнем разделе я хочу поговорить о том, как танк поддерживает свою команду и делает всех остальных на своей работе по убийству дракона. (Дракон — ваш гол спринт).
Ok… Моя танковая аналогия распадается здесь.
Но вот раздел о том, как роль разработчика по вызову делает всех остальных и более продуктивным разработчиком, работающим над целями спринта.
Находясь на звонок призывает разработчиков построить лучший продукт
Находясь на звонок делает нас лучшими разработчиками, когда мы не называть. При обращении с производственными инцидентами и челюсти от общения напрямую, все в ротации получают выгоду от понимания того, как наш код влияет на производство и наших клиентов. Это делает нас лучшим повседневным разработчиком, поскольку мы работаем над улучшением продукта или создания новых.
Разработчики должны следовать за их работой вниз по течению — увидев трудности с клиентами в первую очередь, они делают лучшие и более информированные решения в своей повседневной работе. Делая это, мы создаем обратную связь о нефункциональных аспектах нашего кода — все элементы, которые не связаны с функцией, связанной с клиентом — и определить способы, которыми мы можем улучшить управляемость, работоспособность, и так далее. — Дежол Справочник, PG 233
Разработчики на звонках могут исправить вещи, препятствующие команде разработки
В идеале разработчики на звонках не следует ожидать выполнения работы спринта. Они уже несут ответственность за столько контекстно-переключения, что все, что они могут достичь, чтобы сжигать голы спринта, приятно иметь.
Я думаю, что лучшее использование «свободного» разработчика «свободный» — это работать над вещами, которые улучшают опыт на вызове. Это включает в себя такие вещи, как автоматизирующие ручные процессы, улучшающие оповещения, написание инструментов DEV — все, что снижает оперативное бремя находящегося на звонок, является справедливой игрой.
Я был поражен этой идеей, так как я видел это в Blog Blog Majors’s Blog, » Позвонит не должен сосать: руководство для менеджеров : «
Когда инженер находится на звонке, они не несут ответственности за нормальный проект — период. Это время является священным и посвященным исправлению вещей, строительных инструментов и создания ограждений, чтобы защитить людей от себя. Если ничего не в огне, инженер может принять возможность исправить все, что их раздражало. Разрешить множество агентств и после любопытства, где бы он ни привел, и это будет специальное угощение.
Как это максимизирует ваш потенциал вывода спринта? Разработчик на вызове улучшает вывод каждого, работая над улучшением нашей среды и инструментов. 🛠
Заключение
Спасибо за прочтение моего самого Geeky Blog Bog о создании эффективной роли разработчиков на звонок для вашей команды. Большое спасибо тем, кто написал об этой теме до меня.
PostScript
Я не бак главной. Я предпочитаю диапазон DPS и целительных ролей, но иногда вам нужно играть в роль вашей команды. 😏
использованная литература
- https://www.geeknative.com/48262/art-inside-dd-5e-players-handbook/
- https://www.atlassian.com/incident-management/on-call
- https://en.wikipedia.org/wiki/tank_(video_games )
- https://www.icy-veins.com/wow/tanking-guide
- https://www.dungeonsolvers.com/2019/05/10/i-fight-for-my-friends-how-to-be-a-tank-in-dd-5e/
- https://dotesports.com/overwatch/news/reinhardt-camera-control-patch-17485
- https://sre.google/sre-book/being-on-call/
- https://www.atlassian.com/incident-management/postmortem/blameless
- https://www.atlassian.com/incident-management/on-call/improving-on-call
- https://dev.to/molly/making-on-call-not-suck-490
- https://en.wikipedia.org/wiki/Hate_(video_games)
- https://en.wikipedia.org/wiki/Bus_factor
- https://en.wikipedia.org/wiki/Bystander_effect
- https://medium.com/opsgenie/why-every-team-in-your-organization-should-embrace-on-call-1b43b31f6d8a
- Джин Ким, Патрик Debois, Jez Humble, Джон Уиллис. Справочник DEVOPS: Как создать ловкость мирового класса, надежность и безопасность в технологических организациях.
- https://charity.wtf/2020/10/03/on-call-shouldnt-suck-a-guide-for-managers/
Оригинал: «https://dev.to/jkblev/tanking-for-your-team-a-tech-lead-s-guide-to-the-on-call-developer-role-km6»