Я снова и снова создавал то, что уже существовало

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

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

Поводы всегда звучат убедительно

Аргументы в пользу того, чтобы сделать самому, придумать никогда не сложно. Мой вариант лучше подойдёт под мои конкретные нужды, чем универсальный инструмент. Я буду понимать его целиком, до каждой строки, вместо того чтобы доверять чёрному ящику. У существующего варианта есть недостатки и раздражающие мелочи, которых я смогу избежать. Я не хочу брать на себя зависимость, чехарду версий, чужие решения, зашитые внутри.

Каждый из этих аргументов иногда по-настоящему верен. Именно это и делает их такими опасными. Потому что в большинстве случаев это вовсе не настоящая причина — это респектабельно звучащее прикрытие для мотива, который не имеет ничего общего с тем, что лучше для проекта.

Создавать веселее, чем интегрировать

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

Поэтому я тянулся к «да я просто сам это сделаю» не потому, что это был правильный выбор, а потому, что он был более приятным. А затем — и это ключевой момент — я наряжал это предпочтение в язык инженерного суждения, преподнося решение, продиктованное тем, чем я хотел заниматься, так, будто оно было продиктовано тем, что нужно проекту. Рационализации были искренними. И при этом они были, по большей части, костюмом.

Цена была той проблемой, которая на самом деле была моей

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

Это была та работа, над которой собирался трудиться только я. Мир уже решил задачу общей инфраструктуры; мою же настоящую задачу не собирался решать никто, кроме меня. А я сидел и тратил свой самый дефицитный и самый ценный ресурс — ограниченный запас сосредоточенного внимания — именно на те части, которые нуждались в нём меньше всего, пока та часть, которой он был нужен весь, ждала. Я перевернул всё ровно наоборот.

Переизобретение — это налог, который платишь вечно

Чего я ещё недооценил, так это того, что создание собственной версии — не разовая трата. Это бессрочное обязательство. Самодельный инструмент теперь твой — его поддерживать, отлаживать, расширять и документировать, вечно, в одиночку. Нет сообщества, которое находит и исправляет его ошибки. Нет документации, кроме той, что напишешь сам. Не у кого спросить, когда он ломается так, как ты не понимаешь, потому что единственный эксперт в мире — это ты, а ты уже забыл, как он работает.

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

Когда сделать самому действительно правильно

Справедливости ради, я не хочу впадать в крайность «никогда ничего не создавай». Иногда сделать самому — действительно правильный выбор. Когда то, о чём идёт речь, и есть твоя ключевая задача, та самая трудная её часть, тогда, разумеется, ты её делаешь — это и есть работа. Когда адекватного варианта не существует. Когда существующие варианты по-настоящему, конкретно не подходят по причине, которую ты можешь чётко сформулировать и отстоять.

Этот последний пункт стал моим тестом, и тест этот полезный. Прежде чем создавать замену тому, что уже существует, я теперь заставляю себя сформулировать, конкретно и вслух, почему именно каждый существующий вариант не годится для моей реальной нужды. Не «я предпочитаю свой». Не «их вариант раздражает». Конкретная, отстаиваемая причина. Если я не могу её привести — а гораздо чаще, чем мне хотелось бы, я не могу, — значит, я принимаю не инженерное решение. Я рационализирую более весёлый выбор, и мне следует пойти поскучать и воспользоваться тем, что уже работает.

Трать свою оригинальность там, где она нужна

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

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

Более глубокий урок: цель — это пункт назначения, а не средство передвижения

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

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

— Никаких сигналов, никакой доходности, не инвестиционная рекомендация.