(Этот пост изначально появился на Dev.to)

Недавно меня попросили написать статью на тему Как убедить вашего босса отдать приоритет наблюдаемости. Вы можете прочитать это здесь". Пока я собирал все воедино, одно конкретное предложение отправило меня в кроличью нору Википедии.

В моем первоначальном черновике была строка, в которой упоминалось «выиграть большой _____ счет». Мне пришла в голову мысль сослаться на известную историю из телешоу Заколдованные, которую Даррен и его партнер Ларри всегда пытались выиграть.

Я был уверен, что в каждом эпизоде ​​всегда был один и тот же аккаунт. Однако, когда я просмотрел все синопсисы, я обнаружил, что существует не только одна учетная запись. На самом деле, сценаристы проделали замечательную работу, придумав множество видов бизнеса, приближенных к рекламе McMann & Tate.

Однако до того, как я выполнил этот поиск, я прокомментировал свой опыт в социальных сетях:
https://twitter.com/leonadato/status/1500843766369992707

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

Проблема в том, что первоначальная идея просто не сработала. Непонятная отсылка к ситкому 70-х не сделала статью лучше, поэтому я ее вырезал. Но потом я почувствовал себя плохо из-за того, что пообещал блог, а потом не смог его доставить. Итак, мы здесь. Оказывается, в старых эпизодах Bewitched можно найти чертовски много информации о наблюдаемости — если хорошенько поискать.

Программирование == Магия

Дело не только в том, что то, что мы делаем, КАЖЕТСЯ волшебством для тех, кто не обучен (иногда темным) мистическим искусствам Ruby, JavaScript или C#. Если вы посмотрите на то, что делают ведьмы и колдуны из старых сериалов 70-х — не говоря уже о том, как они это делают, — вы увидите сходство в методах, методологиях и подходах, таких как agile, водопад и непрерывное развертывание.

Не для того, чтобы слишком сильно смешивать метафоры (или магические вселенные), но, как сказал Древний доктору Стивену Стрэнджу,

«Маги древности называли использование этого языка «заклинаниями». Но если это слово оскорбляет ваши современные чувства, вы можете назвать его программой. Исходный код, формирующий реальность».

Воображаете ли вы, что изменяете ткань реальности или просто сетевую ткань, это все равно уровень ответственности, который нужно уважать. Возможно, вам даже понадобится визуальное напоминание о риске непредвиденных последствий.

Это означает, что мы все должны убедиться, что у нас есть способ понять (т.е. просмотреть) эффект, который оказывают наши изменения. Недостаточно запустить наш код через средство проверки синтаксиса. Нам нужно иметь возможность видеть, как наш код работает под производственной нагрузкой с реальными пользователями сегодня, в следующий четверг и навсегда.

Ничто не заменит опыт

Саманта, безусловно, была разработчиком… я имею в виду ведьму… с которой мы лучше всего познакомились, но она ни в коем случае не была самой опытной или самой могущественной. Мать Сэма, Эндора, считалась одной из самых грозных ведьм, которых мы встречали, и даже юмористические персонажи, такие как дядя Артер и тетя Клара, были людьми, к которым Сэм обращалась, когда ей не хватало знаний или способностей для особенно сложной магии.

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

Менее очевидно, что мы должны понять, как они получили свои знания. В основе любого урока лежит наглядность. Что-то раскрывает нам факт, истину или реальность таким образом, что информирует и меняет наш взгляд на нашу работу (а иногда и на наш мир), и это дает нам как стимул к изменению, так и понимание того, в каком направлении нам нужно двигаться.

Иногда это понимание достигается через школу сильных ударов. Но чаще всего это происходит с помощью инструмента или техники, раскрывающей внутреннюю работу нашего кода, платформы или взаимодействия с другими системами. Из-за этого инструменты, которые могут обеспечить это понимание (то есть наблюдаемость), являются настоящими «множителями силы», позволяя людям БЫТЬ лучше сейчас и совершенствоваться быстрее, чем они могли бы иначе, если бы они работали без инструмента.

Доказательство в изюминке

Источником юмора в Bewitched часто был тот факт, что разработчики… я имею в виду ведьм… не имели представления о результате развертывания своего кода (заклинаний). Эсмеральда случайно вызывает Юлия Цезаря вместо одноименного салата. Саманта думает, что тетя Клара превратилась в корову, но на самом деле это обычная корова, которую используют для рекламной кампании. Дядя Артур хочет вызвать в воображении хлопкового кролика, но использует неправильный вызов функции и вместо этого получает хозяйку ночного клуба.

Проблема заключается не столько в ответственности, которая приходит с обладанием большой властью, сколько в том, чтобы убедиться, что мы можем видеть, измерять и по-настоящему понимать влияние на окружающие нас системы, когда мы обладаем этой властью. Произносить заклинание без контроля (или, что еще хуже, без понимания) результатов — это плохо.

В ситкоме Заколдованные в результате «возникает веселье». В нашем мире реальных мастеров мистических искусств результаты обычно гораздо менее забавны.

Вот почему написание кода без учета критических выходных данных — так называемого MELT (метрики, события, журналы и трассировки) — наряду с возможностью постоянного улучшения нашего кода на основе того, что говорят нам инструменты наблюдения, просто настраивает нас на опыт, который ничего, кроме волшебства.

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

Подпишитесь на New Relic. Это бесплатно — навсегда!