Айко Атами
Две миллисекунды

Глава 1. Холодный запуск

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

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

Женя Селиванова смотрела через него на кассету с образцами. Шесть одинаковых модулей БВП-17 стояли в держателях, каждый размером с половину ладони, каждый с белой наклейкой и черной строкой партии: ДП-04. Первая серийная. Та, которую утром должны были допустить к установке в северные радионавигационные узлы.

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

— Еще сорок секунд, — сказал Роман Журавлев.

Он стоял у соседнего пульта в бахилах, с планшетом под локтем и с тем выражением лица, которое у молодых технологов появлялось после третьей ночной смены: веселость без сил. На его участке эти модули заливали компаундом. Если партия проходила, утром Роман мог спать. Если нет, он первый становился человеком, на которого удобно показать.

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

На экране дрогнула тонкая линия.

Не сильно. Даже не так, чтобы оператор стенда повернул голову. Провал был узкий, как царапина на стекле: две миллисекунды, может меньше. Линия ушла вниз и сразу вернулась, будто сама испугалась.

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

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

Зеленая полоска не погасла.

Роман выдохнул:

— Все. Закрываем?

Женя поставила палец на экран, не касаясь его.

— Верни последние три секунды.

Роман посмотрел на нее, потом на большой индикатор.

— Там все зеленое.

— Я не про зеленое. Сырой канал второй шины.

Он сделал движение плечом: не спор, еще нет. Просто тело хотело домой раньше головы. На планшете щелкнул повтор. График откатился, побежал снова. Сорок восемь вольт входного. Двенадцать вторичного. Нагрузка ступенькой. Холодный старт. Тонкая линия ровно держалась в коридоре, потом на миг падала ниже нижней границы.

— Шум датчика, — сказал Роман.

— С какого датчика?

— Женя, это две миллисекунды.

Она наконец повернулась к нему.

— В аварийном маяке две миллисекунды тоже две миллисекунды.

Роман стер ладонью след от дыхания на защитном стекле своего планшета.

— Блок не аварийный маяк. Блок питает стойку. Там буфер, резерв, фильтры. Ты сама это принимала.

— Я принимала проект. Сейчас мы принимаем партию.

За стеклом камеры образцы молчали. Они не выглядели как вещь, из-за которой можно задержать программу. В них не было ни драматичной формы, ни большого корпуса, ни внешней силы. Черные прямоугольники, керамика, дорожки, заливка. Почти ничего. Но именно такие почти ничего потом становились причиной длинных актов, закрытых совещаний и чужого вопроса: кто подписал допуск?

Дверь лаборатории открылась. Вошел Кирилл Лавров, не надевая халат до конца. Рукава остались собранными у локтей, телефон прижат плечом к уху.

— Да, финальный цикл заканчивается. Нет, до комиссии успеваем. Я сам здесь.

Он отключился и только теперь увидел лица.

— Что?

Роман поднял обе руки, будто заранее снимал с себя лишнее.

— Сводка зеленая. Женя смотрит миллисекунды.

Кирилл перевел взгляд на экран. У него был талант руководителя программы: он умел входить в комнату так, чтобы воздух сам вспоминал расписание. Северное окно установки начиналось через шесть суток. После него ледовая проводка меняла график, бригады уходили на другие объекты, а запуск сети превращался из новости о технологической независимости в объяснение, почему опять не успели.

— Женя?

Она вывела на экран участок лога и увеличила провал.

— Вторичная шина просела при холодном старте.

— За предел допуска?

— В сыром канале — да.

— В протоколе?

— Протокол усреднил.

Кирилл коротко закрыл глаза. Не от злости. От счета.

— Это финальный прогон?

— Да.

— До него?

— По сводкам чисто.

— По сырым каналам?

Женя молчала полсекунды дольше, чем нужно было для обычного ответа.

— Их не выгружали на полном разрешении. Не было основания.

Роман тихо сказал:

— Потому что не было отказа.

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

Она смягчила тон:

— Я не говорю, что это заливка.

— Пока, — сказал Роман.

Кирилл подошел ближе к экрану.

— Что нужно, чтобы снять вопрос?

Правильный ответ был: повторить старт, проверить стенд, выгрузить сырые логи по всем образцам, запросить диагностический слой у ЗАСЛОН, сопоставить с партиями композита и микросхем. Неправильный ответ был: десять минут.

— Минимум два часа, — сказала Женя.

Кирилл медленно выдохнул.

— Комиссия в девять.

— Сейчас два сорок.

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

— Поэтому нельзя подписывать слепую партию.

Слово вышло жестче, чем она хотела. Роман дернулся. Кирилл сразу услышал в нем не технику, а угрозу.

— Слепую?

Женя убрала палец от экрана.

— Партию, где сводный протокол показывает зеленое, а сырой канал говорит, что мы чего-то не видим.

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

Кирилл посмотрел на камеру. Иней по краям стекла был красивым, почти рекламным. Такой кадр любили презентации: холод, отечественный модуль, зеленый допуск, люди в белом свете.

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

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

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

Роман наклонился к планшету.

— Могу поднять лог стенда за предыдущие циклы. Но если там чисто…

— Подними не сводку. Сырой канал по второй шине. Все образцы, все холодные старты.

— Это много.

— Поэтому начни сейчас.

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

Кирилл достал телефон.

— ЗАСЛОН ночью поднимем?

— Майя Орлова на дежурном контуре, — сказала Женя. — У них диагностический слой пишет быстрее нашего стенда. Если она даст сырой пакет, станет понятно, просела сама шина или наш измеритель.

— Она даст?

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

— Если спросить как разработчика, будет защищать интерфейс. Если спросить как инженера, даст.

Кирилл усмехнулся без радости.

— Отличный план. Позвонить человеку в три ночи и угадать, кто возьмет трубку.

Женя уже набирала номер.

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

— Селиванова? У вас финальный цикл.

— Был провал по второй шине на холодном старте. Сводка зеленая. Нужен сырой диагностический пакет БВП за последние пять циклов.

Майя не спросила, какой провал. Сначала посмотрела вбок, на свой экран.

— Встроенная диагностика не является частью приемочного протокола.

Кирилл тихо сказал:

— Началось.

Женя не отвела глаз от окна связи.

— Сейчас не протокол. Сейчас вопрос, есть ли что вносить в протокол.

— Какой образец?

— ДП-04-06.

Майя напечатала что-то одной рукой. На ее лице не изменилось ничего, но пауза стала другой: не корпоративной, а счетной.

— У вас стенд по какому профилю нагрузки?

— Северный холодный старт, ступень три, вибрация уже снята.

— Просадка сколько?

— Две миллисекунды ниже нижней границы сырого канала.

Майя перестала печатать.

— Сводка ее не покажет.

— Почему?

— Потому что окно усреднения шире.

— Я знаю. Почему ты сказала это так, будто уже видела?

На связи стало тихо. Роман поднял голову от планшета. Кирилл больше не смотрел на часы.

Майя откинулась на спинку стула.

— У нас на внутреннем прогоне был похожий зубец. Один раз. На предсерийном образце.

Роман выругался почти беззвучно.

Кирилл шагнул ближе к экрану.

— Это было в отчете?

— Это не было отказом, — сказала Майя. Слишком быстро. — Зубец не воспроизвелся. Причина была отнесена к измерительному шуму.

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

— Дай пакет, — сказала она.

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

— Если я дам сырой пакет, он не должен уйти в комиссию без пояснения разработчика.

— Тогда поясняй.

Кирилл резко посмотрел на Женю. Такой фразой не торговались с партнером за шесть часов до допуска.

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

— Пять минут.

Связь осталась открытой, только изображение застыло на пустой кухне. Роман снова опустился к планшету.

— Женя.

— Что?

— Я поднял предыдущие циклы. Не все, только холодные. ДП-04-02, ДП-04-04 и ДП-04-06.

Он развернул планшет к ней.

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

Женя увеличила временные метки.

— Они все из одной кассеты?

Роман покачал головой.

— Из разных кассет.

— Микросхемы?

— Комплект один, но вся партия на нем.

— Подложка?

— Тоже вся.

Он замолчал, потом провел пальцем по строкам журнала.

— Нет. Смотри. Заливка не вся. Эти три шли ночью после простоя климатической сушки. Мы тогда датчик влажности меняли. По журналу простой закрыли в норме, но…

— Но?

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

— Но в ранних отметках есть разрыв. Нужно смотреть сменную ленту и видео участка.

Кирилл тихо спросил:

— Это сколько изделий?

Роман не ответил сразу. Считал по маркировке.

— Двадцать семь.

За стеклом камеры зеленая полоска продолжала гореть.

Женя оставила рядом три окна: зеленую сводку, сырой провал и список ночного окна. В новом протоколе появилась строка: ДП-04, двадцать семь изделий, внеплановая проверка до комиссии.

На экране связи ожила Майя.

— Пакет отправила. И, Селиванова…

— Да?

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

Женя медленно положила ладонь на край пульта. Металл был теплым. Камера была холодной. Между ними стояла партия, которая только что перестала быть допущенной.

— Кирилл, — сказала она, — комиссию придется будить раньше.

Он посмотрел на нее так, будто еще искал другой выход. Потом убрал телефон в карман и застегнул наконец халат.

— Что я им скажу?

Женя открыла новый файл протокола. Заголовок сам встал на экран: Дополнительная проверка партии ДП-04.

— Скажи, что у нас появилось основание не ставить подпись вслепую.

Глава 2. Шум стенда

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