Kitabı oxu: «Новый день. Рассказы. Часть вторая»
Середина

К середине осени «Камин» перестал быть красивой идеей. Это случилось не в один день и даже не после какого-нибудь особенно неудачного теста. Просто однажды утром я вошёл в переговорную и вместо красивой идеи и образа конечного продукта увидел обычную рутинную работу. Ещё месяц назад стеклянная стена была заклеена листами почти до потолка: память, голос, история человека, практики, маршруты, переходы — целая страна, которую я каким-то образом уже успел обойти в голове и теперь собирался показать остальным. Тогда достаточно было отойти на несколько шагов, посмотреть на разноцветные стрелки, и внутри появлялось знакомое возбуждение: всё связывалось, одно тянуло другое, за каждым листом открывался следующий, и казалось, что главное уже произошло — мы поняли, что строим. Теперь половина этой страны лежала в прозрачной папке на шкафу. Несколько листов остались на стекле, один отклеился с угла и слегка подрагивал каждый раз, когда включался кондиционер. Под ними висела распечатанная таблица с результатами тестов: семь зелёных строк, двадцать одна жёлтая и девять красных. Красные почти не двигались.
В тот понедельник я приехал раньше остальных. За окном начинался дождь, ещё ленивый, не решивший, будет ли из него настоящий осенний ливень или он так и останется несколькими тёмными дорожками на стекле. В офисе было непривычно тихо; только кофемашина в коридоре долго прогревалась с таким низким металлическим гулом, будто ей предстояло не сварить четыре чашки, а запустить энергоблок. Я включил свет в переговорной, сел напротив таблицы и снова прочитал одну из красных строк: «Финальный итог звучит так, будто система лучше человека знает, что с ним произошло». Формулировка принадлежала Ане. В пятницу я хотел заменить её на что-нибудь профессиональное — про избыточную интерпретацию пользовательского контекста, — но потом оставил. Если четыре дня не можешь исправить проблему, по крайней мере полезно не прятать её за словами, которые делают её умнее.
Код открылся на том же месте, где я закрыл его в субботу. Я некоторое время смотрел на ветвление разговора и почти сразу увидел решение: мы слишком рано собирали итог, ещё до того, как становилось понятно, нужен ли он человеку вообще. Если сначала определить, появился ли у него собственный следующий шаг, потом проверить, хочет ли он что-то сохранить, и только после этого формировать финал, половина нашего навязчивого умничанья должна исчезнуть сама собой. Решение было настолько очевидным, что я даже испытал то короткое удовольствие, которое всегда испытываешь перед исправлением чужой — или вчерашней собственной — глупости. Уже положил пальцы на клавиатуру, когда за спиной открылась дверь. Илья вошёл с мокрым рюкзаком на одном плече; на тёмной куртке блестели мелкие капли. Он сделал несколько шагов, увидел мой экран и неожиданно замедлился.
— Максим, только ничего пока не трогай.
Фраза была произнесена спокойно, почти между делом, но внутри сразу поднялось старое, прекрасно отлаженное возражение: с какого именно утра разработчики начали запрещать мне трогать мой собственный продукт? Я повернулся. Илья уже снимал куртку и, кажется, по моему лицу понял всё, что я ещё не успел сказать.
— Не в смысле «не трогай вообще», — добавил он. — В смысле сначала посмотри.
Он кивнул на соседнюю переговорную. Там сидела Аня. Перед ней стоял кофе, рядом лежал телефон экраном вниз, а на ноутбуке был открыт тот самый участок, который я собирался сейчас переделывать. Пока я ехал через мокрый город и мысленно переставлял блоки, они уже сделали почти то же самое. Не идеально. В одном месте я сразу увидел лишнюю проверку, в другом, наоборот, не хватало ограничения. Потом дошёл до куска, который Илья вообще выкинул, и уже приготовился объяснить, зачем тот нужен, но перечитал входные условия и понял, что в новой версии он действительно больше ничего не меняет.
— Здесь почему убрал? — спросил я скорее по инерции.
Илья подкатил кресло, наклонился через моё плечо и показал две строки выше.
— Потому что после этого состояния проверка уже пустая. Раньше влияла, сейчас нет. Если вернуть, только ещё один проход добавим.
Я ещё раз посмотрел. Он был прав.
— Ладно.
Аня отпила кофе и подняла глаза.
— Это настоящее «ладно»?
— А какие ещё бывают?
— Бывает ваше рабочее: «ладно, сейчас все уйдут, и я верну как было».
Илья отвернулся к окну, но плечи у него дрогнули. Я тоже усмехнулся. Всё было нормально. Более того, всё было именно так, как должно быть в нормальной команде. Люди пришли раньше, увидели проблему и исправили её, не дожидаясь, пока я войду в комнату и разрешу миру двигаться дальше. Только где-то внутри ещё несколько секунд оставалось странное ощущение, словно я долго нёс тяжёлую сумку, её у меня наконец забрали, а рука всё равно продолжала помнить вес.
У каждого проекта, наверное, есть возраст, когда о нём особенно приятно рассказывать. Он ещё ничего толком не умеет, зато в нём видно всё, чем он может стать. Тогда любую недостающую функцию легко назвать будущим развитием, любую дыру — архитектурным решением, которое мы просто пока не успели реализовать, а слово «масштабирование» вообще способно прикрыть половину человеческих грехов. «Камин» этот возраст прошёл. Он уже существовал настолько, чтобы не позволять нам придумывать за него оправдания. Люди заходили внутрь, разговаривали, иногда возвращались. Один мужчина написал, что после нашего разговора впервые нормально поговорил с сыном. Другой спросил, зачем система трижды повторяет его собственные мысли другими словами. Женщина из Петербурга пользовалась два вечера, а потом прислала замечание: «В целом хорошо, но в одном месте хотелось сказать ему: отстань от меня». Мы минут десять обсуждали, считать ли это провалом или признаком того, что продукт стал достаточно живым, чтобы его можно было послать.
Потом появились таблицы. Сколько человек вошло. Сколько дошло до конца. На каком месте ушли. Что сохранили. Что удалили. Вернулись ли через день. Сначала каждое новое сообщение мы читали вслух почти торжественно, потом их стало достаточно много, чтобы превратиться в работу. А работа, как выяснилось, состояла не из больших решений. Мы второй день спорили, как назвать последнюю кнопку. Аня настаивала на «Оставить себе», потому что «Сохранить» напоминало ей браузер. Олег утверждал, что «Оставить себе» звучит так, будто мы предлагаем человеку бесплатно унести гостиничный халат. Илья говорил, что ему всё равно, лишь бы мы наконец выбрали хоть что-нибудь и больше к этому не возвращались. Я не соглашался со всеми тремя и к концу сороковой минуты неожиданно поймал себя на том, что уже не слушаю разговор, а смотрю в окно.
Город за стеклом был мокрым и серым. Машины медленно расталкивали воду колёсами, внизу дворник длинной резиновой щёткой сгонял лужу к решётке, и мне вдруг отчаянно захотелось нормальной большой задачи — такой, которую можно увидеть целиком. Встать перед ней, развернуть чертёж, собрать людей и понять, где именно ошибка. Не угадывать по чужому сообщению, почему человеку «как-то не так», не спорить второй день о трёх словах на кнопке, а измерить, посчитать, принять решение. В этот момент телефон завибрировал. Сергей говорил с объекта, и первые несколько секунд вместо приветствия я слышал удары металла, визг дисковой пилы и чей-то далёкий голос, пытавшийся перекричать всё сразу.
— Ты где?
— В офисе.
— Приезжай. У нас опять проектирование победило строительство.
Я посмотрел на экран, где всё ещё висели два варианта последней кнопки.
— Что случилось?
— Потолок не помещается.
Это было почти облегчением.
На объекте под перекрытием сошлись сразу несколько человеческих амбиций. Прямоугольный воздуховод хотел пройти там, где уже лежал кабельный лоток. Электрики были уверены, что пришли первыми, вентиляционщики доказывали, что их отметки согласованы три месяца назад, дизайнер спокойно показывал письмо, из которого следовало, что декоративный карниз опустили ещё в сентябре и все, конечно же, об этом знали. На чертеже системы существовали в идеальном мире и прекрасно уживались друг с другом. В построенном доме они встретились физически и обнаружили, что место одно.
Я минуту слушал спор, потом поставил каску на голову, залез на стремянку и посмотрел сверху. Балка мешала вентиляции только на коротком участке. Лоток можно было прижать ближе к стене. Спринклер проходил между ними. Карниз вообще никому не мешал, если перестать считать его преступником только потому, что он оказался последним изменением. Проектировщик сначала спорил, потом открыл планшет и стал считать. Электрик держал рулетку. Сергей стоял внизу и светил телефоном не туда, куда просили, одновременно комментируя наши действия с видом человека, без которого инженерная мысль человечества остановилась бы ещё на римских акведуках. Через двадцать минут всё сошлось. Не идеально, не так красиво, как на первоначальной модели, зато в реальном потолке, который можно было закрывать и больше к нему не возвращаться.
Когда остальные разошлись, Сергей задержался у лестницы. Воздух здесь был холоднее, чем в офисе, и пах сырой древесиной, бетоном и металлической пылью; после нескольких часов перед монитором всё это воспринималось почти как возвращение в нормальный мир. Я снял каску, провёл ладонью по волосам и ещё раз посмотрел наверх, где проектировщик фотографировал новый узел.
— Вот объясни мне одну вещь, — сказал Сергей.
— Только не про потолок. Я его уже простил.
Он усмехнулся, но не ушёл в шутку.
— Ты зачем всё это до сих пор делаешь на чужих объектах?
Я посмотрел на него, не понимая, куда он клонит.
Сергей говорил медленно, без обычной своей торопливости. Я всё равно собираю проектировщиков, всё равно проверяю инженерию, договариваюсь с подрядчиками, разговариваю с заказчиками и в конце отвечаю за чужие ошибки так, будто объект мой. Только решения принимаются в нескольких разных конторах, деньги распределяются в других местах, а ко мне всё равно приходят, когда то, что прекрасно существовало на бумаге, сталкивается в одном потолке.
— Очень вдохновляющая речь, — сказал я. — Осталось только поставить рядом кассу.
— Весной у меня Истра.
Я знал участок. Большой дом на сложном рельефе, хороший бюджет, заказчик без желания экономить на каждом кабеле.
— И?
— Проект ещё не начали. Если соберёшь нормальную команду, отдам тебе весь цикл.
Он произнёс это просто, словно предлагал встретиться на обед.
— Какой именно цикл?
— Рабочка, инженерия, комплектация, стройка. Архитектор останется заказчика. Всё остальное твоё.
На секунду лестничный пролёт действительно стал тише. Где-то наверху ещё работала пила, люди ходили, хлопали двери, но всё это отступило. Передо мной вдруг открылось пространство — не мечта, не разговор «когда-нибудь надо бы сделать своё», а вполне конкретная конструкция. Проектирование, инженерная координация, сметы, закупки, стройка, приёмка, пусконаладка. Один центр ответственности вместо вечной передачи вины из одной папки в другую. Я уже видел людей, которых можно было позвать. Одного — на инженерию. Другого — на стройку. Третьего давно хотел переманить, но до сих пор не понимал куда.
Сергей наблюдал за мной и наконец рассмеялся.
— Всё. Уехал.
— Куда?
Он постучал пальцем по своему виску.
— Уже компанию открыл.
В машине я не поехал сразу. Дождь почти закончился, но с мокрых деревьев ещё падали крупные тяжёлые капли, разбиваясь о крышу. За строительным забором двое рабочих пытались натянуть тент на пачку утеплителя; ветер подхватывал край, вырывал из рук, и они с каждым разом начинали сначала, ругаясь всё выразительнее. Я открыл телефон и написал в заметках: «СВОЯ КОМПАНИЯ». Ниже — «Проектирование + строительство». Потом ещё одну строку: «Один ответственный контур». Через несколько минут простой список начал разрастаться: рабочая документация, инженерия, координация разделов, сметы, закупки, контроль качества, пусконаладка, гарантия. Заметка быстро стала тесной, я открыл новый файл и начал двигать по экрану прямоугольники. Проектирование слева, стройка справа, между ними технический руководитель; ниже закупки, график, деньги. Всё вставало на свои места удивительно легко, словно система давно существовала где-то внутри, а Сергей всего лишь дал ей повод проявиться.
Чем больше становилась схема, тем сильнее возвращалось состояние, которого мне не хватало последние недели. Здесь всё снова было возможно. Ни одного сорванного срока. Ни одного сотрудника, которому приходится повторять очевидное. Ни одного заказчика, который в прошлом месяце утвердил один вариант, а сегодня уверенно объясняет, что всю жизнь хотел другой. На чистом листе никто ещё не успел испортить систему, а система — людей. Я видел путь целиком: первый звонок, встреча, техническое задание, проект, стройка, ключи от готового дома. Видел, где обычно исчезает ответственность и как её можно не отпускать. Видел даже кабинет, хотя офиса у компании ещё не было. Самое прекрасное в новом начале — оно некоторое время не сопротивляется. Ты двигаешь элементы, и они остаются там, куда поставил.
Телефон завибрировал в руке. Аня спрашивала: «Ты сегодня вернёшься? В 17:30 тест». Я посмотрел на часы — без четырнадцати пять. До офиса было минут сорок, если Москва вдруг решит проявить милосердие, и больше часа, если останется собой. На экране лежала чистая схема будущей компании. В офисе ждали девять красных строк, три спорных формулировки и кнопка, название которой четверо взрослых людей не могли выбрать второй день. Я написал: «Да. Еду». Отправил сообщение, убрал телефон на соседнее сиденье и только после этого понял, насколько сильно мне не хочется туда возвращаться.
Тест прошёл почти хорошо, а почти хороший тест оказался хуже провального. Если всё ломается, появляется авария. Аварии я понимал: у них есть границы, причина, точка приложения силы. Здесь человек разговаривал восемнадцать минут, не закрыл страницу, отвечал подробно, дошёл до самого конца и уже после написал: «До последней части было нормально. Потом как будто вы рассказали мне, что я должен был почувствовать». Аня прочитала сообщение дважды. Илья медленно провёл ладонью по лицу. Олег, ничего не говоря, поднялся за кофе. Я смотрел на вполне исправный разговор и чувствовал, как внутри накапливается раздражение — не на человека, конечно, а на саму вязкость работы, в которой нельзя подняться на стремянку, приложить рулетку и через двадцать минут показать всем конкретные восемьдесят миллиметров, из-за которых не сходится потолок.
— Значит, убираем итог, — сказал я.
Илья не возразил. Просто посмотрел на меня, и этого оказалось достаточно.
— Не весь, — добавил я уже спокойнее. — Только здесь.
Аня прокрутила разговор вверх.
— А если проблема не в итоге?
— Он же про последнюю часть пишет.
— Пишет. Но посмотри, как он отвечал до этого.
Мы стали читать заново. Не отдельные реплики — весь рисунок разговора. В начале человек писал длинно, потом ответы стали короче, ещё через несколько сообщений он начал только соглашаться. Система формально ничего не нарушала, не навязывала решения, не придумывала фактов, но где-то незаметно перестала идти рядом и начала вести. Финал просто сделал это очевидным. Через час мы нашли место, после которого разговор менял тон. Через два — поняли, что не знаем, чем его заменить.
Около девяти Аня закрыла ноутбук и некоторое время просто сидела, глядя на своё отражение в тёмном окне. Илья сложил провода в рюкзак. Олег давно перестал пить кофе и теперь грел ладони о пустой картонный стакан. Работа не закончилась; она просто дошла до того состояния, когда ещё один час перестаёт делать людей умнее.
— Завтра? — спросил Илья.
Ответ «я ещё посижу» уже почти вышел наружу. Так было проще. Они уйдут, станет тихо, никто не будет отвлекать, я ещё раз пройду всю ветку, найду точку, перепишу. Если понадобится — до ночи. Если понадобится — до утра. Старый рабочий механизм включался без усилий, как хорошо обслуженный двигатель.
Но перед глазами вдруг возникло утро: Илья, стоящий возле моего ноутбука, и исправленный без меня кусок. Потом Аня, которая первой увидела, где сегодня меняется тон разговора. Олег, договорившийся с новыми тестировщиками, пока я ездил на объект. Они не бросали работу. Они просто собирались продолжить её завтра.
Я закрыл ноутбук.
— Завтра.
Илья секунду смотрел на меня, потом на закрытый экран.
— Уверен?
— Не порть момент.
Он засмеялся, и мы выключили свет.
Дома Лариса сидела на кухне среди небольших металлических образцов. Под лампой лежали три прямоугольника почти одинакового оттенка, и я сначала даже не понял, чем они отличаются. Она брала один, прикладывала к другому, отходила немного в сторону и снова смотрела. На плите стоял суп. Я налил себе тарелку и сел напротив, а она, не отрываясь от своих образцов, сказала, что тот, который ей прислали как «тёплую бронзу», на самом деле жёлтый и жить с ним она не собирается.
— Это латунь, — заметил я.
Лариса подняла глаза.
— Ты сегодня пришёл раньше, чтобы объяснить мне свойства латуни?
— Я много чего умею.
— Я знаю. Иногда даже мешает.
Мы улыбнулись и снова занялись каждый своим. Я ел суп, она переставляла металл. Через несколько минут телефон загорелся сообщением Сергея: «Ну что, директор?» Лариса заметила раньше меня и спросила, куда меня уже назначили. Я рассказал про Истру, про полный цикл, про проектирование и стройку в одной компании, про людей, которых можно собрать, про то, что нормальная координация сама по себе сегодня почти становится отдельным продуктом. Говорил дольше, чем собирался, и, кажется, впервые за весь день снова почувствовал то же возбуждение, что в машине.
Лариса слушала спокойно. Не спрашивала о доходности, не интересовалась бизнес-планом, не стала объяснять мне, почему это правильно или неправильно. Когда я закончил, она взяла самый тёмный образец, повертела между пальцами и спросила:
— А ты хочешь?
Вопрос оказался настолько простым, что все приготовленные доводы мгновенно стали ненужными. Я хотел рассказать про опыт, рынок, людей, ошибки подрядчиков, про то, сколько лет уже фактически занимаюсь половиной этого бизнеса внутри чужих компаний. Но она спросила не об этом.
— Хочу.
— Тогда хорошо.
И снова вернулась к металлу.
— Этот спокойнее, да?
Я посмотрел на два образца.
— Этот.
— Вот и мне кажется.
На этом разговор о компании закончился. Не был решён, не получил плана действий и сроков. Просто закончился, оставив после себя одно короткое «хочу», которое почему-то весило больше всей схемы в телефоне.
Ночью я всё-таки открыл её. Не смог не открыть. Большой экран светился в тёмной комнате, и будущая компания выглядела ещё убедительнее, чем в машине. Я добавил этапы, разложил ответственность, начал вписывать людей. Под одними фамилиями сразу появились должности, возле других — знаки вопроса. В центре схемы поставил прямоугольник с собственным именем и протянул от него стрелки к проектированию, стройке, заказчику, закупкам, деньгам, контролю. Через несколько минут экран напоминал диспетчерский пульт: всё сходилось ко мне. Если проектировщик ошибётся — увижу. Если подрядчик задержится — узнаю. Если заказчик передумает — решение всё равно пройдёт через одну точку. Надёжно. Понятно. Красиво.