Лента/TalkLedger/№ 15

Conflict Record: конфликт как данные

В модели решений есть одна практическая поломка, которая почти всегда маскируется «нормальной коммуникацией».

В модели решений есть одна практическая поломка, которая почти всегда маскируется «нормальной коммуникацией».

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

какое состояние сейчас допустимо?

Пока этот факт не выделен как объект, система остаётся в неопределённости. Она не знает, что именно стало несовместимым — и с какого момента.

Конфликт подменяют тем, чем он не является

Конфликт возникает не как эмоция и не как «плохое взаимодействие людей».
Он возникает как факт несовместимости требований к действию.

Этот факт обычно подменяют двумя вещами: документом и обсуждением.

CR ≠ документ

Документ — носитель текста. Он существует как описание. Его можно улучшать, переписывать, дополнять.

Conflict Record (CR) — фиксация факта несовместимости. Он существует не как текст, а как утверждение о состоянии системы: одновременно действовать так и так нельзя.

Критерий различия один:
документ можно редактировать без изменения реальности; конфликт от редактирования текста не исчезает.

Если подменить CR документом, ломается следующее:

  • конфликт начинает «существовать» только там, где его описали;
  • редактирование описания начинает выглядеть как устранение конфликта;
  • исчезает момент, когда система стала неопределённой;
  • невозможно отличить «мы переписали формулировку» от «мы вернули системе определённость».

Документ может быть способом хранения CR. Он не является CR по смыслу.

CR ≠ обсуждение

Обсуждение — процесс. Оно производит аргументы, варианты, попытки договориться. Оно может длиться сколько угодно.

CR — состояние. Оно фиксирует, что система находится в точке, где два требования к действию несовместимы.

Критерий различия простой:
обсуждение отвечает на вопрос «что делать?», CR отвечает на вопрос «почему нельзя продолжать действовать как раньше?».

Если подменить CR обсуждением, ломается следующее:

  • конфликт растворяется в потоке сообщений и становится недоказуемым как факт;
  • неопределённость не фиксируется во времени: непонятно, когда она возникла;
  • команда повторяет обсуждение, потому что объект проблемы не существует отдельно от переписки;
  • «самый громкий голос» начинает заменять модель: конфликт считается решённым, хотя несовместимость осталась.

CR не является частью дискуссии. Он является результатом наблюдения: одновременное действие невозможно.

Откуда берутся конфликты в модели DR/CCR

В серии уже введены два типа объектов:

  • DR задаёт действующее правило: что считается допустимым поведением.
  • CCR фиксирует изменение условий, в которых эти правила применяются.

Конфликт появляется там, где два источника требований к действию становятся несовместимы.

Минимальные формы:

  • DR <> DR: два решения требуют разных действий в одной и той же ситуации.
  • DR <> CCR: решение продолжает требовать действия, но новое условие делает это действие недопустимым или бессмысленным.

Ключевой момент: конфликт — это не «ошибка решения».
DR мог быть корректен в момент принятия. CCR мог быть объективным изменением мира.
Несовместимость возникает в точке их совместного действия.

Конфликт — это состояние неопределённости

Конфликт опасен не тем, что «кто-то не прав».
Он опасен тем, что система теряет определённость.

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

Отсюда следует формальное утверждение:

пока конфликт не зафиксирован, система не знает, что она неопределённа.

Она продолжает работать как будто всё определено, и в этот момент происходят самые дорогие эффекты:

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

CR делает неопределённость видимой и удерживаемой.

Минимальное состояние CR

CR не должен быть «досье на конфликт». Он должен быть минимальным объектом, который позволяет системе признать неопределённость как факт.

Минимальные условия существования CR:

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

  2. Указание участников конфликта
    Ссылки на объекты, которые создают требования: DR и/или CCR.

  3. Граница применимости несовместимости
    Описание того, в каких условиях несовместимость проявляется.
    Не «в целом они противоречат», а «вот в этом контуре действий они требуют несовместимого».

  4. Момент возникновения неопределённости
    Не для отчётности, а для причинности: с какого момента система должна считать себя неопределённой относительно этого участка поведения.

Этого достаточно, чтобы конфликт перестал быть «ощущением» и стал состоянием модели.

Минимальная структура записи CR и назначение элементов

Если CR фиксируется как артефакт, его структура должна описывать не обсуждение и не решение, а факт неопределённости.

Минимально:

  • Идентичность CR
    Нужна, чтобы на конфликт можно было ссылаться и связывать дальнейшие действия с конкретным фактом неопределённости.

  • Формулировка несовместимости
    Нужна, чтобы было понятно, что именно невозможно совместить: какие требования к действию не могут одновременно считаться истинными.

  • Ссылки на конфликтующие объекты (DR/CCR)
    Нужны, чтобы конфликт был встроен в причинность: несовместимость не «в воздухе», она выводится из конкретных действующих утверждений и условий.

  • Граница применимости
    Нужна, чтобы конфликт не превращался в общий ярлык на всё решение. Несовместимость всегда проявляется в некотором контуре действий, а не «вообще».

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

Эта структура не решает конфликт. Она фиксирует факт, что решать уже необходимо.

Ограничения и следствия

CR не является механизмом устранения противоречий.

Из CR не следует автоматически:

  • какое из решений «правильное»;
  • какое решение нужно отменить;
  • какой новый выбор принять;
  • как перестроить поведение системы.

CR фиксирует только одно: система в неопределённости относительно данного участка действия.

Отсюда два следствия.

Что становится невозможным при неверной модели

Если конфликт рассматривается как спор или как «временный шум», становится невозможным:

  • доказать, что неопределённость существовала как состояние системы;
  • отделить конфликт от отмены решения и от изменения контекста;
  • сохранять причинность: почему действие изменилось именно тогда, а не раньше;
  • развести «мы договорились» и «система стала определённой».

Что становится прозрачным при корректной модели

Если конфликт фиксируется как CR, становится прозрачным:

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

CR превращает конфликт из социального явления в инженерный факт.

Следующий неизбежный вопрос

CR фиксирует неопределённость, но не возвращает определённость.

Как вернуть системе определённость, если конфликт зафиксирован, но ещё не разрешён?