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