Эссе о разработке игр, мышлении и книгах

Гены, мемы и мемплексы

Иллюстрация засилья мемов в голове

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

Также этот пост можно считать заготовкой аргументов на случай, если придётся отбиваться от навязывания консультаций по какому-нибудь scrum.

Мемплекс это и есть сложносоставное культурное явление. Это слово буду использовать и дальше, так как оно красивое и короткое.

Начну издалека — с пары оговорок и биологии, как наиболее изученной области проявления эволюции. Потом по аналогии рассмотрим элементарные информационные конструкции — мемы. Потом мемплексы.

Оговорки об эволюции

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

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

Итак.

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

Утрируя. Эволюция — это набор процессов в среде, которая содержит «штуки» со следующими свойствами:

  • способность к копированию (любым способом, самокопирование не обязательно);
  • способность к изменению (опять же, любым способом).

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

Биологическая эволюция исследована лучше прочих, поэтому её наработки можно по аналогии переносить на другие области. Чем я и собираюсь заниматься в этом посте.

Экскурс в достижения генетики

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

По мере накопления знаний понятие гена прошло через множество изменений:

  • Сначала это была неведомая атомарная фигня, которая несёт один наследственный признак.
  • Потом оказалось, что это некоторый кусок ДНК, который отвечает за признак.
  • Потом оказалось, что точнее не за признак, а за «продукт» (белок или что-нибудь ещё), деятельность которого проявляет этот признак.
  • Потом оказалось, что не обязательно ДНК, можно и РНК.
  • Потом оказалось, что не обязательно один кусок — может быть несколько кусков в разных местах.
  • Потом оказалось, что не обязательно за один «продукт».

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

Если же говорить именно о передаче признаков, то сейчас даже встречается мнение, что информация между поколениями может передаваться не только последовательностями нуклеотидов, но и через среду, которая их окружает. Например, через распределение родительских органелл по дочерним клеткам. Этакий Ламаркизм 2.0.

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

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

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

Горизонтальный перенос генов сильно распространён среди простых организмов и является залогом их высокой адаптивности. Чем проще организм, тем легче ему модифицировать свою систему.

В частности, горизонтальный перенос генов сильно влияет на изменчивость вирусов.

Понятия генов и горизонтального переноса понадобятся нам, чтобы говорить о мемах.

Мемы

Понятие мема введено Докинзом в книге Эгоистичный ген (в последней главе, остальная часть книги уже не так интересна) и развита в Расширенном фенотипе (тут уже интересней).

По сути, мем — это такая же расплывчатая «штука» как и ген, но не в физическом пространстве, а в информационном. То есть в пространстве, организованном вычислительными ресурсами объединённых мозгов.

Мем атомарен, может копироваться и меняться. Это устойчивая информационная конструкция: песня, слово, буква «А», символ буквы «А», способ оформления отступов в коде (пробелы, табы), концепция необходимости отступов, принцип KISS, практика ежедневных стендапов.

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

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

Мемплексы

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

Примером последнего является собирательный образ геев/цыган/евреев в *-фобном обществе, в который включают все пороки, даже если они никак не связаны с осуждаемой группой.

Примеры мемплексов:

  • Правила игры с мячом: футбол, баскетбол. Мем — атомарное правило.
  • Музыкальный жанр: рок, классика, техно. Мем — базовое свойство музыки: предпочтительные инструменты, ритмы.
  • Методологии разработки: kanban, scrum. Мем — атомарная практика методологии.

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

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

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

Горизонтальный перенос мемов

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

Лучше всего горизонтальный перенос заметен в самой быстро развивающейся отрасли — информационной. Вот несколько примеров:

  • Миграция игровых механик между жанрами (распространение рпг механик на шутеры).
  • Распространение новых семантики и синтаксиса по языкам программирования (async/await, generics).
  • Передача практик менеджмента между компаниями в разных отраслях (бережливое производство, которое само является мемплексом).

Кэп и эволюция говорят, что горизонтальный перенос распространён потому, что эффективен.

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

Сложность полной замены мемплекса объясняется я объясняю инерционностью расширенного фенотипа у его носителя (высокой ценой перестройки окружения носителя мемплекса под новые модели поведения).

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

Продажа мемплексов

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

Но то, что работает на бытовом уровне, не всегда эффективно на уровне профессиональном. Когда суждения должны быть чёткими, а принимаемые решения — эффективными.

Хорошим примером тут станет вечная тяга людей объединять «случайный» набор мемов под красивым названием и предлагать как затычку для каждой бочки. Назовём такое поведение продажей мемплексов.

Под продажей я понимаю как прямое впаривание всяческих курсов, семинаров и консультаций по очередной модной методологии (scrum-у, 7-ми навыкам успешных людей, ТРИЗ-у, привычкам хорошей жены, etc), так и непрямое давление «незаинтересованных» апологетов этих же методологий.

Актуальный пример такого давления в IT — агрессивный пиар Rust с посылом замены на него всего.

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

Анекдотов же про «успешное» внедрение Agile — тыщи.

Часто принудительное внедрение мемплекса (с удалением уже существующих) ничем хорошим не заканчивается.

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

Выбрать же лучший мемплекс научным путём нет возможности по экономическим и этическим причинам.

Единственный гарантированный плюс, который даёт внедрение мемплекса, — стандартизированный словарь для работы со множеством его мемов. Слабое преимущество, когда в большинстве организаций в принципе нет навыков работы со словарём. А умеющие с ним работать давно выработали свой для своего частного набора мемов.

Работайте с мемами, а не мемплексами

Чтобы избежать проблем, оперируйте мемами, а не мемплексами. Это сложно — постоянно будет тяга объединить любимые мемы в мемплекс под красивым названием и начать впаривать. Но преимущества того стоят.

Развейте навык декомпозиции сложных явлений на атомарные, даже если это кажется невозможным.

Даже язык программирования — это мемплекс, содержащий элементарные утверждения о философии разработки, идиомы, модели вычислений, etc. Многие мемы можно выдрать из одного языка и использовать в другом, вместо того, чтобы полностью менять стэк.

Анализ, планирование, изменения проводите в терминах мемов и их взаимодействий, а не мемплексов. В большинстве случаев вы не сможете объективно оценить влияние мемплекса на что-либо. Каждый мем в нём будет оказывать своё уникальное воздействие. Сложность анализа будет расти экспоненциально с количеством мемов в вашей организации и внедряемом мемплексе. Оценить же влияние конкретного мема куда проще, как и откатить изменения назад в случае проблем.

Если вам пытаются продать мемплекс или вы заинтересовались каким-то мемплексом:

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

Например. Если у вас есть проблема с обменом информацией между сотрудниками — внедрите стендапы. Не надо сразу внедрять scrum целиком вместе со scrum-мастером.

Развивайтесь эволюционно. Революции пока можно отложить для критических случаев и R&D.