Polynom Labs

Уютный бложек команды карагандинских программистов

Tag: вброс

  • О языке производственного общения

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    По результатам наблюдений были сделаны следующие практические выводы:

    1. Дейкстра был прав: «Besides a mathematical inclination, an exceptionally good mastery of one’s native tongue is the most vital asset of a competent programmer». Способность витиевато изъясняться, как цензурно, так и наоборот, даёт серьёзный плюс к способности обсуждать запредельно сложные вещи.

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

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

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

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