«Иллюзия очевидности: как когнитивные ошибки ломают проектирование систем»

Предисловие
Всем привет! В статье я расскажу о фундаментальном процессе мышления, который предшествует системному анализу. На нём строятся процессы определения и создания объектов, их вычленения в системе, придания им или выявления их свойств, и понимания системы как объекта. Речь идёт о понятийном механизме.
Хороший пример — самолёт, который в начале полёта отклоняется всего на 1–2 градуса, по итогу он прилетит в другой город. Так и с понятиями: ошибка на старте незаметна, но финальный результат делает систему неработающей. Поэтому нам критически важно наладить мосты между правилами работы мозга и создаваемыми объектами: блок-схемами, алгоритмами, информационными системами. Нужно на шаг отступить от действующих методологий и углубить знания об общем процессе.
Отсутствие этих знаний — это выдёргивание целой дисциплины из реального контекста и создание замкнутых условий, где удобно притягивать условия работы системы под то, «как должно быть».
Введение
Главный враг проектировщика (аналитика, разработчика, тестировщика) — чувство «мне всё очевидно». Зная, что мозг путает лёгкость восприятия чужой идеи с собственным пониманием, профессионал обязан насильно переизобретать для себя понятие заново (метод Фейнмана) в своей голове. Он не просто собирает алгоритмы или пишет код по готовым лекалам, а формирует внутреннюю модель предметной области с самого начала. Это единственная страховка от создания неэффективной модели.
Так же, как только требования начинают казаться понятными, команда перестаёт:
• уточнять контекст,
• проверять исключения,
• задавать неудобные вопросы,
• и перепроверять модель предметной области.
Вместо анализа мозг начинает экономить ресурсы и подставляет готовые шаблоны из предыдущего опыта. Именно поэтому, разные участники проекта часто слышат одни и те же требования, но представляют совершенно разные системы.
Понятийный инструмент (или концептуальное мышление) — это не отдельная «деталь» в мозге, а сложный процесс, распределённый по множеству систем.
P.S. Прочитай это до того, как идти дальше
Когда вы видите связный, хорошо структурированный текст, слова и понятия активируют в коре мозга соответствующие семантические сети. Возникает чувство «когнитивной легкости» — она субъективно воспринимается как истинность и понятность, очевидность. Автор «думает за вас», его готовая причинно-следственная цепочка становится на время вашей. Книга закрыта. Теперь мозгу нужно самостоятельно сгенерировать поисковый (ассоциативный, смежный – так работает наша память) извлечь фрагменты и заново собрать логическую цепочку. Именно этот навык самостоятельной генерации не был тренирован в момент чтения. Мозг путает легкость обработки информации с качеством запоминания, и самим фактом - что эти знания уже есть в памяти (хотя их нет), они разрозненны и не цельны, с помощью автора – получилось собрать пазл имеющихся отдельных знаний, следующая задача – собрать знания самостоятельно.
Или второй вариант. Да их два, и они тут важны оба!
Читая текст, вы находитесь в роли получателя. Ваш мозг достраивает модель мира автора, но делает это «в долг» — нейронные связи активировались, но не укрепились. Возникает ложное чувство знания (работает коротко срочная память без перевода в долгосрочную). Это безошибочное ощущение, что ответ есть в памяти, но он не извлекается.
С точки зрения вашего мозга, разница между «я это понял сейчас» и «я это вспомнил» почти стирается. Мозг принимает гладкость чужой аргументации за собственное знание. При закрытии книги контекст (визуальный фон страницы, шрифт, даже запах бумаги) исчезает, а мозг без этих якорей не может извлечь чистую семантическую информацию из памяти. Нужно учиться или продолжать тренировать создания «якорей памяти» / триггеров при необходимости.
Часть 1. Как мозг искажает реальность
Свойство 1: Предиктивное восприятие
При наблюдении за чем либо, в голове создаётся наиболее вероятный образ объекта реальности, происходит «предиктивное восприятие». Мозг не воспринимает реальность, а пытается предсказывать её на основе уже имеющихся у него данных. Если различия с реальностью сильные — вносятся правки.
Вспомните «слепое пятно» глаза — место, где крепятся нервные окончания и нет светочувствительных рецепторов. Мы не знали о нём, пока не дошли до этого экспериментальным путём. Мозг скрывает слепые пятна и дорисовывает окружающий мир, делая его более логичным и цельным. В итоге нам нужно целенаправленно исследовать ситуацию, чтобы просто понять, что именно скрыл от нас наш собственный мозг, не говоря уже об искажениях при процессе создания чего либо.
Мозг стремится не к объективной модели мира, а к достаточно непротиворечивой и энергоэффективной интерпретации. А истина и объективное восприятие – это человеческие критерии точности, придуманные именно людьми. (С) Курпатов А.В.
Пример (утрированный для лучшего понимания):
Директор крупного благотворительного фонда Елена хочет создать платформу, которая революционизирует сбор средств.
Её видение: «Мы создаём не просто кнопку „Пожертвовать“. Мы создаём социальную сеть добрых дел, где люди объединяются в команды, соревнуются в сборах, ведут блоги о своих подопечных, а бизнес может напрямую, минуя нас, финансировать самые эффективные команды волонтёров. Это должен быть живой организм, а не касса».
В голове у команды разработки происходит следующее:
• Архитектор смотрит на схему и говорит: «А, ну это как LinkedIn, только для волонтёров. Профили, связи, лента активности. Понял».
• UX-дизайнер кивает: «Да, и геймификация как в фитнес-приложениях: кольца прогресса, ачивки. Сделаем красиво».
• Бэкенд-разработчик добавляет: «Рейтинги — это просто лайки и система подсчёта баллов. Сделаем».
Все участники переживают чувство глубокого понимания. Слова «социальная сеть», «команды», «рейтинг» активируют в их мозге уже готовые, гладкие нейронные паттерны. Возникает когнитивная лёгкость. Никто не задаёт «глупых» вопросов, потому что всем всё «очевидно». Никто не переизобрёл понятие заново. Каждый остался в плену своего «идеального» понимания этого сервиса.
Разработчики создали технически совершенную копию платформ — «социальную сеть про добро». Она была наполнена понятными им сущностями (профиль, лайк, рейтинг), потому что их мозг, столкнувшись с задачей, среагировал на слово «социальная» и мгновенно подсунул готовый, «очевидный» шаблон из ближайшего опыта.
Елена же, глядя на этот продукт, думает и чувствует: вроде бы всё на месте, все черты знакомы, но она точно знает — это подделка, её настоящее видение подменили чем-то бездушным и нефункциональным.
Ориентироваться на чувство удовлетворения от созданной концепции вместо объективности и то как на практике решается проблема – ложный путь.
А теперь посмотрим на разницу в деталях:
• Как сделали: зашёл пользователь → зарегистрировался → создал себе красивый профиль → вступил в группу (команду).
• Как надо было сделать: волонтёр (даже незарегистрированный) → инициирует Проект. Проект — это не пост. Это структура данных, содержащая:
o Смету (а не просто «нужную сумму»): список материалов/услуг (доски, гвозди,
работа крана) с указанием проверяемых цен.
o Дорожную карту (tasks): разбитый на этапы и задачи план реальных работ с
контрольными точками (выезд на место → закупка → стройка → фотоотчёт).
o Список ролей: «Инициатор», «Снабженец», «Строитель», «Фотограф». В
«Команду» люди объединяются не по желанию «дружить», а путём занятия
конкретной роли в конкретном проекте.
• Как сделали: пользователи ставят звёздочки и лайки командам. В топе — самые «красивые».
• Как надо было сделать: «Рейтинг доверия» — это вычисляемый на основе нескольких жёстких источников параметр, а не кнопка.
o K-Factor 1: полнота данных. Смета подтверждена сканами чеков? (+10 баллов).
Загружены геотеги и фото с места работ? (+5).
o K-Factor 2: донорский аудит. Донор, профинансировавший этап, видит у себя в
кабинете не кнопку «Спасибо», а задачу: «Подтвердите получение отчёта.
Соответствует ли он заявленной смете? (Да/Нет/Есть вопросы)». Это НЕ публичная
оценка «нравится», а верифицированный бизнес-процесс.
o K-Factor 3: коэффициент реализации. Проекты, где систематически
подтверждаются этапы, получают индекс надёжности. Этот индекс нужен не для
тщеславия, а для скоринга в бизнес-кабинете.
• Как сделали: витрина проектов, где можно выбрать любой и перевести деньги.
• Как надо было сделать: это интерфейс для управляющего благотворительным портфелем.
o Фильтры скоринга: «покажи мне все проекты по экологии в моём регионе с Индексом Доверия > 80%, которые прошли аудит доноров».
o Закрытые обязательства: бизнес не «донатит в корзину», а заключает цифровой
договор на финансирование конкретной строки сметы. «Оплачиваем закупку 100
досок по цене X у поставщика Y». Платформа не просто принимает деньги, а
фиксирует обязательство и отслеживает его исполнение.
o KPI-отчётность: на основе верифицированных данных платформа автоматически
генерирует для бизнеса отчёт по стандартам ESG. «Ваши 500 000 руб.
профинансировали 5 проектов, создали 20 рабочих мест на стройке, использовано 2
тонны экологичных материалов. Подтверждённые отчёты прилагаются».
Корневое отличие: правильная программа не считает конечной точкой цифровое событие (пост, лайк, платёж). Она считает конечной точкой физическое изменение в реальном мире, подтверждённое криптографически сильным цифровым следом. Платформа Елены — это не соцсеть, а протокол доверия для офлайн-действий. Не поняв этой сути, команда построила безупречный, но бесполезный продукт. Команда спроектировала социальную платформу вместо протокола доверия для офлайн-процессов.
Мы находим ровно то - что ищем, а другое не замечаем! И ищем ровно по такому образу и подобию, который нам знаком.
Предыдущий опыт ускоряет анализ, но одновременно ограничивает пространство возможных интерпретаций.
Чем сильнее команда привязана к знакомым шаблонам, тем выше риск автоматически подменить реальную задачу её упрощённой версией.
Свойство 2: Фильтрация и дорисовывание
Мозг фильтрует информацию сам по себе. Если показать два разных изображения на разные глаза, без фокусировки внимания он их не склеит, а выберет то, на котором больше всего сконцентрируется, и возьмёт детали оттуда.
То есть наш мозг не воспринимает картинку целиком. Он берёт не все данные из реальности, а только те, из которых можно сложить цельную картинку, и ещё дорисовывает недостающие элементы (фантазирует). Мы получаем даже близко не объективную картину. Критерий её жизнеспособности прост: реальность или события не сопротивляются созданной мозгом концепции.
Мозг стремится не только к полной модели, еще и не к непротиворечивой.
Но здесь есть опасная уловка. Когда мы понимаем, что концепция ошибочна или неэффективна, мы её меняем (мозг меняет) и надеемся, что уж теперь-то всё получилось идеально — мы же заметили несостыковку, какие мы молодцы! Но мозг просто пересобрал модель на более удобную. Он не сделал ее совершенной.
Пример:
Аналитик слышит от заказчика: «Если подписка закончилась, а баланс положительный — система сама ее продлевает». Мозг выхватывает две опоры — «баланс положительный» → «продлевает» — и дорисовывает парную ветку, которой в речи не было: «А если баланс отрицательный — не продлевает». Это не сказано, но мозг вставил это в картину автоматически, потому что так симметрично и логично. Реальность не сопротивляется: заказчик не поправляет, текст гладкий, ощущение «всё очевидно». Через месяц выясняется, что при отрицательном балансе система не просто «не продлевает», а блокирует аккаунт и выставляет счёт. Мозг аналитика дорисовал правдоподобную, но неэффективную картину — и реальность дала сдачи в виде недовольного клиента, который не только не получил уведомление о предстоящем списании, а в моменте столкнулся с блокировкой ресурса. В голове уже звучит голос об «идеальном пользователе»: «Он же взрослый человек, должен сам был позаботиться и посмотреть детали подписки», нет, не должен, ведь идеального пользователя не существует – это тоже галлюцинация, которая призвана снять с разработчиков ответственность за непродуманно разработанный шаг.
Потеря важности. Т.к. работа не связана непосредственно с выживанием, мозгу и нет смысла точно анализировать и создавать высокоточные системы. Для него это игра, нужно сознательно провоцировать внимательность. Аналог - электронные деньги, которые тратим на маркетплейсах, наличные мы бы навряд ли отдавали так легко, а цифры на экране появились-пропали.
ВАЖНО! При работе со сложными абстрактными системами мозг быстро снижает уровень внимательности к повторяющимся операциям. Из-за этого команда начинает:
• упрощать формулировки,
• автоматически достраивать требования,
• и пропускать исключения как «маловероятные».
Ну и какова эффективность такого подхода? То, что мы уйдём не туда в своих действиях и решениях, — 100%. Выход: не только смотреть, по какой комбинации получится наиболее эффективная модель, а начать с самой основы, сознательно найти начальные элементы и вычленить те, что скрыты или о которых не сказали. Постараться выявить все их свойства. Всё максимально детализировать, уточнять и совершенствовать модель, с которой работаем сознательно.
Один из способов снизить количество подобных ошибок — обучиться навыку сознательного создания систем понятий и моделей как в своей голове, так и в информационных системах. Это фундаментальное условие.
Важно так же обратить внимание на то, что ты уже имеешь как материал. Верен ли он, может, стоит пересмотреть? Ведь из него будут строиться другие системы. Не ориентируйся на авторитетные данные или готовые модели. Перепроверяй. Перестраивай под себя, под свои задачи. Есть ли общий паттерн ошибок в создаваемых тобой системах? От чего он проистекает? Что ты такого хотел или, наоборот, не учёл, что даёт сбой?
Часть 2. Инструмент: четыре источника информации
Понятие не статично — оно динамически конструируется под задачу. Переделай это из условия в инструмент и пользуйся в своих интересах.
Чтобы сознательно управлять сборкой понятия, аналитик должен понимать, откуда он берёт информацию. Эти источники можно представить по пунктам:
• А: пассивно полученная информация.
• Б: активно полученная информация (целенаправленное изучение).
• В: наблюдение за поведением объекта в разных средах или создание определённой среды для него.
• Г: наличие предыдущего опыта.
Так же, чтобы уменьшить количество ложных интерпретаций, полезно явно разделять:
• откуда именно получено знание о системе,
• насколько оно надёжно,
• и какие ограничения у него есть.
Пример (система управления заказами — OMS):
А (пассивно): разработчик видит OMS как чёрный ящик — смотрит на запросы и ответы API, читает логи, видит алерты в мониторинге. Он не знает, как система устроена внутри. Всё, что у него есть, — это внешние наблюдаемые сигналы. Мозг строит модель, основанную на корреляциях: «Когда приходит запрос с флагом priority=high, ответ приходит быстрее». Это неполная, но рабочая модель.
Б (активно): тот же разработчик целенаправленно открывает документацию, читает исходный код модуля маршрутизации заказов, дебажит цепочку вызовов, изучает схему базы данных и задаёт вопросы автору системы. Мозг перестраивает модель. Теперь он знает не что происходит, а почему: «Приоритетные заказы попадают в отдельную очередь RabbitMQ, минуя основной пул». Модель стала структурной, а не поверхностной.
В (создание среды): разработчик разворачивает тестовый стенд и моделирует аномальные сценарии: отключает один из сервисов-обработчиков; отправляет 10 000 заказов одновременно; симулирует частичную потерю сети. Мозг достраивает модель аварийного поведения: «Если сервис не отвечает больше 5 секунд, система не зависает, а помечает заказ как pending_warehouse и уходит в повторное действие». Разработчик узнаёт то, что не написано ни в одной документации, — реальное поведение системы на границе отказа.
Г (предыдущий опыт): разработчик раньше работал с другой OMS, где была проблема: синхронная маршрутизация, и при пиковых нагрузках система вставала. Он видит новую OMS, и его мозг автоматически ищет: «А как здесь с асинхронностью? А есть ли очередь?». Старая модель становится фильтром для восприятия новой. Разработчик задаёт более точные вопросы: «Где здесь очередь?», «Какой брокер используется?», «Что будет при переполнении очереди?». Предыдущий опыт ускоряет понимание, но может и исказить его, если новая система построена на иных принципах.
Мозг понятийно мыслит не только определениями, а симуляцией опыта. Т.е. понимание системы формируется и через взаимодействие с поведением системы в разных условиях.
Часть 3. Рельсы для проектирования: от «пользователя» к мозгу
Когда мы пренебрегаем нейронаукой, мы строим системы для идеальных рациональных пользователей, которых не существует. В реальности мы имеем дело с мозгом, который ленив, пуглив и постоянно достраивает реальность. Не учитывая это, мы программируем не решение, а проблему.
Работай не с человеком, не с пользователем, не с клиентом, а с мозгом. Любой наш опыт взаимодействия с чем-либо — это то, как мы воспринимаем «раздражитель» для наших сенсоров и как мы на него реагируем. Работа с «идеальным пользователем» — это и есть первоочередная ошибка понятийного механизма. «Идеального пользователя» нет, есть обычный конкретный человек с определёнными правилами восприятия информации и реагирования на неё. Понимание этих правил — ключ к качественному продукту, который удовлетворит и пользователей, и группу сопровождения.
Мозг пользователя не следует алгоритму шаг за шагом, как программа. Он постоянно предсказывает, что будет дальше, и действует на опережение. Если ваша программа или схема не поддерживает эту иллюзию контроля и не подсказывает следующий шаг, пользователь будет испытывать когнитивный диссонанс и агрессию. Его мозг будет считать вашу систему «неудобной», даже если она логически безупречна.
Отсюда же следует необходимость «рельсов для мышления». Из-за ограниченности рабочей памяти и склонности к иллюзии беглости, любую сложную задачу нужно выгружать на внешние носители. Схемы, глоссарии, чек-листы, графы состояний, архитектурные диаграммы — это не бюрократия, а протез для самого слабого звена мозга. Это и есть те «рельсы», по которым и своё, и чужое мышление двигается без риска уйти в конфабуляцию.
Наконец, следи за когнитивной нагрузкой. Чем больше информационная связка в голове (нейронная связка), тем больше на неё тратится энергии. Может появиться когнитивная усталость: снижение концентрации, ухудшение памяти, замедление реакции, раздражительность. Как следствие — большое количество ошибок и потеря мотивации. Следи за тем, что собираешься обдумывать, не трать энергию мозга на заведомо ложные или бесполезные конструкты. Учись останавливать комплекс мыслей и эффективно запускать нужный. Создавай свои собственные триггеры памяти.
Заключение
На начальном этапе критически важно понимать, насколько полна информация об объекте. От этого зависят финальные этапы разработки. Наибольшее количество уточнений и наибольшее наличие свойств объекта — вот что даёт двум людям возможность точно знать, что они имеют в виду один и тот же объект.
Не ленись. Если в голове появится мысль «это просто» или «это элементарно, не буду заморачиваться с описанием» — нет, это не очевидно. Вспомни P.S. в начале статьи. Самый опасный момент — когда схема кажется автору «красивой и очевидной». Мозг принял элегантность блок-схемы за её истинность. Знание о том, что «очевидность» — это когнитивный сбой, а не показатель качества, заставляет инженера тщательнее проверять алгоритм на краевых условиях. Без этого знания рождаются изящные, но неработающие системы.
Чем сложнее система, тем опаснее ощущение «всё уже понятно». Большинство критических ошибок появляется не во время написания кода, а раньше:
• при интерпретации требований,
• выборе модели,
• формировании понятий,
• и переносе знакомых шаблонов на новую задачу.
Команда редко проектирует систему «с нуля». Чаще она адаптирует ближайшую знакомую модель:
• CRM,
• маркетплейс,
• социальную сеть,
• документооборот,
• подписочный сервис.
Это ускоряет разработку, но одновременно создаёт риск построить систему, которая выглядит технически корректной, но не решает реальную задачу бизнеса. Поэтому задача проектировщика — не только собирать архитектуру, но и постоянно проверять:
• где модель основана на фактах,
• а где недостающие части были автоматически достроены мышлением команды.
Чем раньше это обнаруживается, тем меньше вероятность создать технически качественную, но бесполезную систему.
