Лекция 8. Сделать невидимое видимым: наблюдение

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

План лекции

1. Диагностика слепа без наблюдения. 2. Инструменты наблюдения. 3. Читай сообщение. 4. Смотри, а не предполагай. 5. Наблюдай там, где проверяешь. 6. Когда наблюдение мешает. 7. Как применять.

1. Диагностика слепа без наблюдения

Вспомните всё, что мы делали в прошлых лекциях: проверяли на границах, сравнивали работающее и сломанное, выводили из гипотезы предсказание и проверяли его. Каждый раз в основе — наблюдение: посмотреть, замерить, увидеть. Если увидеть нельзя, весь метод повисает в воздухе: как проверить границу, если не видно, что в этой точке; как сравнить, если не видно состояний; как проверить предсказание, если его следствие скрыто. Наблюдение — это глаза диагностики, и без них она слепа.

А беда в том, что в поломках самое главное почти всегда спрятано. Мы видим лишь конечный симптом — прибор не включается, — но не видим, что творится внутри: доходит ли ток, что происходит в середине процесса, какие значения бегут по проводам. Многое скрыто по своей природе: внутренние состояния не видны снаружи; события в доли секунды глаз не ловит; редкий сбой случается, пока мы не смотрим. Поэтому первая задача диагноста — не рассуждать о скрытом, а вытащить его на свет: сделать невидимое видимым. Пока вы не видите, что реально происходит внутри, вы гадаете; как только увидели — начинается настоящая диагностика. К счастью, есть целый арсенал приёмов, как приподнять завесу.

Инструменты наблюдения: увидеть скрытое Измерить прибором: ток, температура,давление, время Записать (лог) что и когда происходило —поймать редкое Пометить маячок: дошёл ли сюдасигнал, управление Усилить слабый признак сделатьзаметным Замедлить быстрое разглядетьпо кадрам, остановить Прочитать не игнорируй сообщение —там половина ответа диагностика слепа без наблюдения: нельзя починить того, чего не видишь сначала сделай скрытое видимым — потом рассуждай
Взгляните на схему: беда сломанного в том, что самое важное обычно скрыто — внутренние состояния, промежуточные значения, слишком быстрые или слишком редкие события. Диагност вооружён приёмами, которые вытаскивают скрытое на свет. Измерить — приложить прибор и получить число: сколько тока, какая температура, какое давление, сколько времени заняло. Записать в журнал (лог) — фиксировать, что и когда происходило, чтобы поймать даже редкое событие, случившееся, пока вы не смотрели. Пометить — поставить маячок в нужной точке и проверить, дошёл ли до неё сигнал или управление. Усилить — слабый, незаметный признак сделать явным, чтобы его вообще можно было заметить. Замедлить или остановить — разложить слишком быстрое на кадры, застопорить процесс в нужный миг и рассмотреть. И, наконец, прочитать — не отмахиваться от сообщения об ошибке, а вчитаться: там часто уже половина ответа. Общий смысл всех приёмов один: прежде чем рассуждать и чинить, надо сделать невидимое видимым. Пока вы не видите, что реально происходит внутри, вы гадаете; как только увидели — начинается настоящая диагностика.

2. Инструменты наблюдения

Приёмы, делающие скрытое видимым, собраны на схеме; пройдёмся по ним. Измерить — самый прямой: приложить прибор и получить число вместо догадки. Сколько тока в этой точке, какая температура, какое давление, сколько времени заняла операция. Число не соврёт и не оставит места для «наверное». Записать в журнал (лог) — фиксировать, что и когда происходило. Это спасает, когда событие мимолётно или редко: вы не можете сидеть и караулить сутками, а журнал запишет всё сам, и потом вы разберёте, что случилось в момент сбоя, даже если вас там не было. Пометить — поставить в нужном месте маячок и проверить, добралось ли до него то, что должно: дошёл ли сигнал, выполнилось ли действие, побывало ли управление в этой ветке.

Усилить — сделать слабый, незаметный признак явным. Если что-то едва заметно (лёгкая вибрация, крохотная утечка, слабый сигнал), его усиливают, чтобы вообще было что наблюдать. Замедлить или остановить — управиться со слишком быстрым: разложить событие на кадры, застопорить процесс в нужный миг и спокойно рассмотреть то, что в реальном темпе мелькает неуловимо. Каждый из этих приёмов открывает свой класс скрытого: измерение — величины, лог — историю событий, метка — прохождение, усиление — слабое, замедление — быстрое. Хороший диагност держит весь набор наготове и, столкнувшись со скрытым, спрашивает: чем я могу это увидеть — измерить, записать, пометить, усилить, замедлить? Вложение в наблюдение почти всегда окупается: один взгляд на то, что реально происходит, стоит часа рассуждений о том, что происходить должно.

3. Читай сообщение

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

Сообщение об ошибке — это система, которая своими словами говорит вам, что с ней не так. Игнорировать его — всё равно что не слушать пациента, жалующегося на конкретную боль. Поэтому железное правило: прежде чем что-либо предполагать, прочитайте, что система сообщает, — целиком и внимательно. Часто там уже половина ответа, а то и весь: код неисправности прямо называет узел, текст ошибки — что именно не сошлось. Даже если сообщение непонятно, оно — зацепка: его можно расшифровать, поискать, сопоставить. И шире: вслушивайтесь и всматривайтесь в любые сигналы, которые подаёт система, — необычный звук, запах, нагрев, мигание. Это бесплатные улики, которые она сама вам протягивает. Диагност, который сначала внимательно смотрит и слушает, что говорит система, а уж потом строит версии, экономит уйму времени по сравнению с тем, кто с ходу бросается предполагать, пропустив прямую подсказку.

4. Смотри, а не предполагай

Теперь главное правило всего наблюдения, ради которого стоит завести отдельную заповедь: смотри, а не предполагай. Огромная доля диагностических ошибок растёт из того, что человек рассуждает о том, как должно быть, вместо того чтобы посмотреть, как есть на самом деле.

Смотри, а не предполагай Предполагаю «тут должно быть X,ведь так задумано» рассуждаю о том, как должно быть Смотрю «измерил — тут на самомделе Y» вижу, как есть на самом деле где «должно быть» расходится с «на самом деле» — там и прячется поломка; верь реальности, а не модели
Взгляните на схему: у наблюдения есть золотое правило — смотри, а не предполагай. Слева жёлтым — соблазн, которому поддаются почти все: рассуждать о том, как должно быть. «Здесь должен быть сигнал X, ведь так задумано, так устроено, так написано в инструкции». Мы верим своей картине устройства и на её основе решаем, что где происходит, не проверяя. Справа зелёным — то, что делает диагност: идёт и смотрит, как есть на самом деле. Измеряет — и видит, что тут не X, а Y. И вот тут вся соль: поломка живёт ровно там, где «должно быть» расходится с «на самом деле». Ведь если бы всё шло, как задумано, ничего бы не сломалось; раз сломалось — где-то реальность отклонилась от модели, и наша задача — найти это место, а найти его можно, только глядя на реальность, а не на модель. Поэтому опытный диагност не доверяет своим «должно быть»: он проверяет их наблюдением, особенно то, в чём «совершенно уверен», — потому что именно там, в непроверенном «это точно работает», чаще всего и сидит поломка. Не спорь с реальностью и не доверяй предположениям — пойди и посмотри.

Ловушка выглядит невинно, как показано на схеме. Мы хорошо знаем (или думаем, что знаем) устройство: «здесь должен идти сигнал, тут должно быть напряжение, эта деталь исправна, я её недавно ставил». И на основе этой картины «как должно быть» решаем, где причина, минуя проверку. А диагност делает иначе: идёт и смотрит — и нередко обнаруживает, что «должно быть» и «на самом деле» расходятся. Именно в этом расхождении и живёт поломка: если бы всё шло, как задумано, ничего бы не сломалось; раз сломалось — где-то реальность отклонилась от модели. Найти это место можно, только глядя на реальность, а не на свою уверенность. Отсюда практический вывод, поначалу неприятный: не доверяйте своим «это точно работает». Как раз то, в чём вы совершенно уверены и потому не проверяете, чаще всего и оказывается сломанным — ведь если бы вы честно это проверили, то давно бы нашли. Опытные диагносты знают за собой этот грех и специально проверяют «очевидное»: воткнут ли вообще вилка в розетку, та ли это деталь, включено ли то, что «всегда включено». Не спорьте с реальностью и не верьте предположениям — пойдите и посмотрите. Это скучный, приземлённый навык, но он экономит больше времени, чем любой изощрённый приём.

5. Наблюдай там, где проверяешь

Наблюдение — не самоцель, а слуга остальных приёмов, и работает оно лучше всего, когда прицельно направлено туда, где вы сейчас ведёте поиск. Вспомните локализацию из третьей лекции: мы проверяем на границах между узлами, где хорошее становится плохим. Так вот, инструменты наблюдения — это и есть то, чем мы проверяем эти границы. Хотите узнать, что на выходе из узла, — измерьте там, поставьте метку, посмотрите лог именно в этой точке. Наблюдение и локализация работают в паре: локализация говорит, где смотреть, наблюдение даёт возможность увидеть.

Отсюда практичный принцип: добавляйте видимость там, где идёт поиск, а не где попало. Бессмысленно обвешивать приборами всю систему разом — это утонет в данных. Разумно сделать видимой ту границу, ту точку, которую вы сейчас проверяете по методу половинного деления или по цепочке гипотез. Проверяете, дошёл ли сигнал до середины, — сделайте видимой середину. Это соединяет весь наш метод в одно: гипотеза говорит, что проверить; локализация — где; наблюдение — чем это увидеть. И ещё: наблюдение стоит закладывать заранее. В хорошо сделанных системах видимость встроена изначально — приборы, индикаторы, журналы уже на месте, и, когда что-то ломается, диагносту есть на что смотреть. Если вы что-то создаёте или настраиваете, подумайте наперёд: а как я увижу, что тут пошло не так? Заранее встроенная видимость превращает будущую мучительную диагностику вслепую в спокойный взгляд на показания.

6. Когда наблюдение мешает

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

Что с этим делать? Во-первых, помнить о самой возможности: если сбой ведёт себя иначе, стоит вам начать наблюдать, — заподозрите, что виновато само наблюдение, а не то, что причина «испугалась». Во-вторых, по возможности выбирайте способы наблюдения, которые меньше вмешиваются: измерять, не разрывая цепь; записывать так, чтобы это почти не нагружало систему; смотреть со стороны, а не влезать внутрь. В-третьих, учитывайте эффект наблюдения при выводах: если знаете, что ваш прибор чуть меняет режим, делайте на это поправку. И отдельная осторожность — данные наблюдения тоже могут врать: прибор бывает неисправен или неверно подключён, журнал — неполон, метка — поставлена не туда. Полезная привычка — иногда проверять сам инструмент: показывает ли прибор заведомо известное значение правильно, пишет ли лог то, что точно произошло. Наблюдение — мощнейший инструмент, но не безупречный: смотрите, но не забывайте, что и на взгляд бывает кривое стекло. Это не повод не наблюдать — это повод наблюдать с умом.

7. Как применять

Соберём в практику. Столкнувшись со сбоем, прежде чем гадать о причине, спросите себя: а что я реально вижу, и что тут скрыто? Всё, что важно, но невидимо, попробуйте вытащить на свет подходящим приёмом: измерить величину, записать ход событий в журнал, поставить метку и проверить прохождение, усилить слабое, замедлить быстрое. Обязательно прочитайте всё, что система сама сообщает, — коды, ошибки, звуки: там часто уже лежит подсказка. И направляйте наблюдение туда, где сейчас идёт поиск, — делайте видимой ту границу, которую проверяете. А главное — держите заповедь «смотри, а не предполагай»: не доверяйте своим «должно быть» и «это точно работает», а идите и проверяйте, особенно очевидное.

И, как весь курс, это работает шире техники — по сути, это привычка опираться на факты, а не на догадки. Разбираетесь, почему не сходятся деньги, буксует проект, портится самочувствие, — не стройте теорий в пустоте, а сначала соберите наблюдения: замерьте, запишите, посмотрите, что реально происходит, а не что должно. Кажется, что «и так всё ясно», — вот тут и проверьте, потому что «ясное» непроверенное чаще всего и обманывает. Умение сделать невидимое видимым и смотреть на реальность, а не на свою картину мира, — один из самых отрезвляющих навыков вообще, и он выручает далеко за пределами ремонта. В следующей, предпоследней лекции возьмёмся за главного невидимого врага диагноста — за ловушки его собственного ума, которые сбивают с толку даже при хорошем наблюдении.

Итоги

  • Диагностика слепа без наблюдения: нельзя починить того, чего не видишь. А в поломках главное обычно скрыто — внутренние состояния, промежуточные значения, слишком быстрые или редкие события.
  • Инструменты наблюдения: измерить (число вместо догадки), записать в журнал (поймать мимолётное и редкое), пометить (проверить прохождение), усилить (слабое сделать явным), замедлить или остановить (разглядеть быстрое).
  • Читай сообщение: система сама говорит, что с ней не так, — коды, ошибки, звуки. Не отмахивайся; там часто половина ответа. Это бесплатные улики.
  • Смотри, а не предполагай: поломка живёт там, где «должно быть» расходится с «на самом деле». Не доверяй своим «это точно работает» — очевидное, которое не проверяют, чаще всего и сломано.
  • Направляй наблюдение туда, где идёт поиск: делай видимой ту границу, которую проверяешь. Наблюдение и локализация работают в паре; видимость полезно встраивать заранее.
  • Наблюдение может мешать: сам акт наблюдения иногда меняет поведение, а данные приборов и журналов тоже бывают ложны. Наблюдай с умом, при случае проверяй сам инструмент.

Вопросы для самопроверки

  1. Почему без наблюдения все остальные приёмы диагностики бесполезны? Что обычно скрыто в поломках?
  2. Назовите инструменты наблюдения и укажите, какой класс скрытого открывает каждый.
  3. Почему нельзя игнорировать сообщения об ошибке и другие сигналы системы?
  4. В чём смысл правила «смотри, а не предполагай»? Почему особенно опасно «очевидное»?
  5. Возьмите задачу и перечислите, что в ней скрыто и каким приёмом наблюдения это можно увидеть.

Литература

  • Дэвид Аганс. «Отладка. 9 незыблемых правил» — правила «смотри» и «сделай видимым».
  • Брайан Керниган, Роб Пайк. «Практика программирования» — наблюдение, логи и вывод состояния при отладке.
  • Атул Гаванде. «Всё возможное» — сила внимательного наблюдения в медицинской диагностике.

🧠 Увидеть скрытое с Фреди

Причина где-то внутри, а вам её не видно? Разберите с Фреди, что в вашей задаче скрыто и как это вытащить на свет: что измерить, что записать, где поставить метку, какое сообщение прочитать. И проверьте «очевидное» — именно там, в непроверенном, чаще всего и прячется поломка.

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

Хотите разобрать вашу ситуацию по этой теме?
Фреди — виртуальный психолог: бесплатно, круглосуточно и без записи. Расскажите, что происходит, — он поможет разложить всё по полочкам.
Поговорить с Фреди →
Андрей Мейстер
Кандидат психологических наук, психолог-методолог. Специалист по системному мышлению и разговорному гипнозу, автор образовательной системы «Вариатика» и виртуального психолога «Фреди». Подробнее об авторе →
← Все статьи блога