Ладно бы в мелочи — всякое бывает. Иногда, впрочем, и концептуальные вопросы требовали консультации и обсуждения. Но не в этом случае. С кодом этого годового проекта Игорь чувствовал себя едва ли не единым целым.
Именно поэтому он всю ночь читал написанные от руки — программист ещё! — предложения и требования Всеволода. Ольшанский подозревал, что пытающаяся уснуть Саша была не в восторге от его возмущённых фырканий, то и дело доносившихся из кухни, и не радовалась горевшему яркому свету, но претензий она не предъявляла, да и вообще, предпочитала смириться.
А может, понимала, в каком он состоянии, по той причине, что и сама отреагировала бы схоже.
Тем не менее, утром Игорь напоминал если не зомби, то что-то к тому состоянию стремившееся. Под его глазами залегли тёмные круги, правая рука едва заметно дёргалась в попытке что-то сдавить — чужое горло, например, — а маниакальное выражение лица, столь знакомое всем его подчинённым из команды, предвещало беду.
Они расселись по местам. У всех — у Саши в том числе, — был готов доклад об успешно проделанной за вчера работе, и каждый с удовольствием отчитался бы, лишь бы получить возможность поскорее отсюда сбежать. Но Всеволод не позволил им замять конфликтную ситуацию. Ввалившись в комнату, он начал разговор с провокационного вопроса:
— Ну, как правки?
Игорь поднялся со своего места медленно. С одной стороны, это было признаком угрозы, с другой — того, что он не спал всю ночь. Его зелёные глаза сверкали, как у Магнуса, не евшего дня три.
— К сожалению, — Игорь заставил себя отвечать спокойно и уравновешенно, — мы не можем их принять. Они не вписываются в логику проекта.
— Логику проекта? — переспросил с некоторой самоуверенностью Всеволод. — Да ведь её вообще всю надо перекраивать! Там будет слишком много лишнего кода!
Код не бывает лишним. Не в его архитектурах. И Игорь согласился бы, что допустил ошибку, но ведь все коллеги видели этот план. Все его утвердили!
Игорь не сомневался, что мелкие недочёты были. Но то, что он увидел вчера…
— Мы не можем выстроить настолько зависимую систему, — он всё ещё сохранял спокойствие и мягкий, спокойный тон. — Потому что любая правка, внесённая в техническое задание, закончится в таком случае фиаско. Эта архитектура действительно весьма… экономна в плане количества кода, но она не приспособлена к реалиям работы. Полагаю, Всеволод, понимание придёт к тебе с опытом. Но для начала это было весьма талантливо, — Игорь был уверен в том, что выкрутился весьма дипломатично, и взгляды коллег это подтверждали. — А теперь перейдём к обсуждению работы на сегодняшний день…
— Но ведь, — не удержался Сева, — мы потратим намного больше времени на написание всех этих запасок, интерфейсов и прочей глупости, на разделение по множеству классов, чем если бы нам вдруг следовало приписать что-то из стороны!
Игорь сжал зубы. Терпение спешило покинуть его наедине с этим мальчишкой, и, кажется, у всех остальных тоже потихоньку сдавали нервы.
— К сожалению, — возразил он, — иногда допилить один маленький кусочек в строгую архитектуру, не позволяющую подключить гибкие элементы, не то что сложно — невозможно.
— Вписать её прямо в класс, да и всё!
В этот момент на Всеволода сочувствующе посмотрели все. Саша, кажется, после вздохнула, будто бы предвкушая будущий скандал, Егор втянул голову в плечи, Дима сделал вид, что внимательно читает надпись на чашке, а Пётр и Виктор притворились вовлечёнными в разговор на жестах.
Сева этого не заметил. Он даже расправил плечи, выпрямился во весь свой немалый рост и со взглядом грозного кролика сделал шаг навстречу Игорю.
Ольшанский вспомнил Сашины слова и, скептически скривившись, просто скрестил руки на груди. Он тоже стоял, со стороны, казалось, даже весьма расслабленно, и ошибочно можно было посчитать, будто бы Игоря ни капельки не взволновали заявления нового сотрудника.
— Всеволод, — невольно копируя преподавательский тон бабушки, вновь промолвил Игорь, — у нас нет времени на разборки. Твоя архитектура не мобильна, а потому — не слишком жизнеспособна в подобных проектах. И в ней откровенно смещён центр. Мы отталкиваемся не от визуальных эффектов, а от математической модели анализа.
— При том, что в техническом задании о матмодели ни слова! — возмутился Сева. — От нас вообще этого не требуют! Там надо просто интерфейс на каждый день!
— К сожалению, техническое задание не всегда, — да практически никогда, хотя Игорь не стал этого озвучивать, — соответствует порядку написания кода. Важно, что мы должны выполнить его, но как — это исключительно наше дело.
Игорь воззвал себя к равнодушию, раз уж просто спокойным быть не получалось. И смерил оценивающим взглядом оппонента. От этого у любого неопытного работника, кажется, должно было проснуться чувство самосохранения и страха перед большим начальством. Но, к сожалению, Всеволод страдал проблемами с самосохранением. Он с вызовом вскинул голову и заявил:
— Моя архитектура — лучше, а тут никто не хочет признать этого из-за авторитарного стиля руководства! Я отказываюсь делать лишнюю работу.
То, что Игорь тихо зарычал, заметили все.
Кроме Севы.
— Всеволод, — с нажимом промолвил он, — не стоит развивать конфликт. Ты уже вошёл в курс работы? Замечательно, пора браться за задачу.
— Я не буду этого делать, — ответил ему Сева. — Я намереваюсь пойти к Регине Михайловне, и пусть она сама примет решение, кто прав, а кто — нет. Потому что я предлагаю вариант, который в три раза уменьшит трудозатраты!..
Игорь смял лист бумаги в комок. Сжавшаяся в кулак ладонь тоже нисколько не смутила стажёра, и тот абсолютно уверенно смотрел в глаза начальству.
— Это… — Ольшанский с трудом сдержал гневную тираду, содержащую много нецензурных высказываний, которыми он не пользовался в обычной жизни, но вполне мог — на работе, сгоряча. — Это очень самонадеянно, Всеволод. Ты срываешь всем рабочий процесс.
Наверное, Сева намеревался уйти, громко хлопнув дверью. Витя поймал его за рукав и указал взглядом на стул, словно намекая, что пора бы и успокоиться.
— Но так же легче! — возмутился он в последний раз.
— В моих проектах не будет никакого дублирования кода! — взревел Игорь.
Дима втянул голову в плечи. Саша закатила глаза. Пётр и Виктор, как по приказу, отодвинулись от стола, чтобы сбежать было легче. Егор принялся теребить ручку, видимо, изучая её возможности для защиты.
— И никакой альтернативной архитектуры, основанной на глупых заявлениях вчерашнего студента! Я работаю тут уже не первый год и сдаю не первый проект, и не первый раз общаюсь с заказчиком, и какой-то самонадеянный придурок будет неделю тормозить всем работу и трепать мне нервы! Мало мне царапущего кота! Какое к чёрту мультинаследование?! Что за структура? Это не сишный код! Тут так не работает! — он швырнул папкой во Всеволода, и, выкричавшись, спокойно сел обратно на своё место. — Коллеги, — Игорь кашлянул, вспоминая о сорванном горле, — простите меня за повышенные тона, это было необходимо. У кого какие предложения, вопросы, замечания? Что там с завтрашним списком задач?
Сева прикрылся пойманной вовремя папкой и сделал вид, что его не существует.
266
10 августа 2017 года
Четверг
Игорь был уверен в том, что длительные беседы со Всеволодом уже закончились, и они смело приступят к работе. Утром они прогнали митинг стоя, в коридоре, за каких-то пять минут и тут же разбежались по своим местам. Всеволод получил собственное задание, вроде как послушно кивнул и отправился его выполнять. Это всем показалось хорошим знаком.
Ольшанский почти с нетерпением добрался до клавиатуры и ждал, пока прогрузится код. Ему хотелось поскорее разобраться с ревью, интегрировать полученные классы и продолжить выстраивать основную конструкцию.
Сегодня спина болела уже в разы меньше, и Игорь испытывал странное ощущение вдохновения. Он был уверен, что, если ему никто не будет мешать, справится сегодня с заданием на несколько дней вперёд.
…По системному блоку постучали чужие наманикюренные ногти.
Игорь вскинул голову.
— На тебя поступила жалоба, — вздохнула Регина Михайловна. — Наш стажёр убеждает, что ты тратишь время всех окружающих, пропихивая свой вариант решения.
— Что, прости?
На уважительное "простите" у него уже не хватило терпения. Начальница приняла фамильярное обращение как нечто само собой разумеющееся и только равнодушно пожала плечами.
— На тебя поступила жалоба, — уверенным, хорошо поставленным насмешливым голосом повторила она. — От Всеволода. Он убеждает меня — в письменной форме, обрати внимание, — что ты проигнорировал его новаторское решение и настоял на собственном, хотя оно приводит к написанию куда большего количества кода.
— И каков же, — ядовито поинтересовался Игорь, — будет ваш вердикт, Регина Михайловна?
— Ай, — отмахнулась женщина. — Пойдёмте в кабинет, Ольшанский. Пообщаемся там относительно вашего дурного поведения, — она оглянулась. — А где Магнус?
…Магнус нашёлся в кабинете. Он устроился в кресле Регины и спал, потому женщина приняла решение его не трогать и заняла самый обыкновенный гостевой стул. Их было несколько, и Игорь сел на второй свободный, стоявший по другую сторону стола.
— Можно продолжать на "ты", — вальяжно махнула рукой Регина, предвосхищая очередную "Михайловну". — Мы знакомы уже тысячу лет.
— Надо же, какая фамильярность, — фыркнул Игорь. — Ты действительно собираешься предъявлять мне претензии относительно архитектуры проекта?
Регина покачала головой и допустила ну просто невысказанную вольность — расстегнула третью пуговицу из тех двадцати семи, что были на её блузке. Это означало высшую степень доверия и то, что начальница была вновь прежней, такой, как до своей длительной отлучки.
— Я видела не один твой проект, — ответила Регина, — и никогда не имела к ним претензий. Я даже не сомневаюсь в том, что тот лишний код нужен. Но я впервые встречаюсь с таким упорством со стороны юноши, трудящегося у нас на фирме не более недели…
— Однако, я тоже.
Она щёлкнула пальцами, словно пыталась кого-то привлечь, хотя вокруг не было ни коллег, ни официантов.
— Мне это не нравится, — подытожила Регина. — Он лезет, мягко говоря, не в своё дело, и, я так понимаю, не выполняет свою работу. Но просто уволить — скучно, к тому же, его стартовый проект был довольно привлекателен.
— Только он писал его один и сам придумывал себе техническое задание, — язвительно протянул Игорь. — И от этого не представляет себе, что такое нормальный, полноценный проект, над котором много лет работает много людей.
— Не нервничай, — отмахнулась Регина. — Что-то я не вижу прежнего счастья, от которого ты весь прямо лучился. Девушка в коллективе — всегда неприятность…
— Кот в коллективе — вот что неприятность, — возразил он. — Спина после этой скотины царапающейся зажить уже почти неделю не может.
— Так вот оно что, — хмыкнула Регина. — Надо же. Но это не отменяет необходимости принять решение, — она выразительно посмотрела на дверь. — Дашь мне свою и его архитектуру? Послужу независимым экспертом.
— Да пожалуйста, — лениво ответил Игорь. — Перешлю свою по почте, а его вариант у меня не сохранился. Думаю, у него самого есть.
Регина тоже в этом не сомневалась.
— И ещё… — она посмотрела на него с каким-то весьма странным посылом, буквально чувствовавшемся во взгляде, и хитро-хитро улыбнулась. — Игорь, выпусти пар. У меня такое впечатление, что ты скоро кого-то искусаешь. Ты уверен, что в этом виноват именно Магнус?
— Вполне, — Ольшанский гневно взглянул на кота.
Тот поднял голову и ответил с присущим ему вызовом, словно напоминая, что не стоит винить посторонних во всех своих бедах. Игорь был с ним почти согласен: они с Магнусом оба знали, что дело совершенно не в царапинах, которые приносили уже не слишком-то ощутимый дискомфорт.
265
11 августа 2017 года
Пятница
…Крайне логичный совет Регины попал прямо в точку. Игорь пришёл к такому решению, впрочем, не сразу, а только на следующий день, с самого утра, после очередного столкновения у душа, когда Саша, как всегда, краснея, прошмыгнула мимо него, а потом делала вид, будто бы ничего не случилось. И он, обычно на работе смотревший только в код, ловил себя на том, что упрямо отрывает взгляд от кода и рассматривает Александру.
Он проигнорировал и Всеволода, пытающегося в очередной раз ткнуть ему под нос свою улучшенную архитектуру, и Егора с каким-то совершенно глупым вопросом, пообещав разобраться завтра, хотя завтра была суббота. К концу дня в коде не появилось ни единой новой строчки, Игорь старательно делал вид, будто бы столкнулся с багом и пытался определить, где он водится.
Баг водился в голове и в их вечных домашних неприятностях. Игорь вполне здраво предполагал, что исправить его можно было только одним способом, но вслух озвучивать подобные предложения Саше, разумеется, не решался.
Вернулись домой они, к тому же, очень поздно. Работали почти до девяти, потом, по причине пустующего холодильника, опять вынуждены были заглянуть во всё тот же ресторанчик, куда пускали с котами. Магнус в очередной раз съел три порции и выглядел совершенно счастливым, а Игорь убеждал себя, что просто считает пуговицы.
У него действительно была такая дурная привычка. Но если Регинина блузка, застёгиваемая наглухо, интересовала его исключительно как человека, проверяющего способности к устному счёту, то с Сашей дело было в другом. Она раньше уже надевала это платье, но Игорь как-то не замечал, что, вопреки трём рядам пуговиц, тянувшимся от декольте и до талии, наряд на вид достаточно откровенный. Когда он вынуждал себя отворачиваться и смотреть на ряды пуговиц на рукавах, то моментально соскальзывал на ряд на боку, а оттуда взгляд вновь смещался на декольте.
Проклятое платье и у Саши вызывало немало смущения. Они не собирались пить, особенно Игорь — от алкоголя он чувствовал себя развязнее и не настолько хорошо контролировал собственные действия, — но именно в этот вечер кому-то вздумалось делать подарок от шеф-повара, и им принесли два полных бокала.
Не то чтобы от нескольких глотков вина срывало крышу, или они взбирались по ступенькам в квартиру, держась за стены, нет. Но Саша немного расслабилась, а в ответ на не слишком мудрёные шутки — хихикала, как обыкновенная девушка, а не возвышенная богиня с далёкого Олимпа. Впрочем, насколько Игорь помнил, богини были куда более…
Простыми в отношениях с мужчинами.
В квартире царил полумрак. Уже, разумеется, стемнело, но во дворе светило множество фонарей, доносился до сих пор далёкий гул дороги — дом находился во дворах, — и из балкона можно было увидеть ряды других высоток, сверкающих яркими жёлтыми окошками.
Это выглядело романтично. Саша остановилась на мгновение у стола, как раз у балконной двери. Оттуда веяло прохладой летней ночи, и в квартире в кои-то веки было не слишком душно. Даже Магнус, соблазнившись на свежий воздух, перепрыгнул через порог и устроился в каких-то старых тряпках, оставшихся ещё после бабушки и до сих пор не вывезенных, и, кажется, уснул.
Повеяло ветром, и Игорь прикрыл дверь, а после, рискнув, повернул ручку. Он знал, что открыть изнутри балкон было невозможно, разве что выбивать окно, но Магнуса это не смутило. Тот поднял голову, сверкнул рыжими глазами, а после скрутился клубком, муркнул себе под нос и спокойно уснул, одобряя тюрьму на ночь.
Игорь повернулся к Саше. Во мраке он мог различать разве что очертания её тела, глаза пока ещё не привыкли к темноте, но фантазия и память услужливо подсовывали провокационные детали.
Пальцы сами по себе нашли те проклятые пуговицы на её правом боку, тянувшиеся к середине бедра, мелкие и синие, как и сама ткань — рассмотреть их было трудно, а вот наощупь пересчитать оказалось проще простого. Саша вздрогнула и вскинула голову; луна, услужливо заглядывающая в балконное окно, осветила черты её лица, бросая гротескные тени на всю комнату.