Вера Ард
Ход слоном
Москва. Недалекое будущее.
– А вот и наша каморка! – Милана открыла символическую дверцу кабинета, который Егор в голове уже окрестил «клеткой». Аналогия была не с тюрьмой, скорее с разлиновкой школьной тетради. Егор еще на выходе из лифта увидел план эвакуации, на котором двойные ряды квадратиков перемежались узкими линиями. В реальности напечатанные рамки оказались полупрозрачными пластиковыми перегородками, за которыми двигались силуэты людей. В коридор выходили ровные ряды дверей, сделанных из того же совсем неэкологичного материала. Хорошо хоть высота перегородок была не до потолка: маленькие закрытые помещения его нервировали. Смотреть на дневной свет полагалась только начальству, чьи кабинеты находились в конце коридоров, вдоль внешней стены. «Двенадцать клеток на одну сторону, двадцать четыре на коридор, семь умножить на двадцать четыре… Итого сто шестьдесят восемь клеток, триста тридцать шесть человек…» – Егор привычно начал считать в уме, это помогало снизить напряжение. Цифры – в них все так привычно и спокойно. Никаких сюрпризов.
– О чем задумался? – только сейчас Егор заметил, что Милана пристально смотрит на него.
– Считал, – ответил Егор. Он не имел привычки врать без особой на то необходимости. Ложь для него оставалась сложным искусством, которому он с переменным успехом учился уже много лет.
– Что считал? – недоуменно спросила Милана.
– Сколько здесь сотрудников. Умножал количество коридоров на количество дверей и на количество мест.
– Мог бы спросить у меня! – с улыбкой произнесла Милана. – На этом этаже только Отдел разработки программного обеспечения, триста три человека, включая тебя. Программистов из них двести шестьдесят восемь. Также здесь сидят руководители групп и начальник отдела.
«Ошибка – не учел, что у начальников отдельные кабинеты».
– С Дмитрием Павловичем ты еще сегодня пообщаешься, он предпочитает знакомиться со всеми новенькими. А пока можешь располагаться!
Егор посмотрел на два одинаковых рабочих стола, на каждом из которых стояло по паре больших мониторов. Он без труда понял, где его рабочее место. Вряд ли подставка для канцтоваров в виде цветущего дерева, в нижнем отсеке которого лежало изящное зеркальце, могла принадлежать его предшественнику. Скорее, такой ерундой развлекалась Милана. Егор еще раз взглянул на девушку. Она не очень-то походила на типичную программистку, по крайней мере, никто из его сокурсниц, которых он последний раз видел два месяца назад на вручении дипломов, так не выглядел. У Миланы были темные волосы до плеч, подстриженные каскадом, лоб закрывала симпатичная челка, из-под которой выглядывали аккуратные брови и карие глаза миндалевидной формы. Форменную светло-голубую футболку «Astrexa» девушка заправляла в узкие темные джинсы, украшенные ремнем с крупной серебристой пряжкой, что подчеркивало ее стройную талию, и облегало бедра и грудь. «90/60/90» – всплыло в голове у Егора, любившего все переводить в цифры. Рост примерно 175, то есть всего на пару сантиметров ниже его. Да и вес у них примерно одинаковый, Егор с детства отличался худобой.
– Я уже четыре года в компании, и могу себе позволить милые безделушки, – улыбнулась Милана, заметив направление его взгляда. – Так что ты правильно определил свое место.
– Ты сразу после института сюда пришла? – спросил Егор, присаживаясь на кресло за второй стол, на котором не было ничего лишнего. “Поддержать разговор, обменявшись общими вопросами» – пункт из списка правил, заученный еще в школьные годы.
– Да, СПбГУ закончила. А ты МФТИ? – ответила Милана.
«Значит, ей сейчас в районе двадцати семи», – прибавил Егор четверку к своему возрасту.
– Да. Смотрела мое досье?
– А как же… Мне дали возможность поучаствовать в выборе. Отличник, стипендиат различных программ… Твое резюме впечатляет.
– Однако взяли меня пока только на тестировщика, – заметил Егор.
– Ну, ты недолго там проработал, через два месяца уже оказался у нас.
– Это временная замена. Пока твой коллега не выздоровеет.
Вспомнив о заболевании предшественника, ставшем причиной перевода, Егор инстинктивно убрал руки с поверхности стола.
– Не переживай, здесь все продезинфицировали, – заметив его резкое движение, произнесла Милана. – Сам понимаешь, дизентерия – такая вещь… Нас тут всех чуть ли не в хлорке купали, меня особенно. Мы же постоянно контактировали. Но, видать, зараза к заразе не пристает, так что обошлось.
Егор заметил, что Милана попыталась пошутить, и постарался выдавить из себя улыбку. В памяти отчетливо всплывали слова психолога, которая с детства с ним занималась: «видишь улыбку, улыбнись в ответ». Она учила запоминать интонацию, с которой произносятся шутки, чтобы на них реагировать. К сожалению, различение эмоций, как и их нормальное выражение, давались Егору нелегко. Диагноз «расстройство аутистического спектра», благо в легкой степени, не очень-то способствовал социальной адаптации. Выражение эмоций Егор заучивал, как другие учат таблицу умножения. Благо, память у него была прекрасной. Да и считал в уме он едва ли не быстрее калькулятора. Выдавив из себя подобие улыбки, Егор произнес:
– Не представляю, как в Москве двадцать первого века можно заразиться дизентерией.
– О, у нас в компании никто тоже этого не понял! – пожала плечами Милана. – Зато тебя будет шанс проявить себя. А там, может, и оставят. Сейчас очень сложный момент. Первый запуск беспилотного пассажирского самолета с нашей системой уже через четыре дня. Все должно быть идеально. Людей, конечно, на борт пока брать не будут, но, если все пройдет успешно, штат увеличат. Пойдут продажи, а значит, понадобится расширенная техподдержка, постоянные доработки под нужды клиентов. А пока наша основная задача – перепроверка старых багов. Систему перелопатили уже не раз, но начальство очень боится сбоев. Одно дело запуск на компьютерной модели, или на самолете с пилотом, который может подхватить управление, если произойдет сбой, а другое на реальном пассажирском лайнере. Представляешь, сколько он денег стоит? Поэтому будем сидеть до последнего.
– То есть мой шанс проявить себя – найти ошибку в многомиллиардном проекте?
Милана усмехнулась:
– Ну, вряд ли ты нароешь что-то серьезное. Мы отвечаем всего лишь за систему обратной связи. Самолет с земли не управляется, но нейросеть передает специальные сигналы, позволяющие дополнительно контролировать процесс. Все запрограммировано и делается без участия человека, но мелкие ошибки на тестовых полетах встречались, и, хотя больше они не повторялись, перед запуском решили еще раз перепроверить. К реальной системе тебя пока не допустят, твоя область – компьютерная модель полета. Проверишь в ней ошибки, которые были давно и больше не встречались. Скорее всего, они уже устранены, но для тебя это хорошая возможность разобраться в коде. Так что, заходи в программу, выбирай себе задачи и приступай. Будут вопросы, не стесняйся, задавай. Я помогу.
С этими словами Милана села на свое рабочее место и, закинув ногу на ногу, вывела компьютер из спящего режима. Егор последовал ее примеру.
Он открыл программу со списком задач, предназначенных их отделу. Егор выбрал одну из самых последних в списке, с низким приоритетом. Милане, как куратору, видимо, пришло уведомление, так что она недоуменно посмотрела на своего нового соседа.
– Зачем тебе этот хлам? Единичная ситуация два года назад, ни разу больше не повторившаяся. Взял бы лучше что-то посвежее. На этом ты точно себя не проявишь.
– Но здесь указано, что после успешного взлета при получении сигнала с земли запустился какой-то необратимый процесс, который вывел из строя всю систему, и пришлось перейти на ручное управление.
Милана демонстративно пожала плечами.
– Ну это же было всего один раз и давно. Система сейчас значительно доработана. Возможно, тогда тестировщики обновление плохо проверили, и оно ушло с ошибкой на действующий полет.
Правый глаз у Егора неосознанно дернулся, что нередко бывало при попытке сдержать раздражение. Милана заметила и сразу извинилась.
– Пойми, я ничего плохого про твой бывший отдел не говорю, но там работают в основном молодые ребята, и они тоже могли что-то не так сделать. Для каждой части полета написана определенная запускающая комбинация. То есть самолет передает, что у него все в порядке, и система с земли высылает код для перехода к следующему этапу, но в тот раз стартовая комбинация на набор высоты по какой-то причине вызвала отключение всей системы. Я помню эту историю, хотя она произошла почти два года назад. Мы перепроверяли потом много раз с самыми разными сочетаниями факторов, но ошибка так и не повторилась.
Глаз перестал дергаться. Голос Миланы удивительно успокаивал
– Ты можешь посмотреть, что делал Андрей по этой задаче, – продолжила говорить девушка. – Сбой после его доработки был выявлен, и он много потом ковырялся, но забросил, потому что так и не нашел условий, при которых бы ошибка возникла заново. А сейчас Андрей в больнице, так что ничего страшного, если задача перед запуском останется незакрытой, к тебе претензий не будет. К сожалению, тогда из-за полного отключения у нас даже переданных команд не осталось, только сами сообщения на экране бортового компьютера. Хоть самолетом у нас и управляет нейросеть, но обратная связь передается по старинке, через радиосигнал. И в последнем сообщении ничего, кроме стандартного кода, не было.
Егор задумался на секунду. «Хочу…» – крутилось у него в голове. Когда его внимание захватывала какая-то идея, то она начинала заполнять собой буквально все клеточки мозга. И сейчас ему требовалось разобраться с причинами сбоя двухлетней давности, а любые препятствия и отговорки только усиливали это желание.
– Я все-таки хотел бы заняться этой задачей, – спокойно сказал Егор. – Она интересная. Насколько мне объяснили, я могу взять любую из списка, или нет?
Милана покачала головой:
– Да можешь, конечно, но по мне это тухляк, который только отнимет у тебя рабочее время. Но если начальство не поставит тебе отмену, занимайся.
Милана уткнулась в монитор и произнесла как бы себе под нос, но явно, чтобы Егор ее услышал:
– Чем бы дитя ни тешилось…
***
Кабинет Дмитрия Павловича Мискалькова находился в конце коридора, по противоположной стороне. Когда Егора пригласили к начальнику, в «клетке» он сидел один, Милана сбежала на какое-то совещание. В окошке корпоративного мессенджера мелькнуло сообщение от HR, что начальник ждет его в 14:30. До встречи оставалось пятнадцать минут.
Егор уже часа два сидел, перечитывая команды и отправляя части кода на автоматизированную проверку. Пока найти место, в которое вкралась ошибка, не удавалось. Программное обеспечение для самолетов, которое делало «Astrexa», было основана на уникальном алгоритме обучения нейросети, позволяющем в разы увеличить скорость обработки поступающей к беспилотному кораблю внешней информации и, соответственно, свести вероятность ошибки в принятии решения к нулю. Алгоритм несколько лет назад разработал сам Дмитрий Павлович. До этого он работал тимлидом в команде программистов у конкурентов «Astrexa» – питерской компании «ЗАСЛОН». Но вдруг все бросил, уехал в Москву, устроился в «Astrexa» и там уже сделал свое открытие. Если запуск программы пройдет успешно, то новой системой можно будет оборудовать и гражданские самолеты, отказавшись от пилотов-людей и тем самым исключить трагедии, вызванные человеческим фактором. За эту гениальную разработку Дмитрий Павлович и получил повышение и возможность самому возглавить проект. А «Astrexa» здорово потеснила на рынке своих конкурентов.
Егор постучал в дверь начальника.
– Да, заходи! – раздался изнутри хрипловатый мужской голос. Егор повернул ручку и оказался в просторном светлом кабинете, из панорамных окон которого открывался отличный вид на залитый солнцем сентябрьский московский пейзаж.
За большим изогнутым столом сидел мужчина лет тридцати пяти – сорока. Он казался несоразмерно маленьким по сравнению с обстановкой. Много пространства, огромные мониторы и из-за них выглядывал, словно гриб-сморчок из-под корней старого пня, Дмитрий Павлович. Сходство усиливалось густыми каштановыми волосами, которые, переливаясь под солнечными лучами, придавали голове шефа яркий рыжеватый блеск.
– Егор, очень рад приветствовать тебя в нашей команде, – произнес Дмитрий Павлович. – Проходи, садись.
Егор приземлился на стул напротив начальника и приготовился выслушать речь о важной роли каждого сотрудника в общем деле. Ожидания его не обманули. Будто по заученной шпаргалке шеф рассказал о том, как много компания вложила в этот проект, и он очень сожалеет, что предшественник Егора – Андрей оказался в больнице и не сможет поучаствовать в триумфе. Зато ему, молодому специалисту, выпал шанс проявить себя. Также начальник спросил про ощущения на новом месте. Получив короткий ответ, что все хорошо, шеф добавил, что к нему можно, не стесняясь, обращаться по всем интересующим вопросам. Егор на секунду завис. Головой он понимал, что последняя фраза – всего лишь дань вежливости, но все-таки решил поинтересоваться.
– А вы не подскажете, что означают последовательности символов, которые служат для запуска каждого нового этапа в работе системы?
Дмитрий Павлович едва заметно напрягся, но переспросил:
– А напомни, какие там символы? Я уже подзабыл, давно в исходный код не заглядывал.
– 1АA1A3, 2AB1A3, 3AC1A3… – по памяти начал говорить Егор.
– Ну, то есть там меняется только первая цифра в порядке возрастания и третья буква в алфавитном порядке?
– Нет, – возразил Егор, – На этапе горизонтального полета код чуть другой – «4AD1D3», буква «E» пропущена, а на этапах с пятого по седьмой, где снижение, посадка и руление – предпоследний символ «H» вместо «A».
Егор вновь посмотрел на шефа и увидел, что тот поморщился. «Эмоция – неудовольствие», – констатировал голос в голове.
– А к чему, вообще, этот вопрос? – произнес Дмитрий Павлович, чуть раздражаясь.
– Увидел, что при тестировании пару лет назад после получения третьего кода «3AC1A3» – на набор высоты – произошел сбой всей системы. Больше это не повторялось. Вот пытаюсь разобраться, почему спусковой крючок тогда не сработал.
– Ну, не знаю, – скривился шеф. – Я помню эту историю, но, если за последние два года ошибка не повторялась, скорее всего ее уже устранили при работе над другой проблемой. Попробуй проверить еще ряд комбинаций условий, если ошибки не будет, думаю, не стоит тратить на это время.
– Хорошо, я этим и занимаюсь. Просто подумал, раз вы писали изначальный алгоритм, то могли неслучайно выбрать эти последовательности. Они выглядят довольно странно на фоне стандартного кода.
Егор посмотрел на начальника, но тот молчал, хотя брови его приподнялись, веки напряглись, а губы неприятно скривились. Выражение почти сразу ушло, но Егор с его наблюдательностью не мог не заметить этих движений мимики. Он поднялся со стула и, увидев, что Дмитрий Павлович кивнул ему в знак окончания разговора, направился к выходу из кабинета. Закрывая дверь, Егор начал соотносить мимику с изображениями эмоций из учебника. Одна подошла. Егор отметил про себя: на лице шефа в конце разговора отразился страх.
***
– Как первый рабочий день?
Егор отвлекся от ноутбука и выглянул в прихожую, где копошился Денис. Квартира, которую они снимали, была настолько маленькой, что сделать это, не вставая с кресла, было несложно.
– Да нормально, – ответил Егор, когда сосед зашел к нему комнату.
Познакомились они с Денисом шесть лет назад, когда их, первокурсников МФТИ, поселили в одну комнату в общаге, хоть и учились они на разных специальностях. Несмотря на совершенно непохожие характеры и интересы, новоиспеченные студенты быстро сдружились. Денис, как и Егор, рос без отца, но у него были младшие брат и сестра, и он со школьных лет привык себя чувствовать главой семьи. В отрыве от дома объектом его заботы стал Егор, который, хоть и был на несколько месяцев старше своего соседа, к моменту поступления в институт оставался совершеннейшим ребенком. Такое ощущение усиливала и внешность Егора: болезненная худоба, большие карие глаза на фоне тонких черт лица и русых, слегка вьющихся волос даже к окончанию института заставляли видеть в нем вчерашнего школьника, о котором так и хочется позаботиться. В их студенческие годы Денис то и дело становился кандидатом на исключение, уже с третьего курса работая системным администратором, а Егор получал повышенную стипендию и побеждал в олимпиадах. Денег ему, конечно, не хватало, но он и тратился лишь на самое необходимое.
После получения диплома, несмотря на постоянную работу, легче с деньгами не стало, Москва съедала слишком много. Так что выпускники разумно сняли крошечную двушку в двадцати минутах ходьбы от метро и обитали там уже несколько месяцев. Личной жизни у одного, ни у второго не наблюдалось. И если Денис в редкие свободные от работы моменты еще пытался решить эту проблему знакомствами в Тиндере, то Егора одиночество вполне устраивало.
Понимая, что Денис зашел услышать подробности, Егор отвлекся от ноутбука и начал перечислять:
– Мне выделили рабочее место. Посмотрел первые задачки. Познакомился с начальником. Куратор особо ко мне не лезет, и то хорошо. Видимо, у нее своих забот хватает.
– У нее? К тебе что, девку приставили?
– Ну да…
– Симпатичную хоть?
Егор задумался, вспомнив внешность Миланы.
– Я бы сказал, да. Все пропорционально, никаких видимых изъянов. Явно симпатичнее нашего начальника. Мискальков особо не впечатлил, ни внешностью, ни интеллектом.
– Мискальков? Дмитрий… – Денис напряженно вспоминал отчество.
– Павлович, – помог ему Егор. – Ты с ним знаком?
– Ну… Пересекался как-то в Питере. Помнишь, я после первого курса туда ездил? Город посмотреть и подработать заодно. «Заслон» организовывал оплачиваемую практику для студентов. Мискальков там как раз работал. Тоже не произвел особого впечатления, если честно. Вот с ним другой малый приходил – тот да, мозг. Сан Саныч. Фамилию какая-то простая была, точно не помню уже, но тоже на «А», все три инициала одинаковые. Он еще преподавал, то ли в ЛЭТИ, то ли в Политехе. Грамотный мужик. Жаль, что одним карьера, а другим…
– А что другим?
Денис напрягся:
– Да там такая история была… Я на следующий год к ним летом снова поехал. Спросил тогда, а почему все другие теперь работают? Так вот – Мискальков в Москву рванул. А тот парень умер, прям в офисе.
– Это как? – Егор окончательно отвлекся от ноутбука и внимательно посмотрел на соседа.
– Астма у него была… – поморщившись, сказал Денис. – Пришел на работу без ингалятора. Задержался, а тут приступ случился, и рядом никого. Его уборщица нашла мертвым в кабинете. Говорили, что для компании это была очень сильная потеря. Да и еще и Мискальков к конкурентам сбежал. Зато видишь… В начальниках теперь.
– В начальниках… – чуть задумавшись, протянул Егор. – Спросил у него, что обозначает комбинация символов, используемая при переходе к набору высоты, а он даже не смог ответить.
– Что за комбинация?
Егор повернул монитор к Денису, на котором в столбик были записаны символы и их расшифровка.
1AA1A3 – наземный этап
2AB1A3 – взлет
3AC1A3 – набор высоты
4AD1D3 – горизонтальный полет
5AF1H3 – снижение
6AG1H3 – посадка
7AH1H3 – наземный этап
– На каждом этапе работы системы, – начал рассказывать Егор, пока Денис рассматривал экран, – есть некая комбинация – подтверждение, что можно спокойно переходить к следующей фазе: взлет, набор высоты, посадка и так далее. Код передается с земли посредством довольно старой системы связи, где текстовое сообщение шифруется по принципу телекса. Нейросеть с самолета отправляет данные, что все в порядке, а автоматизированная система на земле подтверждает, что можно переходить к следующему этапу. Это дополнительный контроль на случай непредвиденных действий нейросети. Все-таки обучаемость и самостоятельность у нее очень высокая, надо быть уверенными, что она не будет принимать решений, к которым мы не готовы. Если система внизу видит, что самолет, например, сбился с курса, то она передаст сигнал для перехода на удаленное управление с земли. Так вот на тестировании при передаче сообщения, когда самолет взлетел, произошел сбой. Сигнал был получен, и наша нейросеть отключилась. Система тогда еще работала в тестовом режиме и заодно собирала полетные данные для обучения, а все ее действия пересматривал пилот. В один момент все вырубилось. Пилот быстро ушел на ручное управление, благо и самолет был грузовой. Но если система будет требовать участия человека, то сам проект бессмысленен, никакой новации не получится. Подобный сбой на беспилотнике, привел бы к крушению самолета или как минимум к переключению на управление с земли, которое пока для первых выпусков продукции планируют оставлять, чтобы пассажиры не пугались. Сам понимаешь, самолеты, управляемые нейросетью, для наших людей нескоро станут нормой. Ну вот я и заинтересовался, что это за символы «3AC1A3».
– Почему ты говоришь «Эс»? Вы разве не на латинице сигналы передаете?
– Вообще, обычно на латинице. Но на кириллице тоже можно, наши специально дорабатывали. Я уже посмотрел, не было ли в тот момент ошибки и не ввели ли случайно какую-нибудь из букв на кириллице. Потому что при проверке из-за сбоя мы могли посмотреть лишь итоговую команду, полученную самолетом в виде текста на экране. Я не представляю, как ее случайно можно было бы заменить. Для этого нужно лезть в исходный код, а у нас лишь у единиц есть к нему доступ. Простые программисты в основном доработками функционала занимаются. Но я все равно проверил комбинации из букв разных алфавитов на компьютерной модели, там можно посмотреть. Если код неправильный, то нейросеть просто показывает, что нужный сигнал-комбинация не получен и посылает запрос на подтверждение, продолжая при этом полет на основе собственного алгоритма действия. И никакого отключения не происходит. При многократных запросах и отсутствии связи с землей, на самолете срабатывает аварийный протокол, заставляющий самолет отправить сигнал в ближайший аэропорт для захода на посадку.
Егор прекратил говорить, заметив, что Денис уже отвлеченно смотрит по сторонам. «Эмоция – скука». Надо завершать разговор.
– В общем, буду разбираться, – произнес Егор и повернулся обратно к монитору.