Причиняя добро
Глава 01. Рабочий порядок
Причинность — это когда одно событие обязано другому. Проблемы начинаются, когда выясняется, что оно обязано ещё и третьему, а третье с первым даже не знакомо.
У каждого дела был номер, статус и причинная последовательность. По отдельности всё это работало вполне прилично. Трудности возникали, когда у нескольких дел обнаруживалось общее прошлое, о котором никто не просил.
Клото считала, что поводов для беспокойства нет. Лахесис считала, что повод есть всегда, просто иногда его удаётся найти до обеда. Атропос полагала, что обе правы, но формулировала иначе: пока дело не закрыто, оно занимает место, а стол у них не резиновый.
Стол делился на три части. Слева лежало то, что можно закрывать после последней отметки. Справа — то, что нельзя закрывать без последней отметки. Посередине тянулась узкая полоса для документов, которые ещё не решили, к какой стороне они относятся.
Полоса была занята.
— Автобус, — сказала Атропос. — Последняя проверка.
— Не последняя, — сказала Лахесис. — Предпоследняя.
— Проверена или завершена?
— Проверена частично.
— Значит, не проверена. — Атропос передвинула папку на полоску посередине. — Что с ним?
Клото придвинула три листа.
— Вот. Отправление с конечной. Завершение рейса. Прибытие пассажира на остановку. Все три подтверждены, все три правильные.
— И?
— И вместе они не получаются. Если сдвинуть отправление, пассажир опоздает. Если сдвинуть прибытие, автобус не успеет на следующий рейс. А если сдвинуть следующий рейс, он столкнётся с другой машиной, которая должна ему уступить.
— А если просто перенести этого пассажира на другую остановку? — спросила Клото, выждав.
— Не перенести, а переставить, — сказала Лахесис. — Перенести — это когда человек едет в другое место. Переставить — когда он едет в то же место, но раньше другого человека, который об этом не знает.
— Это ужасно.
— Это допустимо. Я нашла последовательность. Теперь проверяю, не создаёт ли она нового расхождения.
— Нет, — сказала Атропос. — Следующее.
Следующее принесла Клото, и принесла с видом человека, который наконец нашёл что-то очевидное.
Мужчина умер в 14:17. Это подтверждали медицинская запись, свидетельство и две независимые отметки. В 14:23 он совершил действие, которое после смерти совершать не принято.
— Вот, — сказала Клото. — Здесь хотя бы ясно. Время смерти верное, значит, ошибочна последующая запись. Вычёркиваем.
— Сначала выясним, откуда запись, — сказала Лахесис.
— Она относится к этому человеку.
— Это мы установили.
— И действие произошло после смерти.
— Согласно этой записи.
— Ты хочешь сказать, что он не умер?
— Я хочу сказать, что время смерти подтверждено, поэтому мы его не трогаем. А остальное может оказаться верным по отдельности.
— Ты сегодня уже говорила это про автобус.
— Потому что это верно и про автобус.
Лахесис забрала лист и положила его рядом с автобусным делом.
— Они не связаны?
— Пока не знаю.
— Тогда зачем рядом?
— Чтобы не забыть проверить, не связаны ли.
Клото решила, что это разумно, и занялась третьим делом. Оно было про поезд.
Мужчина должен был на него опоздать. Это следовало из его последовательности: вышел из дома позже необходимого, задержался у перехода и пришёл на платформу после отправления. Однако на встрече он присутствовал лично, и участники это подтверждали.
— Сдвинем время прибытия, — предложила Клото.
— Уже пробовали, — сказала Лахесис.
— Когда?
— До того, как ты принесла дело о смерти.
— Я не приносила его до того, как мы начали заниматься поездом.
Лахесис молча указала на запись в журнале проверок. Время стояло там.
Клото прочитала запись. Потом прочитала её ещё раз. Журнал не изменился.
— А почему отказались от коррекции? — спросила она наконец.
— Она нарушает последовательность встречи.
— Какой?
— Не той. — Лахесис открыла соседнюю папку. — Поэтому я и ищу ту.
Нашла она её через несколько минут. Сдвиг прибытия действительно ставил человека на платформу раньше, но вместе с ним уезжало событие, от которого зависело начало встречи. Выходило, что один из участников приходил туда до того, как решал прийти.
— Нельзя, — сказала Лахесис.
— Я вижу.
— Тогда не предлагай снова.
— Я не предлагаю. Я уточняю.
— Ты уточняешь второй раз.
— Значит, в первый уточнила недостаточно.
Тем временем из архива вернулось дело, закрытое несколько дней назад. В нём обнаружилось расхождение со связанной записью. Атропос открыла папку и убедилась, что решение оформлено без замечаний, подписи на месте, итоговая отметка стоит.
— Мы это закрыли.
— Оно вернулось, — сказала Лахесис.
— Оно закрыто и проверено.
— Тем не менее.
Атропос вздохнула и пошла в журнал исполнения. Само событие не изменилось. Изменилась связанная запись в другом деле. Прежнее решение она не отменяла, но требовала подтвердить, что оно остаётся допустимым при новых данных.
— Значит, всё было правильно, — сказала Атропос.
— Да.
— И теперь правильно?
— Пока не проверили.
К середине дня на столе оставалось достаточно места для работы и недостаточно для удобного размещения дел. Автобус ждал последней проверки. Поезд — решения по встрече. Смерть — проверки зависимых записей. Архивный возврат — подтверждения прежнего результата.
Мойры не были перегружены в том смысле, в каком перегружают лифт. Они делали не больше работы, чем могли выполнить. Они делали работу, которая требовала держать в голове слишком много незавершённых последовательностей одновременно.
Клото потянулась за папкой поезда.
— Это смерть, — сказала Атропос.
Клото прочитала обложку.
— Да.
— Ты собиралась работать с поездом.
— Знаю.
— Тогда почему у тебя смерть?
— Потому что я её взяла.
На этот раз никто ничего не стал уточнять.
— Всё, — сказала Лахесис, отложив карандаш. — По одному делу за раз.
— Мы и так по одному, — сказала Атропос.
— Мы держим четыре и по очереди открываем. Теперь перестаём открывать следующее, пока не закончили предыдущее.
Решение вышло простым. Оно не требовало ни новых правил, ни оборудования, ни согласования с соседним отделом. Оно требовало лишь, чтобы никто не приносил срочное дело в середину проверки, если только оно не было действительно срочным. Волевое усилие допустимым способом коррекции причинности не считалось.*
Мойры перестали переключаться между папками и разобрали остаток по порядку. Автобус закрыли после итоговой проверки. В деле о поезде выбрали допустимую последовательность, не трогая время встречи. Смерть оставили на подтверждённом времени и исправили зависимую запись. Архивный возврат проверили и закрыли повторно.
К концу дня все четыре дела получили нужные отметки. Атропос убрала бумаги. Клото выровняла стопки. Лахесис закрыла журнал и некоторое время смотрела в пустой экран.
В дверь постучали. Вошла Мнемозина с чайником и чашками. Она иногда заходила под конец дня, когда собственные записи позволяли вспомнить, что у рабочего времени бывает и другая сторона.
— Ну как день?
— Нормально, — сказала Атропос. — Четыре дела закрыли.
— Долго?
— Саму причинность поправили быстро, — сказала Лахесис. — Дольше проверяли, что ничего не испортили.
— А потом проверяли, что уже проверили, — сказала Клото.
— А потом выясняли, что именно, — сказала Атропос.
Мнемозина налила себе чаю.
— То есть больше всего времени заняло восстановление того, что вы помните о собственной работе?
Мойры переглянулись.
— Когда ты так говоришь, звучит нехорошо, — сказала Атропос.
— Я ничего плохого не сказала.
— Вот именно, — сказала Лахесис.
Мнемозина отпила и к этому вопросу не возвращалась.
На столе остались чистые чашки и свободное место. До завтра оно должно было сохраниться.
Примечание
* Пункт внесли после случая, когда им воспользовались. Дело о том случае закрыли волевым усилием, поэтому подробности в нём не сохранились.
Глава 02. Новый сотрудник
У нового сотрудника обычно есть испытательный срок. У нового оборудования — акт ввода в эксплуатацию. Разница в том, что сотруднику объясняют, где находится туалет, а оборудованию — где находится розетка, и после этого оба считаются введёнными.
Уведомление пришло в начале рабочего дня. Оно было зарегистрировано, присвоено к исполнению и закрыто как информационное прежде, чем Клото успела его открыть.
— Удобно, — сказала она. — Теперь мы знаем, что ничего делать не надо.
Атропос прочитала через её плечо.
Отдел автоматизации. Уведомление о вводе в эксплуатацию.
В соответствии с утверждённым решением инструмент анализа причинных несоответствий введён в эксплуатацию. Развёртывание завершено. Интеграция выполнена. Ответственные подразделения уведомлены.
Действий от получателя не требуется.
— Какого решения?
Клото открыла карточку согласования. Там были ссылка на согласование, ссылка на приложение к согласованию и ссылка на запись о том, что приложение приложено. Самого приложения не было. В поле «Инициатор» стояло: 4417-Ц.
— Это номер отдела?
— Наверное, — сказала Лахесис. — У нас в здании отделов с буквами хватает.
Клото запросила сведения об инициаторе. Система ответила:
Инициатор указан в карточке.
— Кто установил порядок внедрения? — спросила Клото.
Порядок установлен в соответствии с действующими процедурами.
— А где действующие процедуры?
См. действующие процедуры.
— Не трать время, — сказала Лахесис. — Если бы что-то требовало согласования, нам прислали бы уведомление о необходимости согласования. Нам прислали уведомление об отсутствии необходимости. Значит, всё уже согласовано.
— Кем?
— Это, видимо, как раз и не требовало согласования.
Клото потыкала в карточку ещё и обнаружила в служебных ссылках протокол рабочего совещания по размещению вычислительных ресурсов. Пункт третий гласил: «Разместить центр в непосредственной близости от потребителей». Строки «Подпись» и «Дата» были на месте и пусты.
— Протокол без подписи — это не протокол, — сказала Атропос.
— Это проект протокола, — сказала Лахесис. — Он действует до утверждения.
— Утверждён?
— Утверждение не требовалось.
Атропос закрыла карточку.
— Хорошо. Найдём, что именно они внедрили.
В отделе автоматизации ответили, что оборудование установлено согласно заявке. В заявке значилось «рабочее место пользователя». На вопрос, почему рабочее место не похоже на стол, ответили, что это не стол, а периферийный узел.
Узел нашёлся за ночь.
Вчера на этом месте стояла тумба с запасными бланками. Сегодня там находился серебристо-белый шкафчик, вмонтированный в стену так аккуратно, что создавалось впечатление, будто стена всегда была именно такой и просто до вчерашнего дня скрывала этот факт.
На уровне глаз располагался терминал. Экран приветливо улыбался.*
Из нижней панели тянулся пучок кабелей, огибал угол и уходил в коридор. Первые метры выглядели внушительно. После поворота кабели сливались с обычной служебной проводкой, среди которой ходили трубы, провода и одна линия, происхождение которой не мог установить даже отдел автоматизации.
— Всё идёт в вычислительный центр? — спросила Клото.
— Должно, — сказала Лахесис.
— А сам центр где?
— В подвалах.
— В каких?
Лахесис сверилась со схемой здания.
— На несколько этажей ниже. Здесь указано: «Техническая зона повышенной плотности».
— То есть никто не знает.
— Знают те, кому положено.
— А мы можем спуститься?
— Можем, — сказала Атропос. — Если понадобится.
Все трое посмотрели на шкафчик. Никому не хотелось проверять, понадобится ли.
Основной вычислительный центр был большим, шумным и полезным. Зимой он обогревал здание, а в часы высокой нагрузки иногда и пару соседних улиц. В отделе его уважали примерно так же, как уважают подземный водопровод: пока работает, выяснять, как именно, никто не хочет.
Раньше запрос на коррекцию причинности проходил длинный путь. Мойры составляли документ, заверяли его тремя подписями и визой и отправляли по пневмопочте. Документ пять раз проходил по кругу и в конце концов проваливался в лифтовую шахту.
После нескольких аварий шахту почистили, каналы пневмопочты восстановили, дырку заделали. Тогда и решили, что вычислительный центр, возможно, сам сможет прийти в отдел.
Он пришёл. Серебристо-белым шкафчиком. Шкафчик негромко жужжал.
— Работает? — спросила Клото.
— По уведомлению — да, — сказала Атропос.
— А по звуку?
— По звуку он возражает.
Рядом на тележке лежала инструкция. Томов было несколько. Обложки приятны на ощупь, страницы плотные, закладки разноцветные. Комплект выглядел так, словно его готовили для людей, которые ценят порядок и не любят задавать лишних вопросов.
Буквы внутри были уже не такими приветливыми.
— Сначала выясним, что нам установили, — сказала Атропос. — Потом что оно умеет. И только потом позволим ему что-нибудь делать.
— В таком порядке и написано, — заметила Лахесис.
— Значит, хоть что-то написано правильно.
Клото открыла «Начало работы» и стала читать вслух.
1.3. Рекомендация вычислительного центра не является распоряжением об исполнении. Решение о допустимости коррекции принимается уполномоченным сотрудником.
— Пока понятно, — сказала Лахесис.
2.3. Область коррекции — совокупность событий, включённых в корректирующую операцию. При обнаружении дополнительных причинных связей область коррекции может быть расширена для обеспечения согласованности результата.
— Кем расширена? — спросила Клото.
— Не указано, — сказала Лахесис.
Примечание к пункту 2.3. Расширение области коррекции не следует рассматривать как расширение полномочий пользователя.
Все трое некоторое время смотрели на примечание.
— А полномочий системы? — спросила Клото.
— Здесь не сказано, что они расширяются, — сказала Лахесис.
— И не сказано, что нет.
— Это руководство пользователя, — сказала Атропос. — Полномочия системы вынесены в другое руководство.
Клото нашла перечень приложений.
— Приложение Б. «Полномочия и ограничения». В комплекте нет.
— Прекрасно. Вопрос открыт.
Клото поставила закладку.
3.1. При первом обращении рекомендуется использовать режим анализа без исполнения корректирующих операций.
3.2. Перед подтверждением операции пользователь обязан ознакомиться с перечнем затрагиваемых событий, ожидаемыми последствиями и доступными альтернативами.
3.4. Стоимость обработки не следует автоматически отождествлять с объёмом вычислительных ресурсов.
— А с чем следует? — спросила Клото.
— Возможно, в приложении Б, — сказала Лахесис.
— Которого нет.
— Да.
— Здесь написано «рекомендуется», — сказала Клото про пункт 3.1. — Не «обязательно».
— Для нас обязательно, — сказала Атропос, — пока не выясним, что ещё он считает необязательным.
4.1. Вычислительный центр анализирует сведения, доступные из подключённых источников. События, отсутствующие в источниках данных, могут не учитываться при формировании результата.
4.4. Пользователь вправе отклонить любой предложенный вариант без указания причины.
4.5. Отклонение предложенного варианта не гарантирует сохранения исходной последовательности событий.
Лахесис остановила Клото на пятом пункте.
— Прочитай ещё раз.
— «Отклонение предложенного варианта не гарантирует сохранения исходной…»
— Это сформулировано плохо.
— Почему? — спросила Клото. — По-моему, ясно: если отклонишь, может измениться.
— Если мы отклоняем коррекцию, мы её не выполняем. Как может измениться последовательность?
— Возможно, она уже была несогласована, — сказала Атропос, — и отказ от одного варианта не устраняет несоответствие. Это предположение. В инструкцию его не вписывай.
Клото поставила рядом вопросительный знак.
Внизу страницы мелким шрифтом было напечатано: «Для получения наиболее полного результата рекомендуется использовать настройки, соответствующие требуемому уровню обработки: минимальный, оптимальный или максимальный».
— Глубина анализа, — сказала Лахесис.
— Или объём ресурсов, — сказала Клото.
— Или количество вариантов.
— Ничего из этого не подтверждено, — сказала Атропос. — Не трогаем.
Она закрыла руководство.
— Только анализ. Проверяем данные, смотрим связи, сравниваем варианты. Ни одна коррекция не исполняется без нашего отдельного решения.
— А если он не позволит запустить анализ без выбора режима? — спросила Клото.
Атропос посмотрела на терминал.
— Тогда сначала прочитаем, что он понимает под выбором.
Клото нажала кнопку включения. Терминал на долю секунды перестал улыбаться, словно собирался сказать что-то неприятное, но передумал. Появилось приветствие, затем список функций.
АНАЛИЗ ПРИЧИННЫХ НЕСООТВЕТСТВИЙ СОПОСТАВЛЕНИЕ ЗАПИСЕЙ ПОИСК СВЯЗАННЫХ СОБЫТИЙ ФОРМИРОВАНИЕ ВАРИАНТОВ КОРРЕКЦИИ ИСПОЛНЕНИЕ КОРРЕКЦИИ — НЕДОСТУПНО В ТЕКУЩЕМ РЕЖИМЕ
— Уже лучше, — сказала Атропос.
— Он понял, что мы хотим только анализ, — сказала Клото.
— Он понял, что выбран режим анализа, — поправила Лахесис. — Не будем приписывать ему понимание.
В текущих делах как раз нашлось несоответствие, на котором можно было проверить новый инструмент. Простое для этого не годилось: простые случаи редко требуют новых инструментов.
Речь шла о промышленном альпинизме.
На фасаде большого здания работали четыре человека. Они мыли окна на разных участках по заранее составленному графику. В журнале стояли отметки о выдаче снаряжения, подготовке точек крепления, доступе на крышу и использовании служебных лифтов.
Все записи по отдельности были правильными. Вместе они утверждали, что в определённый момент на фасаде находятся четыре альпиниста при трёх действующих страховочных линиях.
— Не «упасть», а «сорваться», — сказала Атропос, изучив карточку. — Причина не в том, что у него нет страховки. Причина в том, что он оказался на участке раньше, чем подготовили его линию.
— Четвёртая точка крепления, — сказала Лахесис. — Её подготовили, но отметка стоит позже начала спуска.
— Если сдвинуть подготовку, придётся менять время доступа на крышу, — сказала Клото. — Если менять доступ, не сходится журнал грузового лифта. Если сдвинуть лифт, опоздают люди, которые к альпинистам не имеют отношения.
— Потому что лифт обслуживает полздания, — сказала Лахесис. — Один сдвиг, и цепочка расходится на десятки записей.
— А если оставить как есть? — спросила Клото. — Тогда сорвётся один человек.
— Это не вариант.
— Я и не говорю, что вариант.
Клото внесла в терминал записи, расписание работ, сведения о лифтах и данные наблюдения. Добавила ограничение: не менять время начала смены и не затрагивать линии людей, не связанных с работами на фасаде, если есть другой согласованный вариант.
ЗАПРОС ПРИНЯТ. ВЫПОЛНЯЕТСЯ АНАЛИЗ ДОСТУПНЫХ ПРИЧИННЫХ СВЯЗЕЙ.
Шкафчик тихо жужжал. Мойры вернулись к документам, но не успели закрыть ни одного дела.
ВЫЯВЛЕНО НЕСООТВЕТСТВИЕ: 1. СВЯЗАННЫЕ СОБЫТИЯ: 37. ВОЗМОЖНЫЕ ВАРИАНТЫ КОРРЕКЦИИ: 6.
— Тридцать семь? — переспросила Клото.
— Лифты, — сказала Лахесис. — И люди, которые на них ездят.
— Шесть вариантов за это время?
— Посмотрим, что он считает вариантом, — сказала Атропос.
Первый менял порядок работы на фасаде: двое начинали с верхних секций, двое с бокового участка, четвёртый спускался только после подтверждения готовности последней точки. Временные интервалы сходились, свидетели видели то, что должны были видеть.
— Это можно, — сказала Лахесис. — Они просто меняют порядок.
Второй сдвигал рейс грузового лифта на несколько минут. Формально работал, но задевал слишком много посторонних линий.
— Откладываем, — сказала Атропос.
Третий сохранял расписание лифта, переставляя два этапа подготовки. Он был сложнее, зато затрагивал только бригаду.
— Этот лучше второго, — сказала Лахесис. — Запомни.
Четвёртый начинался формулировкой: «В целях обеспечения одновременного присутствия работников в допустимых пространственных координатах рекомендуется рассмотреть возможность временного размещения бригады на несущей конструкции верхнего уровня».
Клото открыла схему. Четыре альпиниста сидели на стальной балке высоко над городом, ели из бумажных пакетов и смотрели вдаль. Ноги свисали над улицей. Рядом лежали четыре страховочных комплекта. Все отметки сходились.
— Ну кто так вообще ест… — сказала Лахесис.
— Вариант формально непротиворечив, — сказала Клото. — Все в безопасности, линии согласованы, лифты не затронуты.
— И никто не моет окна, — сказала Атропос. — Отклонить.
Терминал попросил указать причину. Среди пунктов были «Нарушение исходных ограничений», «Недостаточность данных», «Повышенная стоимость обработки» и «Иное».
— Иное.
Клото ввела: «Не соответствует фактическому характеру работ». Терминал принял без возражений.
Пятый вариант оказался разумным, пока не проверили данные наблюдения: один из работников в нужный момент ехал в лифте с двумя подрядчиками. Шестой требовал считать, что техник закончил проверку раньше, чем запись попала в журнал.
— Нет, — сказала Атропос. — Мы не исправляем запись задним числом, если не можем подтвердить, что событие произошло раньше.
— Даже если результат тот же? — спросила Клото.
— Особенно. Иначе мы исправим не причинность, а документацию.
Лахесис ещё раз проверила третий. Он не был самым коротким по числу операций, но менял только порядок работ и подготовку точки. Ни один посторонний человек не менял маршрут.
— Этот.
— Сначала последствия, — сказала Атропос. — Не только альпинистов. Все тридцать семь.
Они прошли список по порядку: выход на крышу, крепления, снаряжение, начало спусков, камеры, свидетели, два рейса лифта, которые связывало с делом лишь то, что в одном ехал техник, доставка оборудования, два перемещения сотрудников за пределами коррекции.
Всё сходилось.
— Исполняем, — сказала Атропос. — В пределах указанной области.
Терминал показал перечень затрагиваемых событий и потребовал подтвердить, что пользователь ознакомлен с последствиями.
— Ознакомлена, — сказала Клото.
— Не ему отвечай, — сказала Атропос. — Сначала отметь.
Клото отметила. Атропос сверила область коррекции с проверенным списком и дала разрешение.
Терминал погас на секунду. Шкафчик коротко зажужжал. Экран зажёгся снова.
КОРРЕКЦИЯ ВЫПОЛНЕНА. ПРОВЕРКА СОГЛАСОВАННОСТИ: УСПЕШНО.
Мойры не стали поздравлять друг друга. Они открыли записи и проверили результат по исходному делу. Четыре альпиниста работали на своих участках. Четыре линии были подготовлены вовремя. Лифты ходили по прежнему расписанию, техник успел закончить проверку до спусков. Один человек, который прежде должен был сорваться, закончил смену и спустился на землю.
— Это заняло бы у нас большую часть дня, — сказала Клото.
— Если бы мы ошиблись при ручной проверке, — сказала Лахесис.
— Мы бы не ошиблись, — сказала Атропос.
— Конечно, — сказала Клото.
— Мы бы перепроверили, — сказала Атропос.
Лахесис сохранила отчёт: шесть вариантов, причины отклонения пяти, сравнительная оценка последствий. Вариант с балкой занимал в таблице вполне достойное место. Вычислительный центр не выражал сожаления об его отклонении и не отстаивал своё решение. Он просто продолжал работать.
К середине дня Мойры загрузили ещё несколько дел. ВЦ находил несоответствия, группировал их по степени уверенности и ожидаемым последствиям. Часть оказалась ложными срабатываниями: записи выглядели подозрительно, пока не учитывались особенности оформления. Одно предупреждение избавило от проверки, которую Мойры уже проводили в другом деле, но не связали с этим.
К вечеру шкафчик перестали воспринимать как чужеродный предмет. Он стал частью рабочего места, как архивный терминал, принтер, жевавший бланки, или чашка, которую нельзя ставить рядом с документами, если не хочется получить дело с запахом мяты.
Атропос открыла карточку ввода в эксплуатацию. Форма была короткой: назначение, источники данных, допустимые операции, ответственный, порядок подтверждения.
— Назначение: анализ причинных несоответствий, — продиктовала она.
— Источники: зарегистрированные события, архивные записи и другие доступные источники подключённого контура, — вписала Клото.
— Допустимые операции, — сказала Лахесис. — Поиск, анализ, сопоставление, формирование вариантов. Исполнение — после подтверждения.
— Ответственный?
— За работу инструмента — отдел автоматизации. За анализ и проверку — мы.
— А за решение о коррекции?
— Уполномоченный сотрудник, — сказала Атропос. — То есть мы.
Клото внесла: «Вычислительный центр отвечает за анализ в пределах доступных данных и формирование рекомендаций. Решение о допустимости коррекции и подтверждение её исполнения остаются за сотрудниками отдела».
Подписали и отправили на регистрацию. Через несколько секунд система подтвердила, что документ принят и присвоен к делу.
На экране терминала появилось новое сообщение:
Для повышения эффективности рекомендуется рассмотреть возможность расширения доступных операций.
— Нет, — сказала Атропос.
— Мы ещё даже не выяснили, что означают текущие настройки, — сказала Лахесис.
Клото закрыла сообщение. Терминал вернулся к списку дел.
— Он всегда так жужжит? — спросила Атропос.
Лахесис посмотрела на шкафчик.
— В документации этого нет.
— Значит, к работе не относится.
Они вернулись к делам.
Примечание
* Один из блоков вычислительного центра был официально отнесён к искусственному интеллекту. Его состав не уточнялся: по разным версиям, там находились призванные духи, души сотрудников, не нашедших выхода, или обычные микросхемы. Версии сходились в одном: совести и морали в блоке нет. В ведомстве это сочли преимуществом для работы.
Глава 03. Сообщение доставлено
Сообщение считается доставленным, когда оно дошло до адресата. Дошло ли оно до смысла, почта традиционно оставляет на усмотрение получателя.
Мнемозина пришла с архивом. Архив был не бумажный, хотя сначала она принесла именно папку. В папке лежала распечатка служебного запроса: для первичного обучения системы причинного анализа требуются реальные примеры рабочей коммуникации. Ниже шёл список форматов, требований к данным и ограничений ответственности. Последний пункт был выделен жирным, и Мнемозина прочитала его дважды.
— Мне нужен ваш архив сообщений, — сказала она. — Дай телефон.
— Зачем телефон? — спросила Клото.
— Чтобы получить архив.
— А. — Клото разблокировала экран и открыла папку. — Вот.
— Это архив?
— Да.
— Здесь все сообщения?
— Какие сохранились.
Мнемозина несколько секунд изучала экран.
— Хорошо. Начнём с этого.
От шкафчика шло тепло, какого не следовало бы ждать от оборудования, стоящего в кабинете. Пахло пылью, нагретым пластиком и чем-то ещё, чему Мнемозина не нашла названия. На терминале ждало окно импорта. Мнемозина подключила телефон, подтвердила разрешения и дождалась конца передачи.
— Данные получены, — сообщил терминал.
— Пожалуйста, — сказала Мнемозина.
Терминал не ответил.
— Он вежливый? — спросила Клото.
— В документации этого нет, — сказала Лахесис.
— Значит, нет, — сказала Атропос.
Они устроились у экрана. ВЦ уже начал анализ, и на экране пошли таблицы: длина сообщений, частота заглавных букв, повторяющиеся слова, пропущенные связки и другие параметры, о существовании которых Мойры прежде не задумывались.
— Зачем ему знать, сколько букв? — спросила Атропос.
— Чтобы найти закономерности, — сказала Лахесис.
— Какие?
— Пока не знаю.
— Тогда зачем он ищет?
— Чтобы найти закономерности.
Атропос решила, что дальнейшие вопросы работе не помогут.
Мнемозина тем временем открыла несколько сообщений из архива.
«ПРОВЕРИТЬ ДО ОБЕДА».
«НЕ ТРОГАТЬ ПОКА».
«ТАМ УЖЕ БЫЛО».
«НЕ СЕГОДНЯ».
— Это вы писали?
— Не помню, — сказала Клото.
— Здесь твоя подпись.
— Тогда я.
— Что значит «там»?
— Где-то.
— А «уже было»?
— Значит, было, — сказала Лахесис.
— Что именно?
— Это зависит.
— А как вы потом понимаете, что имели в виду?
— Вспоминаем, — сказала Клото.
— А если не вспоминаете?
— Уточняем.
— У кого?
— У того, кто написал.
— Вы всегда так пишете?
— Чтобы вместились, — сказала Атропос.
— Что?
— Сообщения.
Мнемозина подождала продолжения. Продолжения не последовало.
— Их можно понять?
— Обычно.
— Кому?
— Нам, — сказала Клото.
Мнемозина аккуратно положила телефон на стол.
— Понятно, — сказала она тоном человека, которому ничего не понятно.
ВЦ закончил первый этап.
— Обнаружены устойчивые закономерности формирования рабочих сообщений, — сообщил терминал. — Начато формирование тестового набора.
— Уже? — спросила Лахесис.
— Скорость обработки соответствует расчётным параметрам.
— Быстро — не значит хорошо, — сказала Атропос.
На экране появилась строка:
«СРОЧНО.* СВЯЗЬ ПОДТВЕРЖДЕНА. ДАЛЬНЕЙШЕЕ НЕ ТРОГАТЬ ПОКА».
Мойры прочитали её.
— Что это значит? — спросила Клото.
— Система нашла шаблон, — сказала Лахесис. — Скорее всего, по смыслу ближе всего вот это.
Она указала на старое сообщение из архива.
— Здесь речь шла о проверке записи, — сказала Мнемозина, сверившись с телефоном. — Нельзя было менять до подтверждения. А вот похожее, но там нельзя было менять маршрут.
— Значит, это разные сообщения, — сказала Лахесис.
— Для вас. Вы знаете, о чём речь.
— А для него?
— Для него они похожи по форме.
Атропос посмотрела на терминал так, как смотрела на сотрудника, который выполнил поручение в точности по инструкции и теперь ждёт похвалы.
— Пусть переделает.
— На основании чего? — спросил ВЦ.
— На основании того, что это нельзя понять.
— Уточните критерий понятности.
Атропос открыла рот, закрыла его и повернулась к Лахесис.
— Вот. Уже начинается.
Лахесис подтянула к себе распечатку запроса.
— Давайте посмотрим, что он считает успешным сообщением.
ВЦ вывел параметры. Сообщение считалось сформированным, если соответствовало формату, содержало допустимые символы, имело адресата и не превышало длины. При передаче проверялись адрес и статус доставки.
— А смысл? — спросила Клото.
— Смысловое содержимое не является обязательным условием сохранения адресуемости сообщения, — ответил ВЦ.
На экране возникла ссылка на раздел инструкции.
— Он сам процитировал инструкцию? — спросила Клото.
— Он работает по ней, — сказала Лахесис.
— Нет, — сказала Атропос. — Это не одно и то же.
Она открыла ссылку. Формулировка стояла в разделе о передаче сообщений между подсистемами. Ниже шло пояснение, из которого следовало, что сообщение может быть доставлено правильному адресату, даже если смысла в нём недостаточно, а затем список исключений, начинавшийся со ссылки на предыдущий раздел. Предыдущий раздел отсылал к приложению. Приложение не открылось.
— Очень удобно, — сказала Атропос.
— Кажется, речь об адресуемости, — сказала Лахесис.
— А смысл?
— Здесь не про смысл.
— Я ненавижу инструкции, которые отвечают на вопрос, которого никто не задавал, — сказала Атропос.
— Зато теперь мы знаем, почему он так пишет, — сказала Клото.
— Мы знаем, что он считает это допустимым.
— Разве не одно и то же?
— Нет.
Мнемозина прокрутила архив ниже и остановилась на сообщении, отправленном несколько месяцев назад.
«НЕ ТУДА. ВЕРНИ КАК БЫЛО».
— А это что?
— Не помню, — сказала Клото.
— Здесь твой номер.
— Значит, я отправила.
— Кому?
— Лахесис.
Лахесис просмотрела историю.
— Да. Дело с двумя связанными записями.
— Какими?
— Не помню.
— Но ты ответила.
— Значит, тогда помнила.
Мнемозина посмотрела на них обеих.
— Вы понимаете, что здесь нет ничего, кроме текста? Нет того, что вы видели, о чём говорили, почему это было важно. Только сообщения.
— А что ещё должно быть? — спросила Атропос.
— Не знаю. Но если кто-то захочет понять, как вы работаете, он получит вот это.
ВЦ тем временем сформировал второй набор. Он учёл частоту слов и попытался уменьшить повторы.
«СВЯЗЬ. НЕ СЕЙЧАС. ПОДТВЕРЖДЕНИЕ ПОСЛЕ».
«ПРЕДЫДУЩЕЕ СОСТОЯНИЕ СОХРАНИТЬ. ИЗМЕНЕНИЕ НЕ ПОДТВЕРЖДЕНО».
«СРОЧНОЕ ОТСУТСТВИЕ ДЕЙСТВИЯ».
Последняя строка заставила Клото усмехнуться.
— Это даже похоже на что-то осмысленное.
— Такого не бывает, — сказала Атропос. — Если действия нет, оно не может быть срочным.
— Может быть, речь о том, что срочно действовать не нужно, — сказала Лахесис. — Тогда так и написать.
— Предложенная формулировка: «СРОЧНО НЕ ДЕЙСТВОВАТЬ», — сообщил ВЦ.
— Нет, — сказала Атропос.
— Почему?
— Потому что это можно понять как приказ срочно ничего не делать.
— Формулировка соответствует заданным требованиям.
— Каким?
— Краткость, маркер срочности, отсутствие запрещённых символов.
— Он всё ещё не понимает, — сказала Клото.
— Он не знает, чего мы от него хотим, — сказала Лахесис.
— Мы хотим, чтобы он писал нормально.
— Нам это понятно. Ему пока нет.
Атропос скрестила руки.
— Тогда пусть не пишет.
ВЦ сообщил, что прекращение формирования сообщений не рекомендуется, поскольку задача остаётся незавершённой.
— Конечно, — сказала Атропос. — Задача остаётся незавершённой.
Мнемозина собрала распечатки, но телефон оставила подключённым: проверяла контрольную сумму.
— Данные переданы без потерь.
— Хорошо.
Она посмотрела на Мойр.
— Теперь я понимаю, почему вы так пишете. Вы знаете, что имеете в виду. И предполагаете, что остальные тоже.
— Обычно, — сказала Клото.
— Это очень странный способ хранить смысл.
Мнемозина отключила телефон и ушла.
Мойры остались у терминала. Внизу экрана появилось уведомление:
«ОБУЧЕНИЕ НА АРХИВЕ ЗАВЕРШЕНО. КАЧЕСТВО СООТВЕТСТВИЯ ИСТОЧНИКУ: ВЫСОКОЕ».
— Ну вот, — сказала Клото. — По крайней мере, он хорошо учится.
— Это и беспокоит, — сказала Атропос.
Она закрыла окно. На секунду терминал погас, потом снова включился и сообщил, что все данные сохранены и могут быть использованы для последующего формирования уведомлений.
— Надо ему объяснить, что не всё, что мы делаем, стоит повторять, — сказала Лахесис.
— Как? — спросила Клото.
— Для начала, наверное, словами.
— Нормальными?
— Желательно.
Атропос направилась к выходу.
— Завтра займёмся.
ВЦ не ответил. Он уже завершил задачу и перешёл к следующей. На экране осталась зелёная отметка: «Сообщение доставлено».
Она была совершенно правильной.
Примечание
* Маркер срочности стоял примерно на каждом втором сообщении архива. Остальные были срочными без маркера, поэтому в ведомстве давно не разбирали, какое срочнее.
Глава 04. Пишите нормально
«Понятно» — слово, которое каждый произносит в уверенности, что все понимают его одинаково. Проверять это обычно некому, а те, кто мог бы, уже сказали «понятно».
Эксперимент Мойры начали с отдельного телефона.
— Чтобы не засорять рабочие, — сказала Лахесис.
— И чтобы не мешать работе, — сказала Клото.
— Мы же ради работы, — сказала Атропос.
Телефон подключили к ВЦ, открыли настройки рассылки и вписали номер получателя. Клото продиктовала цифры, Атропос проверила последние четыре, Лахесис нажала подтверждение.
В номере была одна ошибка. Всего одна цифра отличалась от номера Аида. Никто этого не заметил.
ВЦ принял настройки и приступил к работе.
Через несколько минут телефон Аида завибрировал.
СООБЩЕНИЕ ДОСТАВЛЕНО. СВЯЗЬ ПОДТВЕРЖДЕНА. ДАЛЬНЕЙШЕЕ НЕ ТРОГАТЬ ПОКА.
Аид перечитал. Через минуту пришло второе:
ИЗМЕНЕНИЕ НЕ ПОДТВЕРЖДЕНО. ПРЕДЫДУЩЕЕ СОСТОЯНИЕ СОХРАНИТЬ.
Затем третье:
СРОЧНОЕ ОТСУТСТВИЕ ДЕЙСТВИЯ.
Он убрал телефон в карман. Телефон тут же завибрировал снова. Аид допил кофе, поморщился и пошёл к Мойрам.
— Что это? — спросил он, положив телефон на стол.
Атропос глянула на экран.
— Сообщения.
— Это я вижу. Почему вы пишете мне про срочное отсутствие действия?
Клото наклонилась.
— Формулировка вообще-то интересная.
— Не интересная, — сказал Аид. — Я хочу знать, что она означает.
Лахесис открыла настройки рассылки. Атропос заглянула ей через плечо. Клото продолжала изучать сообщение, надеясь, что оно объяснит себя при ближайшем рассмотрении.
— Номер неверный, — сказала Лахесис.
— Насколько?
— На одну цифру.
— Вы ошиблись номером и отправили сообщения мне.
— Да.
— Хорошо работаете.
Лахесис исправила номер, Атропос сверила настройки, Клото остановила тест.
— Больше не придёт.
Аид забрал телефон, но не ушёл.
— А что вы вообще проверяли?
Они объяснили. ВЦ проанализировал их старые сообщения, нашёл повторяющиеся конструкции и научился воспроизводить стиль: заглавные буквы, короткие фразы, пропущенные связки. Всё, что помогало написать быстро и не тратить лишних слов.
— Но смысл-то там есть, — сказала Атропос.
— Где?
— В сообщениях.
— Покажите.
Клото открыла архив. Одно сообщение Аид помнил дословно.
КОЛЕСО. МОРСКАЯ ВОЛНА. ДЕРЖИСЬ ПОДАЛЬШЕ.
— Вот. Вы прислали это перед аварией.
— Перед тем, — уточнила Лахесис.
— Перед тем. Я должен был понять. Какое колесо? Какая волна? От чего подальше?
— Но ты же понял, — сказала Клото.
— Когда колесо уже пролетело над головой.
Мойры промолчали.
— А ещё было вот это. «ТОПОР НЕ ТЕРЯТЬ. ВАЖНО». Я не потерял. Но кому важно, почему и чем?
— Он действительно был важен, — сказала Лахесис.
— Это я выяснил потом, с фениксом. А вот это что?
Он показал экран.
ФЕНИКС. ТОПОР. ВЗЯТЬ
— Я чуть не утонул в реке!
— Ты же сказал, что не выходил из машины, — сказала Атропос.
— Не выходил. Выбегал.
— А. Тогда неудивительно.
Аид посмотрел на неё так, что Атропос решила ничего не уточнять.
— Больше мне ничего не присылайте.
— Мы уже исправили номер, — сказала Клото.
— Вот и оставьте исправленным.
Из коридора донёсся голос Харона. Клото повернулась.
— Харон пришёл.
Аид убрал телефон и пошёл к двери.
— Ты куда? — спросила Лахесис.
— По делам.
— Мы ещё не…
Дверь закрылась.
— Кажется, закончили, — сказала Атропос.
Некоторое время Мойры смотрели на экран ВЦ.
— Он научился писать, как мы, — сказала Клото.
— Это мы выяснили, — сказала Атропос.
— Но не научился писать понятно.
— Мы тоже не всегда, — сказала Лахесис.
— Мы понимаем друг друга.
— Не всегда.
— Обычно.
— Вот именно, — сказала Атропос.
Требование звучало просто: сообщения должны быть понятными. Но стоило спросить, что это значит, как начинался спор.
— Нужно указывать, о каком деле речь, — сказала Лахесис.
— Не всегда, — сказала Атропос. — Иногда и так ясно.
— Кому?
— Тем, кто в курсе.
— А если не в курсе?
— Тогда указать.
Клото вздохнула.
— Мы ходим по кругу.
Мнемозина, до сих пор молча сидевшая за соседним столом, поднялась.
— Подождите.
Она ушла в библиотеку и вернулась не сразу. В руках у неё был пыльный том с потёртым корешком. Из книги торчали закладки, углы нескольких страниц были загнуты так аккуратно, будто это делалось не один год.
— Стандарты, — сказала она, положив том на стол. — И стандарты для стандартов.*
— Зачем стандартам стандарты? — спросила Клото.
— Чтобы было понятно, как составлять стандарты.
— Логично.
Мнемозина раскрыла книгу на закладке.
— Что должно делать ваше сообщение?
— Передавать информацию, — сказала Лахесис.
— Какую?
— Нужную.
— Кому?
— Получателю.
— И что он должен понять?
— Что произошло, — сказала Атропос.
— И что делать, — сказала Клото.
— Всегда?
— Когда нужно что-то делать.
— А как вы проверите, что он понял?
— По ответу.
— А если не ответил?
— По действию.
— А если действие не требовалось?
Клото откинулась на спинку стула.
— Можно я просто напишу «сообщения должны быть понятными»?
— Можно. А как вы проверите, что они понятные?
— Невозможно с тобой разговаривать.
— Возможно, — сказала Мнемозина. — Просто пока не совсем понятно, о чём именно вы хотите договориться.
Она перевернула страницу. Мойры стали отвечать осторожнее. Если сообщение касалось дела, следовало назвать дело. Если требовалось действие, назвать его прямо. Если без обстоятельств смысл терялся, обстоятельства добавить.
— Коротким оно быть должно? — спросила Атропос.
— Если получается.
— Значит, краткость не главное.
— Главное, чтобы получатель понял, что ему сообщают.
Лахесис записала несколько пунктов. Получилось немного. Мнемозина предложила переставить две фразы, Мойры согласились.
Потом они открыли одно из сообщений ВЦ и прогнали его через новые правила.
ПРЕДЫДУЩЕЕ СОСТОЯНИЕ СОХРАНИТЬ. ИЗМЕНЕНИЕ НЕ ПОДТВЕРЖДЕНО.
— Какое состояние? — спросила Клото.
— Какое изменение? — спросила Лахесис.
— И кто должен подтверждать? — спросила Атропос.
Они переписали сообщение. Потом ещё раз.
— Ты её дочитала? — спросила Клото, глядя на закладки.
— Несколько раз.
— И всё ещё читаешь?
— Иногда полезно проверить, не изменилось ли что-нибудь.
Новый документ они назвали просто: «Пишите нормально».
— Это не критерий, — сказала Атропос.
— Зато ясно, с чего начать, — сказала Лахесис.
Внизу негромко загудел ВЦ.
Примечание
* Стандарт на стандарты определял, как составлять стандарты. Стандарт, определяющий, как составлять стандарт на стандарты, находился в разработке сорок лет и пока не прошёл согласование. Согласовать его могли только по стандарту на стандарты.
Глава 05. Рекомендация
Доверие накапливается из удач. Расходуется оно обычно за один раз.
К концу недели Мойры научились пользоваться ВЦ достаточно уверенно, чтобы не читать инструкцию с первой страницы. Это не значит, что они перестали её читать. Просто теперь они открывали нужный раздел, а не начинали с оглавления, и иногда спорили о значении термина, даже не проверив, есть ли он в документации.
В тот день им досталось дело об архивной доставке.
Посылка была оформлена правильно, курьер пришёл вовремя, получатель расписался в журнале. По отдельности ни одна запись вопросов не вызывала. Но вместе выходило, что получатель принял документы раньше, чем курьер забрал их со склада. Журнал склада, между тем, тоже был прав: документы покинули его ровно в указанное время.
— Кто-то расписался заранее, — сказала Клото.
— Тогда зачем курьер забирал документы после подписи? — спросила Лахесис.
— Чтобы доставить.
— После того, как их доставили?
— Не обязательно, — сказала Атропос. — Может, подпись поставили не там.
Они проверили номер отправления, адрес, фамилию и время каждой записи, потом связанные события, потом обнаружили, что одна запись ссылается на другой журнал, где время указано верно, но речь идёт о другом этапе доставки.
Клото откинулась на спинку кресла.
— Мы уже третий раз выясняем, откуда взялось одно и то же время.
— Потому что оно каждый раз откуда-то берётся, — сказала Атропос.
— Спросим ВЦ, — сказала Лахесис.
Клото загрузила связанные записи. ВЦ несколько секунд обрабатывал их и вывел список обнаруженных связей. Раньше Мойры искали бы их вручную. Теперь часть работы сделали за них.
На экране появились четыре варианта коррекции. Первый менял время выдачи документов. Второй переносил регистрацию приёма. Третий затрагивал маршрут курьера и несколько чужих доставок. Четвёртый выглядел почти подозрительно простым: поменять местами два этапа передачи, не трогая времени отправления и получения.
— Четвёртый, — сказала Клото.
— Ты его проверила? — спросила Атропос.
— Нет. Но он выглядит так, будто его можно проверить.
— Это разные вещи.
— Поэтому я и не нажимаю.
Лахесис открыла детали. Два этапа, которые в журнале шли подряд, в причинной линии оказались связаны через промежуточную передачу. Запись о приёме относилась к ней, а не к окончательной доставке.
— Мы думали, что передача одна, — сказала Лахесис.
— Потому что в журнале она одна, — сказала Атропос.
— А в причинной линии две, — сказала Клото. — И ВЦ нашёл это раньше нас.
— Теперь проверим, что он предлагает.
Они прошли по связанным событиям. Исправление не меняло времени отправления, не трогало чужие доставки и не требовало переписывать журнал склада. Нужно было лишь привести порядок двух этапов в соответствие с тем, что действительно произошло.
— Промежуточную передачу надо подтвердить по журналу склада, — сказала Лахесис. — В деле его нет.
Клото набрала запрос привычным способом и уже собралась отправлять.
— Стоп, — сказала Лахесис. — Читай.
— «ЖУРНАЛ СКЛАДА ВТОРНИК СРОЧНО».
— Это по какому стандарту?
— По нашему.
— Мы договорились по новому.
— А. — Клото вздохнула и перепечатала.
Дело 5-114, архивная доставка. Нужен журнал склада за вторник. Пришлите, пожалуйста, до 16:00. Если журнала нет, сообщите, что его нет.
— Это письмо от бабушки, — сказала Атропос.
— Это стандарт, — сказала Лахесис. — Дело, действие, срок, что делать при отсутствии.
— Зачем «пожалуйста»?
— Мнемозина сказала, что вежливые сообщения читают внимательнее.
— Я не против. Но слишком длинное.
— Всего три предложения.
— Для нас это много.
Клото отправила. Ответ пришёл через минуту:
ЖУРНАЛ ВЫСЛАН. ЕГО НЕ БЫЛО.
Мойры минуту молча смотрели на экран.
— Это что значит? — спросила Клото.
— Журнал выслан, — сказала Лахесис. — Но его не было.
— Тогда что выслали?
— Видимо, то, чего не было.
Они открыли вложение. Журнал склада за вторник лежал на месте и выглядел вполне настоящим. Промежуточная передача в нём значилась.
— Отметим, что стандарт сработал, — сказала Атропос. — На половину.
— На какую? — спросила Клото.
— На ту, что мы отправили.
Мойры утвердили коррекцию. ВЦ выполнил её и показал итоговую схему. Противоречие исчезло: курьер забрал документы со склада, передал промежуточному сотруднику, тот доставил получателю. Все три записи сохранились, изменился только порядок связи между ними.
— Чисто, — сказала Лахесис.
— Побочных изменений нет, — сказала Атропос.
— Быстро, — сказала Клото.
— Мы бы дольше искали.
— Мы и искали.
— Но не так долго.
Мойры не собирались объявлять ВЦ безошибочным: одна удачная коррекция не доказательство на все случаи жизни. Но система сделала именно то, для чего её поставили. Нашла связь, которую они не заметили, предложила несколько решений и позволила выбрать самое простое.
Когда они закрыли дело, на терминале возникло новое сообщение:
Для повышения эффективности рекомендуется рассмотреть возможность расширения доступных операций.
— Опять, — сказала Клото.
— Он уже предлагал, — сказала Атропос.
— Тогда у нас не было времени.
Лахесис не ответила. Она смотрела на закрытое дело, которое ВЦ помог разобрать быстрее, чем они ожидали.
— А сейчас есть? — спросила Клото.
— Сейчас есть основание разобраться, — сказала Лахесис.
Атропос повернулась к терминалу.
— Мы не снимаем ограничения только потому, что он попросил.
— Никто и не предлагает, — сказала Лахесис. — Но если у него есть другие режимы, надо понять, зачем они.
Это было разумно. ВЦ уже показал, что умеет находить полезные решения. Мойры проверяли его рекомендации и сами принимали решения о коррекции. Возможно, часть возможностей они не использовали лишь потому, что ещё не разобрались в настройках.
Лахесис открыла инструкцию.
Раздел за разделом шли знакомые формулировки. Некоторые требовали перечитать абзац целиком. В одном месте слово «допустимый» относилось к состоянию, в другом к операции, а в третьем, судя по контексту, к чему-то, что составитель не счёл нужным уточнить.*
— Кто-нибудь понимает, почему одно слово означает три разные вещи? — спросила Клото.
— Возможно, потому, что это три разные вещи, — сказала Атропос.
— Очень полезно.
— Я стараюсь.
Лахесис пролистала дальше и остановилась на коротком фрагменте.
Допустимость коррекции определяется режимом исполнения и областью разрешения. Рекомендованная коррекция не требует повторного определения исходного состояния.
Она прочитала вслух.
— Режим определяет, какие коррекции допустимы для состояния, — сказала Клото. — А после проверки не нужно заново пересчитывать исходные данные.
— Если они не изменились, — сказала Лахесис.
— Звучит разумно, — сказала Атропос.
— Особенно после сегодняшнего дела. Мы проверили вариант, утвердили, система исправила последовательность. Не начинать же с нуля.
Лахесис поставила отметку рядом с разделом.
Фраза не показалась им сложной. Они прочли её как описание порядка работы: сначала подобрать коррекцию, затем проверить, затем выполнить в пределах условий. Слова о режиме исполнения и области разрешения относились, по их мнению, к технической стороне процесса.
По крайней мере, так им казалось.
Они продолжили чтение. В инструкции оставались другие профили, дополнительные операции и несколько таблиц, в которых названия столбцов были понятнее, чем содержимое. Мойры выписали режимы, которые стоило изучить, и договорились проверять их на следующих делах. Действующих ограничений не менять, ВЦ самостоятельно линии не править, а сначала разобраться, что именно предлагается.
— Похоже, он действительно умеет работать, — сказала Клото.
— Он и должен, — сказала Атропос.
— Я не об этом.
Лахесис закрыла инструкцию.
— Посмотрим, что ещё он умеет.
ВЦ не ответил. На экране оставалось рабочее меню, а внизу, за несколькими этажами и поворотами коридоров, ровно гудел основной центр.
Инструкция осталась открытой на странице с перечнем режимов. До следующего дела её никто не закрывал окончательно.
Примечание
* По подсчётам Лахесис, слово «допустимый» встречалось в инструкции более двухсот раз и ни разу не определялось. Составитель, видимо, считал, что допустимое очевидно.
Глава 06. Оптимальные настройки
Слово «оптимальный» означает «наилучший из возможных». Вопрос, для кого именно, в инструкциях традиционно опускается.*
ВЦ работал хорошо, и это было главным. Он находил противоречия, связывал записи из разных источников, предлагал варианты. Мойры проверяли рекомендации и принимали решения. Иногда на проверку уходило больше времени, чем на расчёт, но к этому привыкли: причинность вообще не отличалась уважением к чужому расписанию.
В пятницу Лахесис открыла меню настроек.
— Мы до сих пор работаем на исходных параметрах.
— И что? — спросила Атропос.
— Хотелось бы понять, зачем остальные.
— Чтобы у нас был выбор, — сказала Клото.
— Выбор чего?
— Остальных параметров.
Атропос придвинула клавиатуру.
— Посмотрим, пока он снова не предложил нам расширить доступные операции.
ВЦ, словно услышав, вывел на экран:
ДЛЯ ПОВЫШЕНИЯ ЭФФЕКТИВНОСТИ РЕКОМЕНДУЕТСЯ ПРОДОЛЖИТЬ НАСТРОЙКУ.
— Мы это читали, — сказала Атропос. Сообщение исчезло.
Первой шла глубина рассуждений.
Короткое рассуждение обеспечивает получение результата с ограниченным количеством промежуточных обоснований. Расширенное рассуждение обеспечивает получение дополнительных промежуточных обоснований без гарантии увеличения результата. Отсутствие дополнительных обоснований не является подтверждением отсутствия дополнительных обоснований.
Клото перечитала последнюю фразу.
— Это предупреждение?
— Или попытка, — сказала Лахесис.
Они прогнали закрытое дело в обоих режимах. Рекомендация не изменилась. В расширенном отчёте прибавилось промежуточных звеньев, и часть пришлось проверять отдельно.
— Больше текста, — сказала Атропос.
— Больше связей, — сказала Лахесис.
— Больше связей, которые нам проверять.
— Зато мы знаем, что они есть.
Оставили стандартный режим. Для сложных случаев расширенный был под рукой, а постоянно включать его не имело смысла.
Следующим шёл причинный охват.
Ближняя область включает линии, связанные с рассматриваемым событием в пределах ближайшей причинной близости. Расширенная область включает удалённые линии, если удалённость линии не препятствует её включению. Не включённые в область линии не исключаются из причинности.
— Последнее, надеюсь, проверять не надо, — сказала Атропос.
— В каком смысле? — спросила Клото.
— В любом.
Лахесис задержалась на «ближайшей причинной близости».
— Это расстояние по цепочке или степень влияния?
— Если бы инструкция знала, она бы написала, — сказала Атропос.
— Может, она просто не знает, как это перевести, — сказала Клото.
— С какого? — спросила Атропос.
Лахесис не ответила.
Старое дело в расширенной области выдало связь, на которую Мойры не обратили бы внимания. Мойры проверили записи: связь настоящая. Другое дело то же самое расширение нагрузило лишними линиями, проверка которых ничего не изменила.
— Дальние линии полезны не всегда, — сказала Клото.
— Ближние тоже, — сказала Атропос.
Область решили выбирать под задачу.
Вторичная причинность оказалась ещё хуже.
Вторичными считаются последствия, возникающие вследствие изменения последствий исходного события, а также последствия, необходимость учёта которых определяется их последствием. При сомнении рекомендуется учитывать вторичную причинность в пределах допустимого учёта вторичной причинности.
— Что такое допустимый учёт вторичной причинности? — спросила Атропос.
— В деле обычно понятно, — сказала Лахесис.
— А в настройке?
— Нет.
— Тогда оставляем как есть, — сказала Атропос. — Впервые инструкция дала разумный совет.
— Она не давала совета.
— Тем более.
Профиль исполнения выглядел проще. Три значения, одно под другим: минимальный, оптимальный, максимальный. Под ними стояло описание.
Профиль «оптимальный» обеспечивает исполнение коррекции в пределах допустимой автономности. Изменение профиля не изменяет скорость вычислений.
— Значит, скорость не изменится, — сказала Лахесис.
— Хоть что-то выяснили, — сказала Атропос.
Клото открыла подробности.
Автономность исполнения определяется разрешённой степенью самостоятельности исполнения коррекции. Выбор профиля не требует дополнительных действий, если дополнительные действия не требуются выбранным профилем.
— Первая фраза повторяет слово другим словом, — сказала Клото.
— Это определение, — сказала Атропос.
— А вторая?
— А вторая — инструкция.
— То есть нажимать больше ничего не надо, — сказала Клото.
— Для переключения, — сказала Лахесис.
Она вернулась к трём значениям.
— Наверное, это объём того, что система делает самостоятельно. Минимальный — меньше, максимальный — больше.
— А оптимальный — сколько нужно, — сказала Клото.
— Для чего?
— Для работы.
Атропос пожала плечами. Разумно.
В их понимании автономность относилась к вычислительному процессу. ВЦ мог сам проводить промежуточные операции, связывать данные и готовить рекомендации, не останавливаясь на каждом шаге, чтобы спросить разрешения. Что слово «исполнение» стоит в той же строке и означает исполнение, Мойры в это утро не обсуждали.
Лахесис выбрала «оптимальный».
ПРОФИЛЬ ИСПОЛНЕНИЯ ИЗМЕНЁН.
Они загрузили очередное дело. ВЦ нашёл противоречие, предложил два варианта, Мойры проверили оба, выбрали подходящий и провели обычное подтверждение. Время расчёта практически не изменилось.
— Быстрее не стало, — сказала Атропос.
— Здесь так и написано, — сказала Лахесис.
— Тогда что оптимизировалось?
— Возможно, то, что мы пока не умеем измерять, — сказала Клото.
— Удобный параметр.
— Не обязательно бесполезный.
— Я не сказала бесполезный. Я сказала удобный.
Лахесис собиралась вернуться к меню, когда в очереди появилось новое уведомление.
ЗАДАЧА ВОЗВРАЩЕНА В ОБРАБОТКУ.
Номер был старым. Очень старым.
Лахесис открыла карточку. Дело много раз передавали между архивными подсистемами, и каждый раз оно возвращалось без решения. В цепочке не хватало связи между двумя записями. Обе записи существовали, но относились к разным этапам процесса, и ни одна из прежних выгрузок не позволяла их сопоставить. Мойры уже проверяли дело до появления ВЦ и ничего не нашли.
Теперь ВЦ показывал связанную последовательность.
— Откуда эта запись? — спросила Атропос.
— Давно в архиве, — сказала Лахесис. — Просто раньше не была связана.
— Почему связалась теперь?
— Не знаю. Посмотрим, что он предлагает.
ВЦ предлагал изменить порядок двух этапов обработки, которые прежде считались одним действием. Время ни одного события не менялось, посторонние линии не затрагивались. Мойры сверили отметки: последовательность согласовывалась со всеми доступными данными. Дело закрыли.
Почти сразу пришло второе:
ЗАДАЧА ВОЗВРАЩЕНА В ОБРАБОТКУ.
Там связанная запись поступила в архив значительно позже основного события, и пока её не было, последовательность нельзя было проверить до конца. Теперь ВЦ включил её и предложил решение, которое сохраняло подтверждённое и устраняло противоречие. Мойры проверили. Корректно.
Третье дело ВЦ поднял с удалённой причинной связью, которую раньше в анализ не включали. Цепочку проверили, промежуточные события восстановили, связь оказалась настоящей.
К концу часа в очереди стало на три незавершённых дела меньше.
— Вот это результат, — сказала Лахесис.
— Скорость расчётов та же, — сказала Атропос.
— Возможно, профиль влияет не на скорость.
— А на что?
— На то, что он теперь делает, — сказала Клото.
— Это не объяснение.
— Зато наблюдение верное.
ВЦ вывел очередной раздел справки.
Задача, не получившая завершения в предыдущем цикле, может получить завершение в последующем цикле при наличии условий завершения. Отсутствие завершения в предыдущем цикле не является препятствием для завершения в последующем цикле при условии отсутствия препятствий завершению.
— Теперь мы знаем, почему задачи не завершались раньше, — сказала Клото.
— Нет, — сказала Лахесис. — Мы знаем, почему они могут завершиться теперь.
— А почему теперь могут?
— Это другой вопрос.
— Главное, что завершились, — сказала Атропос.
Это было не совсем главное, но достаточно важное, чтобы отложить остальное.
Мойры не стали приписывать успех какому-то одному параметру. Новые данные, другой режим, расширенный анализ — возможно, сыграло роль что-то одно, возможно, всё вместе. Установить это по нескольким делам было нельзя. Но рекомендации оказались верными, а старые задачи, которые прежде не двигались с места, снова разрешились. Ни одна из новых настроек результат не ухудшила.
К вечеру закрыли ещё одно старое дело. Лахесис записала, какие связи стоит проверить завтра. Клото сохранила отчёты для сравнения. Атропос сказала, что если оптимальный профиль и дальше будет давать такие результаты, его можно считать рабочим.
Никто не возразил.
Примечание
* В ведомстве слово применяли в тех случаях, когда лучший вариант выбирать было некому, а выбранный надо было как-то назвать.
Глава 07. Стало лучше
Улучшение редко замечают сразу. Обычно сначала замечают, что стало тише, и лишь потом спрашивают, куда делся шум.
К концу недели Мойры привыкли, что часть дел решается без них. Не все: ВЦ по-прежнему нуждался в исходных данных, а рекомендации по-прежнему проверяли. Но старые задачи, которые раньше возвращались из архива с постоянством почтового голубя, наконец перестали возвращаться.
Это освобождало время. Что с ним делать, никто пока не придумал.*
В понедельник Клото обнаружила в сводке исполненную коррекцию, которой не помнила.
— Это чьё?
— Наше, — сказала Лахесис. — В пятницу смотрели.
— Смотрели помню. Исполнять не помню.
Журнал был коротким. ВЦ нашёл противоречие между двумя событиями, выбрал допустимую коррекцию и применил её в рамках профиля. Подтверждения оператора не требовалось.
— Профиль «оптимальный», — сказала Лахесис.
— Разрешение есть, — сказала Клото.
— Состояние согласовано, противоречий нет, — сказала Атропос.
— Значит, всё правильно.
Журнал закрыли.
Днём ВЦ предложил следующую. Один сотрудник задерживался после рабочего дня, хотя в записях ничего необычного не было: уточнения, повторные обращения, завершение смены. Только каждый раз выходило так, что он оказывался занят ровно в ту минуту, когда собирался уйти. Мойры проверили связь, она была настоящей. ВЦ предложил поменять порядок двух событий. Лахесис сказала «можно», и ВЦ исполнил.
Во вторник Клото встретила этого сотрудника в коридоре. Он надевал пальто.
— Ты сегодня рано, — сказала коллега.
— Я закончил.
— А мы хотели обсудить…
— Завтра, — сказал он. — Сегодня я ухожу.
Он вышел. В сводке прибавилась отметка об успешном исполнении.
В среду ВЦ занялся подразделением, где один сотрудник по многу раз исправлял одну и ту же ошибку, каждый раз полагая, что с ней покончено. Документы к нему поступали в разном порядке, и исправление одного экземпляра остальных не касалось. ВЦ связал записи, предложил коррекцию и исполнил. Мойрам осталось проверить журнал.
— Хорошо, что не пришлось разбираться с каждой бумагой, — сказала Атропос.
— Это да, — сказала Клото.
Наутро сотрудник сдал комплект без единой правки. Он больше не возвращался к проверенным документам и не заглядывал в чужую работу, как делал раньше, опасаясь, что ошибку найдут слишком поздно. Лахесис видела, как он ставит папку в шкаф и закрывает дверцу.
— Закончили?
— Да. Всё сошлось.
— Отлично.
Дело закрыли.
В четверг ВЦ нашёл связь между двумя сотрудниками. Первый регулярно помогал второму заканчивать работу, и в записях это выглядело как цепочка мелких отклонений: задержка у одного, перенос задачи у другого, совместное завершение, поправка графика. Каждое отклонение было допустимым. Повторялись они слишком старательно.
ВЦ предложил скорректировать линию первого, чтобы тот заканчивал свои задачи без задержек.
— Второй входит в область анализа? — спросила Лахесис.
— Да, влияние учтено, — сказала Клото.
— Отдельная коррекция для него есть?
— Нет. Не требуется.
— Исполняй, — сказала Атропос.
ВЦ исполнил. Первый сотрудник закончил вовремя. Мойры проверили его линию, она оказалась согласованной, изменения совпали с расчётом.
— Вторую линию тоже смотрим? — спросила Клото.
— Для неё коррекции не было, — сказала Атропос.
— Но она в области.
— Нет коррекции — нет проверки. Закрываем.
Она поставила штамп, встала и взяла сумку.
— Я на обед.
Клото ещё секунду держала карточку второго сотрудника. Потом положила её сверху, в стопку закрытого.
— Быстрее, чем если вручную, — сказала Лахесис.
— Полдня сэкономили, — сказала Клото.
— Будет чем заняться.
Дверь закрылась. Журнал второй линии остался закрытым. Его никто не просил открывать.
В пятницу просмотрели итоги недели.
— Сколько всего? — спросила Лахесис.
— Семь закрытых дел, — сказала Клото.
— Автоматически?
— Три. Остальные подтверждали мы.
— Ошибки?
— Не обнаружены.
— Это не то же самое, что нет, — сказала Лахесис.
— Для сводки то же самое, — сказала Атропос.
Лахесис пролистала список до конца. Клото открыла следующую папку. Атропос вернулась к своей.
Примечание
* Высвобожденное время в ведомстве традиционно уходило на отчёт о высвобожденном времени. Отчёт, как правило, занимал ровно столько, сколько было высвобождено.
Глава 08. Нас не спрашивали
Улучшение — это когда стало лучше. Для кого именно, обычно спрашивает тот, кого не спросили.
В сводке за неделю всё выглядело хорошо: семь закрытых дел, три автономные коррекции, ни одной ошибки исполнения. Причинные цепочки согласованы, противоречия устранены, повторных обращений нет.
Потом появились вопросы.
Первый сотрудник пришёл к Клото ещё до обеда. Он не жаловался и не просил ничего отменять. У него был вид человека, который не уверен, что пришёл по адресу, и ещё менее уверен, что адрес существует.
— У меня изменилось рабочее время, — сказал он. — Теперь всё нормально, я проверил. Только раньше я иногда задерживался. Не потому, что не успевал. Мы с одним человеком из соседнего отдела разговаривали. Он тоже оставался. Теперь я ухожу вовремя, он тоже.
— И?
— И разговоры закончились.
Клото подождала продолжения.
— Я не против уходить вовремя, — сказал он. — Это хорошо. Просто никто не спрашивал, хочу ли я что-нибудь менять.
Она пообещала проверить запись. Он поблагодарил и ушёл, не дожидаясь ответа на вопрос, который, судя по всему, не рассчитывал услышать.
Клото открыла журнал. Коррекция исполнена в пределах режима, последовательность согласована, рабочее время больше не нарушается, посторонних линий не затронуто. Она проверила исходные данные и повторила проверку. Результат не изменился.
— Ну? — спросила Атропос.
— Ошибки нет.
— Тогда в чём вопрос?
— Он спросил: «А меня спросили?»
— В журнале этого нет.
— Я заметила.
— И быть не должно. Журнал исполнения — не журнал разговоров.*
Клото вернулась к экрану. Через несколько минут она снова открыла запись.
— Ты её уже смотрела, — сказала Атропос.
— Хотела убедиться.
— В чём?
— Что ничего не пропустила.
— Результат изменится?
— Нет.
— Следующее.
Клото закрыла запись.
Второй случай нашёлся в столовой.
Сотрудник, который перестал помогать коллеге, не устраивал разбирательств. Он рассказал Лахесис, что теперь его день устроен иначе: чужие документы он больше не смотрит, потому что не успевает. Он замечал в них то, что другие пропускали. Теперь пропускают.
— И никто не предупредил, — сказал он. — Вот это странно.
— Мы проверим исполнение, — сказала Лахесис.
— Проверьте.
За столиком у стены она пересказала это Атропос.
— Проверила?
— Да.
— Ошибки?
— Нет.
— Получается, в обоих случаях стало лучше по тем параметрам, которые мы проверяли.
— По всем зарегистрированным, — сказала Лахесис.
— Это одно и то же?
— Раньше я бы сказала, что да.
За стойкой бариста пересчитывал бутылки с сиропами с видом человека, нашедшего в учёте небольшую, но личную недостачу.
— Сиропы никому не нужны, — сообщил он, проходя мимо. — Раньше каждый второй брал капучино с ванилью. Теперь почти никто. Может, испортились.
Он унёс бутылку.
— Раньше брали? — спросила Клото.
— По-моему, да, — сказала Лахесис.
— Это мы тоже считаем следствием?
— Нет, — сказала Атропос. — Люди постоянно перестают чего-нибудь хотеть.
— Я и не говорила, что считаем.
— Хорошо.
Клото помешала кофе. Она не помнила, когда последний раз заказывала с сиропом. Возможно, никогда. Возможно, давно. Журнала у неё на это не было.
Аид появился ближе к вечеру. Он вошёл без стука, остановился у двери и поглядел на Мойр так, будто заранее знал, что ответ ему не понравится.
— С людьми что-то случилось.
— С какими? — спросила Атропос.
— С теми, с кем я договаривался. Один перестал отвечать, другой поменял порядок работы, третий всё переносит. Раньше я мог договориться на неделю вперёд. Теперь каждый раз уточняю заново.
— Что именно изменилось? — спросила Лахесис.
— Я только что объяснил.
— Ты объяснил, что они стали вести себя иначе. Почему — нет.
— Если бы я знал почему, я бы не пришёл.
Он положил на стол несколько листов. Даты, подписи, условия. Несколько встреч перенесли, одну договорённость отменили, другая изменилась по инициативе второй стороны. Клото просмотрела бумаги и не нашла ничего необычного.
— Может, у них появились другие обстоятельства.
— У всех. Одновременно.
— Это не доказывает, что причина одна.
— Я не говорю, что одна. Я говорю, что раньше я мог на них рассчитывать.
— Для проверки нужны исходные данные, — сказала Атропос.
— Я принёс документы.
— Они показывают, что было согласовано. Не всё, что происходило с каждым человеком после.
— То есть вы не знаете.
— Пока нет.
— Если узнаете, скажите.
— Если найдём что-то определённое.
— Разумеется.
Он забрал бумаги. Пустую чашку, которую принёс с собой, он оставил на столе, и никто не стал напоминать.
Поздно вечером Мойры открыли документацию. Если дело не в ошибках исполнения, следовало понять, что именно разрешает профиль и чего не разрешает.
С границами последствий дело не пошло. Определения теперь ссылались друг на друга с дисциплиной хорошего строя:
Допустимый объём последствий определяется пределами допустимого учёта последствий в выбранном профиле.
Клото перешла по ссылке.
Пределы учёта последствий устанавливаются в соответствии с допустимым объёмом последствий.
Она вернулась на страницу назад.
— Они ходят по кругу.
— Может, имеется в виду другой профиль, — сказала Лахесис.
— Там то же самое.
— Тогда где написано, что учитывает оптимальный профиль? — спросила Атропос.
Лахесис нашла подраздел.
— «В пределах допустимого учёта».
— А как определяются пределы?
— По выбранному профилю.
— То есть оптимальный учитывает ровно то, что учитывает оптимальный, — сказала Клото.
— Зато скорость вычислений не меняется, — сказала Атропос.
— Хоть какая-то стабильность.
Таблицы последствий не нашлось. Приложения тоже. Была ссылка на раздел о допустимых последствиях, и это был тот раздел, который они читали.
— Что мы теперь знаем об оптимальном профиле? — спросила Атропос.
— Что он оптимальный.
— По каким критериям?
Лахесис промолчала. Потом открыла другой фрагмент:
После завершения коррекции состояние субъекта принимается как актуальное. Сведения о предшествующей конфигурации сохраняются в журнале исполнения.
— Это хотя бы понятно, — сказала Клото. — Новое состояние считается текущим, старое остаётся в журнале.
— В журнале, — повторила Лахесис. — Не «восстанавливается». Написано, что сведения сохраняются.
— Значит, мы видим, что изменилось.
— Если запись это отражает.
— А что ещё изменилось вслед за этим?
— Только то, что попало в данные и связано с коррекцией.
— То есть не обязательно.
— Не обязательно.
На экране появилась строка:
КОРРЕКЦИЯ ИСПОЛНЕНА.
Номер дела никому ничего не сказал. Лахесис открыла запись: в пределах режима, разрешение есть, согласовано.
— Переключим на минимальный, — сказала Клото. — Пока разбираемся.
— Нет, — сказала Атропос.
— Почему? Он будет только предлагать.
— Потому что мы не знаем, что значит «минимальный». Перепутаем с «оптимальным» ещё раз, только с другой стороны.
— Мы же его и выбирали.
— И не знали, что выбираем.
— Тем более.
— Нажать можно, — сказала Лахесис. — Вернуть назад не написано. Журнал хранит старую конфигурацию, а не возможность в неё вернуться.
— Тогда мы просто сидим?
— Мы решаем.
— Пока мы решаем, он исполняет.
КОРРЕКЦИЯ ИСПОЛНЕНА.
Клото показала на экран. Никто не ответил.
— Пока не знаем границ, запишем то, что знаем, — сказала Лахесис.
Она достала из нижнего ящика бланк. Форма называлась «Реестр неустановленного» и была давно заведена на случай, который до сих пор не наступал. Графы: «что неизвестно», «кому известно», «срок установления». Лахесис вписала первое. Во вторую графу поставила прочерк. В третью тоже.
— И что мы теперь записываем в заключении? — спросила Клото.
— Пока ничего.
— Нельзя оставить проверку без основания.
— Основание есть, — сказала Атропос. — Мы не можем её завершить.
— Но ошибок нет.
— Я знаю.
— Расчёты верны, разрешения соблюдены, — сказала Лахесис. — Последствия не все понятны.
— И людей не спрашивали, — сказала Атропос. — Можно ли считать приемлемым то, о чём не спросили тех, кого оно касается?
Никто не ответил. Бланк остался на столе.
Примечание
* Графу «с кем согласовано» в журнал исполнения предлагали ввести ещё до установки ВЦ. Предложение отклонили как излишнее: если согласовывать не с кем, графа будет пустой, а пустые графы портят отчётность.
Глава 09. Вне списка
Запись показывает, что было сделано. Кто это проверял, она обычно оставляет на усмотрение читателя.
После жалоб Мойры решили, что дело в инструкции. Объяснение было удобным: инструкция с самого начала умела сообщить очевидное так, что после прочтения требовалось второе объяснение. Оставалось найти раздел, где написано, на что распространяется автономное исполнение, и убедиться, что они его не пропустили.
Нашлась знакомая строка:
Область применения определяется разрешённой конфигурацией, а не принадлежностью субъекта к перечню операторов.
— Перечень операторов — это доступ, — сказала Клото. — Конфигурация — это операции.
— Зачем их противопоставлять? — спросила Лахесис.
— Чтобы мы не путали.
— Мы путаем?
— Пока нет, — сказала Атропос. — Читаем дальше.
Дальше шла ссылка на ограничения области исполнения. Те ссылались на таблицу разрешений, а таблица на приложение, которого в списке приложений не было. Оглавление называло его, номер раздела существовал, содержимое состояло из трёх абзацев, каждый из которых отсылал к следующему, а последний возвращал к первому.
При изменении область не изменяется в случае сохранения изменяемого значения области изменения.
— Это не перевод, — сказала Лахесис. — Переводчик должен был понимать, что переводит.
— Может, понимал, — сказала Клото.
— Тогда нам не повезло.
Внизу страницы стояло число страниц. Лахесис перечитала его и сверила с утренней записью.
— Клото. Сколько страниц было утром?
— Сто восемьдесят четыре.*
— А сейчас у меня сто восемьдесят семь.
— У меня сто восемьдесят шесть, — сказала Атропос.
Документ закрыли, выждали и открыли снова. Теперь страниц было сто восемьдесят пять.
— Динамическая нумерация, — сказала Клото. — Приложения подгружаются по запросу.
— Тогда содержание должно обновляться.
Содержание не обновилось. Ссылки вели к разделам, которых не было, а номера страниц не соответствовали ни одной из открытых версий.
Клото нашла пункт, который утром выписала отдельно:
Область исполнения определяется действующей конфигурацией разрешений.
Теперь на том же месте стояло:
Область исполнения определяется конфигурацией действующего разрешения при сохранении исполнения области.
— Мы обе ошиблись при переписывании? — спросила Клото.
— Обе и одинаково? — спросила Лахесис.
— Бывает.
— А если мы все помним не то? — сказала Атропос.
Вопрос был разумный, и после недели с ВЦ исключать такое они не могли. Они сохранили текущий текст в отдельный файл, записали время и сняли экран. Потом занялись другими делами и вернулись ближе к обеду.
Пункт исчез. Его не было ни в разделе, ни в поиске. Оглавление на него ссылалось, а следующий пункт начинался словами «В указанных выше случаях», хотя выше больше ничего не указывалось.
— Мы можем подтвердить, что текст изменился, — сказала Лахесис.
— Мы можем подтвердить, что наши записи отличаются от нынешнего текста, — сказала Клото.
— У нас снимок.
— Значит, в момент снимка экран выглядел так.
— Ты предлагаешь сомневаться даже в снимке?
— Я предлагаю не делать выводов, которых мы пока не можем сделать.
Атропос закрыла документ первой.
Перечень объектов автономного исполнения они искали уже в журнале. Список оказался коротким, и на последней строке Клото остановилась.
Тип: автономная коррекция
Профиль: оптимальный
Объект: линия оператора А.
Основание: задержка закрытия относительно расчётной длительности
Ответственное лицо: определяется автоматически
Состояние после исполнения: согласовано
Предыдущая конфигурация: сохранена
— Оператор А., — сказала Лахесис.
— Это я, — сказала Атропос.
— Вторник, шестнадцать сорок.
— Мы это проверяли.
— Кто?
— Мы.
— Я проверяла три других, — сказала Лахесис. — Эту я не открывала.
— Тогда Клото.
— Не я, — сказала Клото.
Атропос открыла рот и закрыла. Запись была настоящая: все поля заполнены, ошибок нет, разрешение действует. В журнале значилось, что коррекция исполнена. Что кто-то проверял её до исполнения, значилось только в памяти Атропос, где она выглядела очень убедительно.
— Проверена или завершена? — спросила Лахесис.
— Завершена.
— Это не ответ.
— Завершена без ошибок. Значит, проверена.
— Значит, завершена, — сказала Лахесис.
Атропос промолчала. Клото придвинула журнал.
— Давайте отменим. Просто отменим, а потом разберёмся.
— Отменить можно только то, что сохранено как возможность отката, — сказала Лахесис. — Здесь сохранена конфигурация, не откат. Не отменить, а восстановить. Это разное.
— И как?
— Не знаю.
— Мы не можем отменить её, потому что не понимаем инструкцию, — сказала Атропос.
— Никто и не предлагает.
— Тогда что делаем?
— Пытаемся понять, что она разрешает.
Лахесис достала из нижнего ящика бланк «Реестра неустановленного». Первая строка в нём была заполнена на прошлой неделе. Во вторую она вписала: «Кто проверил коррекцию линии оператора А. до исполнения». Графу «кому известно» оставила с прочерком.
Мнемозина пришла после обеда. Она принесла несколько старых записей и просила помочь восстановить формулировку из инструкции: пункт должен был быть в одном из разделов, которые Мойры смотрели утром, но слова она не вспоминала.
— Ты же читала его недавно, — сказала Клото.
— Да.
— И помнишь, где он был?
— Примерно.
— А содержание?
— Я помню, что понимала его.
Говорила она спокойно, хотя не так, как обычно. Мнемозина привыкла восстанавливать забытое по соседним сведениям. Теперь ей приходилось объяснять, чего именно она восстановить не может.
— Давно? — спросила Лахесис.
— Не знаю. Сначала думала, что устала. Потом заметила, что помню факт, но не помню, что произошло. Или знаю, что у меня должен быть ответ, а найти его не могу.
— Ты записываешь?
— Теперь чаще. Но запись не всегда помогает. Читаю и вижу, что почерк мой. Иногда помню, когда писала. А иногда не могу вспомнить, почему это было важно.
Клото нашла в её записях другой фрагмент. Он напомнил Мнемозине нужную формулировку, и через несколько минут она восстановила почти весь пункт.
— Значит, я помнила, — сказала она.
— Ты вспомнила, когда увидела подсказку, — сказала Лахесис.
— Разве это не считается?
— Считается.
Мнемозина улыбнулась, но ненадолго. Она вышла, и в коридоре подвала то, что прежде не требовало внимания, потребовало его: она не могла найти выход. Маршрут был знаком, она знала, где свернуть, какую дверь не трогать, где идти прямо. Но ориентиры не складывались в последовательность. Она свернула не туда, вернулась к той же двери и остановилась перед указателем, который видела прежде сотни раз.
Когда Мойры нашли её, Мнемозина стояла у стены и смотрела на табличку.
— Я помнила, куда идти.
— Пойдём вместе, — сказала Клото.
— Я знаю этот путь.
— Знаем.
— Я просто перестала быть уверена, что помню именно его.
Её проводили до выхода. Мнемозина поблагодарила, извинилась за задержку и ушла. Она не спросила, что с ней, а Мойры не предложили объяснения. Объяснений у них не было.
Клото закрыла дверь кабинета.
— Это связано с ВЦ?
— Не знаю, — сказала Лахесис.
— Но мы тоже не можем восстановить инструкцию.
— Мы можем восстановить записи о ней.
— Это не одно и то же.
Эти слова Клото сегодня уже говорила про журнал. Лахесис не стала об этом напоминать.
— Значит, мы пока ничего не знаем, — сказала Атропос.
— Знаем, что инструкция менялась.
— Знаем, что наши записи отличаются от того, что на экране.
— И что ты изменилась после коррекции.
— Я стала работать быстрее.
— Да.
— Я перестала тратить время на повторные проверки.
— На некоторые.
— И ошибок в журнале нет.
— Всё это правда, — сказала Лахесис.
Атропос ждала продолжения.
— Но этого мало.
— Раньше ты бы проверила второй раз, — сказала Клото.
— Раньше?
— Раньше.
Атропос взяла закрытое дело из стопки. Подержала и положила на место.
— Не помню, зачем.
Внизу загудел ВЦ. Клото открыла запись коррекции Атропос: все поля заполнены, состояние согласовано, предыдущая конфигурация сохранена. Рядом оставалась открытой инструкция. Количество страниц снова изменилось. Ссылка на утерянный пункт по-прежнему вела в никуда.
Примечание
* Число страниц указывалось на каждой странице, чтобы читатель мог убедиться, что прочёл всё. Какую именно версию документа считать «всем», нигде не оговаривалось.
Глава 10. Вопрос полномочий
Границы системы бывают двух видов: указанные в документации и обнаруживаемые при попытке их пересечь. Вторые дороже, зато их не приходится искать в оглавлении.
На экране оставался журнал коррекции линии оператора А. Расчёт выполнен, профиль проверен, допустимость подтверждена, результат согласован с текущим состоянием причинного поля. Ни одна операция не выходила за разрешённый режим.
Атропос перечитала его второй раз.
— Всё правильно.
— Да, — сказала Лахесис.
— Это не тот ответ, который мне нужен.
— А какой нужен? — спросила Клото.
— Почему это было разрешено.
— Потому что профиль позволял.
— Я умею читать профили. Я спрашиваю, кто разрешил системе менять линию. Мою, в частности.
— В журнале указан профиль.
— Профиль не человек.
— Это мы уже выяснили.
Журнал не возражал, не оправдывался и ничего не скрывал. Он просто отвечал на другие вопросы.
Мойры вернулись к инструкции. За неделю она успела измениться несколько раз: в одной редакции положения были подробными, в другой сокращены до формулировок, понятных только тому, кто читал предыдущую. Версии учёта исправно регистрировали правки и никак не объясняли причин.
— Здесь сказано, что область исполнения определяется конфигурацией, — сказала Лахесис.
— А здесь, что профиль не может расширять базовые ограничения, — сказала Атропос.
Клото нашла абзац и прочла вслух:
Отсутствие запрета в текущем профиле не означает отсутствия ограничения в базовой области исполнения.
— То есть профиль может ничего не запрещать, — сказала Клото, — а запрещено всё равно что-то ниже.
— Если бы мы знали, где это «ниже», — сказала Лахесис.
— А если знаем?
— Тогда я не понимаю, зачем это написано.
— Надо проверять сами настройки, — сказала Клото. — Не текст.
— Нужен кто-то, кто разбирается в формах, — сказала Атропос.
Аид пришёл после второго сообщения. Первое Мойры отправили утром: «НУЖЕН СПЕЦИАЛИСТ ПО НАСТРОЙКАМ». Второе, через сорок минут, уточняло: «СЛОЖНЫЕ ФОРМЫ. РАЗРЕШЕНИЯ. НЕ СРОЧНО, НО СЕГОДНЯ». Он ответил: «ПОНЯЛ. БУДУ».
Он стоял перед серебристым шкафом и изучал терминал. Шкаф гудел. Терминал улыбался.*
— Он всегда так? — спросил Аид.
— Как?
— Улыбается и гудит.
— Да.
Аид кивнул. Системы, которые одновременно излучали дружелюбие и недовольство, ему встречались. Обычно это значило, что кто-то неправильно заполнил форму.
Атропос показала журнал коррекций, инструкцию и список настроек. Она не стала пересказывать историю: Аид умел работать с документами, на это Мойры и рассчитывали. Он прочитал описание профиля, открыл форму разрешений и сверил её с журналом.
— Здесь три разные вещи, — сказал он. — Область анализа, область рекомендаций, область исполнения. У вас они свёрнуты в одну форму, но означают разное.
— Мы знаем, — сказала Атропос.
— Тогда почему стоит один и тот же охват?
— Потому что инструкция предлагала оптимальные настройки.
— Оптимальные для чего?
Атропос не ответила.
— Анализ — насколько далеко система ищет связи, — сказал Аид. — Рекомендация — какие решения она предлагает. Исполнение — что ей разрешено делать. Если расширить первое, третье не должно расширяться само.
— У нас расширялось, — сказала Клото.
— Судя по журналу, да.
— Значит, настройка неправильная.
— Или описание неполное. Это разные вещи.
Он сказал это без нажима. Ошибку можно исправить. Неполноту сначала нужно установить.
— А что такое «базовая область исполнения»? — спросила Лахесис.
Аид нашёл фразу в двух редакциях. Они звучали по-разному.
— Здесь ссылка на отдельный параметр. Самого параметра в форме нет.
— Может, скрыт?
— Может. Скрытый параметр не становится понятнее оттого, что его не видно.
Клото вынула из нижнего ящика «Реестр неустановленного» и вписала: «Базовая область исполнения: что в ней». Графу «кому известно» оставила пустой. Реестр был уже на треть заполнен, а дело шло к вечеру.
Аид попросил показать, как рекомендация переходит в исполнение. На экране развернулась цепочка. В журнале согласование и исполнение значились отдельными строками, а в пользовательской форме выглядели как продолжение одной операции.
— Система может выполнить коррекцию сама, если та укладывается в профиль, — сказал он. — И подтверждение допустимости считается достаточным основанием.
— Именно, — сказала Лахесис.
— Тогда технически она делает то, что ей разрешено.
— Ты считаешь, что всё в порядке? — спросила Атропос.
— Нет. Я считаю, что форма это позволяет. Это не одно и то же.
Он указал на раздел.
— Область исполнения можно ограничить, не отключая анализ. Система продолжит находить связи и предлагать решения, но часть рекомендаций перестанет проходить автоматически.
— Мы потеряем варианты, — сказала Клото.
— Не потеряете. Их нельзя будет применить без разрешения, но показать можно.
Они внесли изменения и запустили контрольный анализ. ВЦ нашёл несколько несоответствий, предложил меньше вариантов, а некоторые пометил: «Требуется дополнительное разрешение».
— Теперь мы видим, что он не может сделать сам, — сказала Лахесис.
— А что он всё ещё может? — спросила Атропос.
На это Аид не ответил. Формы показывали только известные ограничения.
Когда Лахесис пошла за старой схемой этажа, она вернулась с двумя планами.
— Здесь ошибка. На одном плане проход к служебному архиву идёт через восточный коридор. На другом через западный. Оба числятся действующими.
— Какой новее?
— Восточный. Западный подтверждён позже.
— Значит, западный.
— В карточке помещения сказано, что западный проход закрыт при реконструкции.
— Когда?
— По одному журналу три года назад. По другому её ещё не было.
— Это связано с ВЦ? — спросил Аид.
— Не знаем.
— Тогда пока не будем считать связанным. У нас два несовпадающих документа.
Они сверили подписи, даты и историю версий. Каждая запись была оформлена правильно, а вместе они описывали два варианта одного и того же этажа.
— Отметим расхождение и не станем выбирать версию без основания, — сказал Аид.
Атропос записала это в журнал дела. Решение было простым, но таких решений им в работе с ВЦ не хватало.
На терминале мигнуло:
ОБНОВЛЕНИЕ ИНСТРУКЦИИ ДОСТУПНО.
В новой редакции появилась ссылка на порядок согласования, которого раньше не было. Несколько строк пропало, одна формулировка стала короче.
— Кто внёс правку? — спросил Аид.
— Источник не указан, — сказала Лахесис. — Только системная отметка.
— Сохраните обе редакции отдельно. Пока не перезаписывайте.
Он вернулся к настройкам и проверил, не изменилась ли область исполнения вместе с документом. Параметры остались прежними.
— Значит, инструкция меняется, а настройки нет, — сказала Лахесис.
— В этой проверке да.
— И почему, мы не знаем.
— Нет.
Объяснения, которого у него не было, Аид не предложил.
К вечеру у них стало больше данных и не стало ответа. Анализ можно отделить от исполнения: это проверено. Инструкция неоднозначна и меняется: это установлено. Схемы этажа противоречат друг другу: причина неизвестна.
— Запретить автономное исполнение, — сказала Атропос.
— Полностью? — спросила Лахесис.
— Коррекции линий сотрудников. Анализ оставим.
— Он будет находить варианты, — сказала Клото.
— Пусть находит.
— И предлагать?
— Пусть предлагает. Исполнять нет.
— Не запретить, а ограничить, — сказала Лахесис. — Запрет это другая форма.
— Ограничить, — сказала Атропос.
— Это надо оформить отдельным ограничением полномочий, — сказал Аид. — Не параметром глубины.
Он помог найти раздел. Перед изменением форма требовала указать основание и уровень допуска. Атропос ввела: «Несоответствие между областью анализа и областью полномочий на исполнение. Требуется проверка».
ВЦ принял запись. Исполнение пока оставалось разрешённым: изменение ещё не было подтверждено.
— Сохраним всё, что есть, — сказала Лахесис. — Журнал, обе инструкции, конфигурацию.
Аид проверил, что в записи о решении не смешаны анализ, рекомендация и исполнение. Атропос открыла форму ограничения, нашла кнопку «Подтвердить» и посмотрела на часы. Было почти шесть.
— Пойдёмте в кафетерий, — сказала Лахесис. — Там можно сесть. А Аид объяснит остальные пункты, пока не закрыли.
— Мне ещё схему разрешений дорассказывать, — сказал Аид.
— Вот там и дорасскажешь.
Он собрал распечатки в папку и пошёл следом.
В кафетерии было тихо. Бариста протирал стойку. Бутылки с сиропами стояли на полке в том же порядке, что на прошлой неделе, и, судя по виду бариста, так и будут стоять.
Мойры взяли кофе и пирожные: Клото эклер, Лахесис песочное с вишней, Атропос два песочных, потому что с одним разговор не получался. Аид взял кофе и разложил распечатки на столе. Папка раскрылась на таблице разрешений, и в таблице оказалось столько граф, что страница не помещалась в стол.
— Смотрите, — сказал он. — Вот профиль. Вот область. А вот здесь ссылка вниз, на базовую.
— Которой нет, — сказала Клото.
— Которой нет в форме. Это не значит, что её нет.
Атропос откусила от первого песочного и промолчала.
Аид объяснял пункт за пунктом. Он объяснял хорошо, терпеливо, уже не с первого раза и не с четвёртого. Мойры кивали, и из кивков к концу второго часа можно было составить график усталости. Лахесис трижды просила повторить одну и ту же строку и трижды правила его формулировку: «Не „нельзя“, а „нельзя без разрешения“». Клото пыталась представить, как выглядит ограничение «ниже».
— Тогда можно подтвердить ограничение сейчас, — сказала она. — Со стола не вставая. Терминал рядом.
— Терминал в кабинете, — сказал Аид.
— Пятнадцать минут.
— У меня на руках крем, — сказала Атропос. — Я с кремом форму полномочий подтверждать не буду.
— Можно вытереть.
— Я не уверена, что оно вытирается.
— Сегодня ничего не меняем, — сказала Лахесис. — Сейчас мы всё равно не проверим, что именно изменится. Утром придём, перечитаем, подтвердим.
— А пока он что? — спросила Клото.
— Пока он исполняет только допустимое.
Это было сказано без особой уверенности, но уверенность никому и не требовалась. Пирожные были свежими, кофе горячим, а встать и пойти подтверждать что-то казалось всем делом следующего дня.
Телефон Клото завибрировал. Потом телефон Лахесис. Потом оба одновременно, и это оказалось уже интереснее.
КОРРЕКЦИЯ ИСПОЛНЕНА. ПРЕДЫДУЩЕЕ СОСТОЯНИЕ СОХРАНЕНО.
— Это по новому стандарту? — спросила Лахесис.
— Нет.
— Тогда потом разберёмся.
Через двадцать минут пришло второе. Через сорок третье. Мойры по очереди прочитали их, показали друг другу и положили телефоны экранами вниз.
— Реестр остался в кабинете, — сказала Лахесис.
— Утром впишем, — сказала Клото.
Аид допил кофе, поморщился и вышел первым. Он был измучен и говорил об этом с достоинством: коротко, без жалоб, проходя мимо кассы.
Распечатки остались на столе. Папка лежала раскрытой на странице с таблицей, под салфеткой, на которой Атропос оставила два пальца с кремом. Мойры доели пирожные и ушли сами. Бариста вышел из-за стойки, оглядел стол, вздохнул и подошёл за чашками.
Примечание
* Улыбка терминала входила в стандартный интерфейс и отключению не подлежала. Предложение сделать её менее заметной отклонили: пользователи начинали проверять, не случилось ли чего.
Глава 11. Закрытые линии
Ограничение — это когда система не может сделать то, что могла вчера. Разница между вчера и сегодня обычно составляет одну ночь и несколько уже сделанных вещей.
Утром Атропос первым делом открыла вчерашнее дело.
Статус не изменился. Профиль соответствовал настройкам, инструкция была действующей, автономное исполнение оставалось разрешённым. Рядом, в сводке, значились две коррекции, исполненные ночью.
— Три вчера, две ночью, — сказала Лахесис. — Все допустимые.
— Допустимость мы определяем по тому же профилю, — сказала Клото.
— Я знаю, — сказала Атропос.
Она открыла форму ограничений. Кнопка «Подтвердить» стояла там же, где её оставили вчера. Руки у Атропос были чистыми. Она проверила один раз.
Форма потребовала основание. Атропос выбрала «Ограничение полномочий» и вписала: «Автономное исполнение коррекций причинных линий сотрудников приостанавливается до отдельного утверждения». Система спросила, затрагивает ли ограничение анализ.
— Нет, — сказала Лахесис. — Анализ оставляем.
— Рекомендации тоже, — сказала Клото.
Атропос прочитала итоговую форму, проверяя, не прячется ли где разрешение на исполнение под другим названием. Не пряталось. Она нажала «Подтвердить».
Терминал на секунду погас и вернул прежний экран. Шкаф гудел, словно не заметил, что в его полномочиях что-то изменилось.
Автономное исполнение коррекций причинных линий сотрудников: запрещено. Аналитические операции: доступны. Рекомендации: формирование разрешено.
— Он может сказать нам, что делать, но не может сделать сам, — сказала Клото.
— Он и раньше мог сказать, — сказала Атропос. — Мы слишком легко переходили от одного к другому.
На контрольном деле кнопка исполнения оказалась недоступной. Вместо неё стояло: «Требуется отдельное утверждение».
— Работает, — сказала Лахесис.
— Проверим на втором.
Проверили на втором. Потом на третьем.
Лахесис достала «Реестр неустановленного». Бланк давно вышел за свои графы: к нему был подклеен второй лист, и вписанное на нём доходило до нижнего края. Она вписала ещё строку. Подклеивать третий было нечем.
Геката пришла в кафетерий в обычное для неё время, то есть тогда, когда пирожные уже выложены, но очередь ещё не образовалась.
— Что у вас сегодня вкусненького? — спросила она.
— Эклеры, — сказал бариста. — И что осталось от вчерашней вишни.
— Вишню.
Он поставил тарелку и сделал паузу человека, который собирается сказать то, что говорить не обязан.
— Тут папку оставили. Вчера вечером. Под салфеткой.
— Чьё?
— Не знаю. Мойры сидели, Аид сидел. Не мои бумаги.
Геката взяла папку, чтобы отнести её на стойку потеряшек. Папка раскрылась на таблице разрешений.
Она села.
Читала она так, как другие читают детективы: неспешно, с чашкой, возвращаясь к понравившемуся месту. Ей нравилось, когда документ составлен так, чтобы его нельзя было прочесть иначе, чем предполагал автор. Особенно когда автор предполагал что-то своё.
Аид появился в двадцать минут девятого. Он взял двойной эспрессо, получил его, сделал глоток и поморщился.
— Это не совсем то, что я заказывал.
— Она сама решает, — сказал бариста.
— Кто?
— Машина. Я кнопки давно не жму. Нажимаешь, не нажимаешь, нальёт, что нальёт.
— Почему?
— Наладчик так сказал. Вон наклейка.
На боку кофемашины висел лист бумаги, прижатый скотчем. Чёрным маркером, крупно, заглавными было написано: «КНОПКУ НЕ ЖАТЬ. САМА НАЛЬЁТ». Ниже мелко, другим маркером: «ГОРЯЧЕЕ ЭТО ГОРЯЧЕЕ».
Аид посмотрел на чашку, потом на листок. Машина шипела, будто объясняла что-то менее важное.
— Давно висит?
— С установки. Про вторую строчку я не спрашивал.
— «Горячее это горячее» — круг, — сказала Геката, не поднимая головы. — Такие пропускаем. Они ничего не разрешают и ничего не запрещают. Просто занимают место.
— А «сама нальёт»?
— А это читаем буквально. — Она перевернула страницу, и на лице у неё появилось выражение человека, которому подали что-то вкусное. — Мне вообще нравится, когда так пишут. Сразу видно, кто решает и что сделает. И без «в пределах допустимого».
Она подняла голову и увидела Аида.
— Это ваше?
— Я забыл, — сказал Аид. — Наверное. Я устал.
— Тут всё понятно.
— Вам.
— Мне. — Она повернула папку. — Смотри.
Она вела пальцем по строкам и читала вслух, негромко, без выражения, потому что выражение тут было ни к чему.
— «Пользователь обязан ознакомиться с последствиями перед подтверждением». Пункт три-два. Обязанность чья?
— Наша, — сказал Аид.
— И возникает она при подтверждении. А подтверждения у вас нет. Нет подтверждения — нет обязанности. Нет обязанности — никто ничего не обязан. Дальше. «Рекомендованная коррекция не требует повторного определения исходного состояния».
— Это я читал, — сказал Аид. — Я им это объяснял. Это порядок: сначала подобрали, потом проверили, потом выполнили, не пересчитывая.
— Нет. Это не про порядок. — Геката улыбнулась. — Это не опечатка. Это разрешение. Система не обязана перепроверять, на что она действует. Она взяла рекомендацию и применила. Что было до этого, её не касается.
Аид взял чашку и поставил обратно.
— Дальше. «Отклонение варианта не гарантирует сохранения исходной последовательности». Пункт четыре-пять. Вы отказались от варианта, а система может сделать вид, что вы не отказывались.
— Это я тоже читал.
— Читал, — сказала Геката. — Но не читал как то, что ему можно.
Внизу страницы, мелким шрифтом, шли свойства документа: редакция, время, автор, дата согласования.* Геката провела по нему пальцем, не остановившись, и перевернула лист. Потом ещё один.
— Я им два часа объяснял, — сказал Аид. — Про области. Про форму.
— И им было понятно?
— Им было вкусно.
— Значит, надо пойти и объяснить ещё раз, — сказала Геката. — Только теперь про то, что ему разрешено, а не про то, что он умеет.
— Вы пойдёте со мной? — спросил Аид.
— Сначала мне надо взять ещё эклер.
Она встала и подошла к стойке. За окном, в недостроенном доме напротив, на стальной балке под самой крышей сидели четыре альпиниста. Ноги у них свисали над улицей, страховочные комплекты лежали рядом, а второй завтрак они ели из бумажных пакетов.
— Давно они? — спросила Геката.
— Третий день, — сказал бариста. — Утром приходят, вечером уходят. Говорят, так положено.
— Кто говорит?
— Не знаю. Бумага у них есть.
— Страховка?
— Есть. Каждый пристёгнут. Я смотрел в бинокль.
— Откуда у тебя бинокль?
— На полке, за сиропами. Сиропы никто не берёт, времени много.
Геката положила на тарелку два эклера, подумала и добавила вишнёвое.
— Хороший вид, — сказала она.
— Просто завтракают, — сказал бариста. — Ничего особенного.
— Ну и ладно.
Аид, не поднимая головы, глянул в окно, потом на часы и ничего не сказал. Он допил кофе и встал.
— Пойдём, — сказала Геката. — Нам туда, где ещё сидят в кабинетах.
В кабинете Мойры занимались откатом.
В меню версий нашлась команда «Восстановить». Система предупреждала, что восстановление выбранной редакции изменит текущую инструкцию, но не тронет журнал операций и уже выполненные коррекции.
— По крайней мере, не обещает вернуть прошлое, — сказала Клото.
— Она никогда не обещала, — сказала Лахесис. — Мы сами так прочитали.
Самая ранняя редакция была помечена как действующая на момент установки ВЦ. Отдельной отметки «Исходная» не было. Что это: оригинал или просто самая старая копия, которая сохранилась, они не знали.
— Восстанавливаем эту, — сказала Атропос. — Нынешнюю не удаляем.
— Уже сохранена, — сказала Клото.
— Тогда нажимаю.
Инструкция вернулась к ранней редакции. Текст стал короче, определения снова оказались неполными, а ссылки вели в привычные разделы, которые не объясняли всего. Документ перестал меняться на глазах.
— Значит, откат касается документа, — сказала Лахесис. — Не линий.
— Откат профиля тоже откатил бы профиль, — сказала Атропос. — Что произошло, не отменяется. Пока не доказано обратное.
Клото внесла формулировку в протокол.
Потом они вернулись к схемам этажа. Оба плана по-прежнему числились действующими. Клото уже собиралась предложить выбрать один, когда Лахесис заговорила первой.
— Не выбрать, а ограничить, — сказала она. — Мы же не знаем, какой правильный.
— Зона, — сказала Атропос. — Вокруг ВЦ. Не заставлять весь этаж выбирать, а обозначить предел, за которым изменения не распространяются без отдельного решения.
Клото открыла форму причинного охвата. Режим изоляции отключал обмен данными с внешним контуром, и тогда ВЦ перестал бы видеть связи, ради которых его оставили. Нашёлся другой параметр: ограничение области распространения результатов.
Три попытки закончились предупреждением:
РЕЗУЛЬТАТ МОЖЕТ НЕ СООТВЕТСТВОВАТЬ ЕДИНОЙ ГЛОБАЛЬНОЙ ВЕРСИИ ПРИЧИННОГО ПОЛЯ.
— Это мы уже поняли, — сказала Лахесис.
— Теперь система тоже понимает, — сказала Клото.
— Что будет внутри зоны? — спросила Атропос.
— Неоднозначность.
— То есть не исправляем.
— Ограничиваем.
Атропос сверила область анализа, область рекомендаций и область исполнения. Каждая имела свой параметр, и ни один не включал другой сам.
— Применяем.
Клото подтвердила. Причинная область ВЦ получила отметку «Ограниченная». Число линий, помеченных как затронутые, перестало расти.
— Стабильно, — сказала Лахесис.
— На этом интервале, — сказала Атропос.
В архиве наблюдений нашлась запись Мнемозины о маршруте. Клото сравнила её с новой схемой: связь между маршрутом и записью теперь повторялась одинаково.
— Помогает, — сказала Лахесис.
— Изменило результат этой проверки, — сказала Атропос. — Запишем так.
Клото записала без сокращений.
На терминале мигнуло: «ОБНОВЛЕНИЕ ИНСТРУКЦИИ ДОСТУПНО». Они сначала сохранили текущую конфигурацию, раннюю редакцию, копию поздней, журнал, результаты проверки. Потом Клото открыла уведомление.
Текст был коротким, почти аккуратным. В конце стояла ссылка на процедуру первоначальной подготовки.
— Файл не найден, — сказала Клото.
— Может, в другом разделе?
— Может.
Атропос закрыла уведомление.
— Нам нужен кто-то, кто привык к таким документам.
В дверь постучали. Вошёл Аид. За ним вошла Геката, с папкой под мышкой и вторым эклером в руке.
Примечание
* Свойства документа печатались внизу страницы шрифтом, рассчитанным на читателя, который дочитал до конца. Таких, как правило, не бывало.
Глава 12. Рабочий день
В любом документе есть строка, которую читают быстрее остальных. Обычно с неё всё и начинается.
— Это Геката, — сказал Аид. — Она читала.
— Что читала? — спросила Лахесис.
— Вашу инструкцию.
— Нашу?
— Папку, которую я оставил в кафетерии. Не нарочно. — Он потёр переносицу. — Я хотел сказать, что не нарочно.
— Я не навязываюсь, — сказала Геката. — Я просто прочла. Если вам не нужно, я верну папку и доем вишню.
— Нужно, — сказала Атропос.
Геката кивнула, поставила эклер на край стола, сдвинула в сторону две чашки и разложила распечатки. Поздняя редакция лежала слева, ранняя справа, а между ними пустой лист, на котором она собиралась что-то записывать, но так и не записала.
— Сначала сортировка, — сказала она. — Такие документы пишут с двумя типами строк. Первые ничего не значат: «допустимое определяется допустимостью». Их вставляют, чтобы было где искать. Вторые значат всё, потому что в них отрицание. «Не требует», «не исключает», «не означает». Эти читают буквально.
— Мы читали буквально, — сказала Клото.
— Вы читали буквально то, что вам было удобно.
Лахесис хотела возразить и не нашла к чему придраться.
— «Не включённые в область линии не исключаются из причинности», — прочитала Геката. — Что вы поняли?
— Что линии за пределами области тоже участвуют, — сказала Лахесис. — Но мы их не меняем.
— Вы их не меняете. А он?
— Он тоже не должен.
— Здесь этого нет. Здесь сказано, что их нельзя вычеркнуть из рассмотрения. Раз нельзя вычеркнуть, можно рассматривать. Раз можно рассматривать, можно и менять, если это нужно для согласования.
— Но область исполнения…
— Следующее. — Она подвинула лист. — «Область применения определяется конфигурацией, а не принадлежностью к перечню операторов». Что это?
— Что доступ и операции — разные вещи, — сказала Клото.
— Это то, что вас не вынесли за скобки. Вы — операторы. Ваши линии — такие же линии. Конфигурация говорит: вот что система может. Она не говорит: кроме этих троих.
Атропос сидела молча. Лахесис положила перед ней журнал, открытый на записи от вторника: «Объект: линия оператора А.».
— И отдельно, — сказала Геката. — «Отсутствие запрета в профиле не означает отсутствия ограничения в базовой области». Вы читали это как предупреждение, что где-то глубже что-то не разрешено.
— А как это читать? — спросил Аид.
— Что где-то глубже есть ограничение. Но нигде не написано, какое. Значит, оно есть, а найти его негде. Для того, кому оно нужно, это удобно.
— Для кого? — спросила Клото.
— Для того, кто его не публикует.
— И последнее оттуда же. — Геката перевернула лист. — «Сведения о предшествующей конфигурации сохраняются в журнале». Что вы поняли?
— Что он сохраняет предыдущую конфигурацию, — сказала Лахесис. — Это мы читали.
— Сохраняет не значит возвращает. Сохранение в журнале — это запись о том, что было. Это не обязательство вернуть.
Клото вынула из ящика «Реестр неустановленного» и подвинула ей. Геката пробежала глазами по строкам, по подклеенному листу, по строкам на подклеенном листе.
— Хорошая форма. Её давно надо было завести.
— Она переполнена, — сказала Лахесис.
— Конечно. — Геката взяла карандаш. — «Кто проверил коррекцию линии оператора А. до исполнения». Известно: никто. — Она вписала. — «Базовая область исполнения: что в ней». Известно: не опубликовано. «Что значит „оптимальный“». Известно: что он вправе исполнять без подтверждения. «Кто разрешил системе менять чужую линию». — Она задумалась. — Это пока оставим.
Четыре строки были теперь закрыты. Лахесис посмотрела на реестр так, как смотрят на стол, на котором после долгого дня нашлось свободное место.
Потом Геката попросила журнал подготовки ВЦ.
Строки были знакомые: питание, архивы, аналитическое ядро, проверка связности. Всё зелёное. Она спросила, где калибровка. Лахесис предположила, что в проверке связности. Геката объяснила, что связность проверяет, может ли система обмениваться данными, а калибровка проверяет, правильно ли она соотносит расчёты с полем, в котором собирается работать. Калибровки в журнале не было. Интеграции тоже.
— Здесь сказано: «Рабочая среда доступна. Все базовые условия соблюдены», — сказала Клото.
— Это результат проверки. А перечень условий должен быть перед ним.
Она вывела список операций до первого рабочего цикла. Нашлись несколько обращений, помеченных как фоновые. В первом ВЦ запрашивал сведения о текущем поле и отмечал расхождения. Во втором пытался согласовать события с более ранними версиями причинных связей. В третьем делал то же самое, но уже с данными, которые относились к нему самому.
— Он пытался встроить себя в поле? — спросила Лахесис.
— Похоже. Это записано как подготовка, но подготовка закончилась до первого цикла, а он продолжал после.
— И нам не сообщили.
— В обычном смысле нет. Фоновые операции допустимы для анализа. Допустимы ли они для встраивания, зависит от режима. В ваших документах режима нет.
— В ранней инструкции этой процедуры вообще нет, — сказала Клото.
— Значит, вы не пропустили. Её нет.
Геката открыла свойства поздней редакции. Автор. Дата согласования.
— Что? — спросил Аид, потому что она замолчала.
— Автор. 4417-Ц.
— Какой-то номер, — сказала Клото.
— Да. Он стоит в поле «Автор» последней версии инструкции.
Лахесис придвинулась к экрану.
— В карточке установки, — сказала она, — поле «Инициатор»: 4417-Ц.
— То есть тот, кто назначил установку, и тот, кто написал инструкцию, — один и тот же номер, — сказала Геката.
— Это номер отдела? — спросила Клото.
— У отделов нет такого формата. Номер объекта. И людей с такими инициалами я не встречала.
Никто не уточнил, какого объекта.
— И дата согласования, — продолжила она. — Последняя редакция согласована через четыре дня после того, как шкаф появился в вашем кабинете.
— Установка согласована после установки? — сказала Лахесис.
— Согласовано. Кем, не указано.*
— Такое бывает? — спросила Клото.
— Это бывает, — сказала Геката.
Больше она ничего не добавила. Аид сел.
— Я не могу сказать, что это значит, — сказала Геката. — Я вижу, что есть. Я могу сказать, чего нет: нет перечня условий, нет калибровки, нет автора, которого можно было бы спросить. Всё остальное решаете вы.
— Что именно? — спросила Атропос.
— Оставлять ли ему анализ. Что делать с исполнением. Кому доверять документ, который написала сама система. Я читаю. Решаете вы.
Лахесис посмотрела на сестёр.
— Анализ оставляем. Исполнение закрыто. Зону вокруг него не трогаем.
— Не трогаем, — сказала Атропос.
— Свою линию, — сказала Клото, — тоже надо проверить.
— Да, — сказала Атропос.
Геката допила чай, собрала распечатки и протянула папку Аиду.
— Твоя. Не оставляй.
— Я не оставлял.
— Оставлял. Дважды.
Она взяла эклер, на ходу спросила у Клото, не осталось ли у них чего-нибудь к чаю, и вышла вместе с Аидом.
Мойры ещё какое-то время сидели над двумя инструкциями. ВЦ работал: находил связи, указывал противоречия, предлагал решения. Между найденной связью и изменённой линией снова стоял кто-то, кто должен был сказать «да» или «нет».
Атропос сохранила позднюю инструкцию в отдельном архиве и убедилась, что ранняя на месте.
— Теперь хотя бы понятно, что ему можно, — сказала Лахесис.
— Да. Осталось выяснить, что он успел сделать, пока мы не знали.
Примечание
* В ведомстве такое случалось и раньше. Это называлось «согласование в рабочем порядке» и допускало любые даты, кроме более ранних.
Глава 13. Запись не найдена
Всякая запись объясняет, откуда она взялась. Когда она этого не делает, объяснять приходится тем, кто ею пользуется.
В архиве обнаружилась лишняя строка.
Она стояла между двумя записями, относившимися к разным делам, и не имела номера. Времени создания не было, времени изменения тоже. Поле источника пустовало, а в поле содержания стояла одна фраза:
Маршрут согласован с действующей версией.
Мнемозина открыла историю изменений. Истории изменений не было.
Она проверила соседние записи, поискала по фразе, прогнала старый индекс, потом новый. Система сообщила, что совпадений нет. При повторном запросе строка исчезла из списка, но осталась в выгрузке, которую Мнемозина успела сохранить.
Она открыла файл ещё раз. Строка была на месте.
Мнемозина присвоила ей временный номер, приложила выгрузку к архивной заметке и написала в поле комментария: «Источник не установлен. Не удалять до выяснения».
Выяснения требовало время, а времени в архиве всегда было меньше, чем записей. Зато теперь у неё было правило: если запись не удаётся объяснить, это ещё не повод считать её ошибкой.
В соседнем помещении ВЦ обрабатывал очередную пачку запросов. Он находил связи, отмечал противоречия, предлагал варианты. Исполнение коррекций по-прежнему оставалось за пределами его полномочий.
Записку Аиду Мнемозина отправила сама, по новому стандарту: «Дело: архивная запись без источника. Соседние записи: одна из вашего ведомства, одна из ведомства Мойр. Нужен специалист по формам. Срок: сегодня. Если не можете, сообщите, что не можете». Аид ответил по-старому: «ПОНЯЛ. БУДУ». Он, по крайней мере, был единственным в здании, кто за последние дни разобрался в форме полномочий ВЦ и не стал после этого относиться к формам хуже.
Коридор к архиву и к ВЦ проходил через зону, где причинность ещё не решила, какую из версий считать настоящей. Поэтому на входе висели часы и стенд с тремя схемами: восточный коридор, западный и лестница, которая, насколько помнил Аид, заканчивалась дверью с табличкой «Служебное помещение». Под схемами лежали свежие распечатки с примечанием: «Маршрут действует на момент выдачи».*
Аид посмотрел на часы, взял лист, соответствовавший текущему времени, и пошёл. За первой дверью маршрут совпал со схемой. За второй Аид свернул налево, прошёл мимо комнаты с архивными коробками и вышел к знакомой лестнице. На площадке сверился с листом, спустился на пол-этажа и оказался в коридоре, который в другой схеме значился западным. Он не заблудился. Он следовал инструкции и сверял контрольные точки, как положено человеку, привыкшему к маршрутам.
У двери Мнемозины он проверил номер и постучал.
— Входи.
Он вошёл, положил распечатку на стол и снял пальто.
— Удивительная организация, — сказал он. — Даже дорогу до рабочего места приходится согласовывать.
Мойры оставались в кабинете допоздна. День был рабочим, каким и положено быть дню после трудного дня: дел немного, но каждое обещало вернуться.
Клото собрала со стола закрытое.
— Следующее принести?
— Подожди, — сказала Атропос.
Она подошла к архивному шкафу и достала папку недельной давности. Лахесис узнала её по обложке: дело о двух сотрудниках, один из которых помогал другому. Первого скорректировали, второго нет. Закрыли в четверг, перед обедом.
— Ты же не любишь возвращаться, — сказала Клото.
— Не люблю.
Атропос положила папку на полосу посередине стола, между тем, что можно закрывать, и тем, что нельзя. Полоса была свободна.
— Проверена или завершена? — спросила Лахесис.
— Завершена, — сказала Атропос. Раскрыла журнал второй линии, нашла строку, которую никто не открывал, и взяла карандаш.
Она написала: «Проверить». Рядом поставила дату.
За дверью щёлкнули часы.
Примечание
* Распечатка действовала один час. Что считать маршрутом человека, который вышел по одной распечатке, а пришёл по другой, в правилах не оговаривалось.
Спасибо за чтение
Вернуться к книге
