Я искал идеальный инструмент, затем гнался за скоростью. Теперь я ищу «срединный путь»

Эта статья — заметка из дневника разработчика, который решил стать соло-предпринимателем. Прошлая заметка тут.

Я искал идеальный инструмент, затем гнался за скоростью. Теперь я ищу «срединный путь»

Баланс между качеством кода и скоростью разработки в соло-продукте — это не про компромисс. Это про зрелость.

Сейчас я занимаюсь разработкой своего проекта, связанного с искусственными интеллектом «Нейра».

Иногда пишу заметки о нем в своем блоге в телеграме.

В серии этих статей я делюсь с моими мыслями и идеями, которые мне приходят во время работы над своим проектом.

Когда ты делаешь продукт один, у тебя есть только две валюты: время и энергия.

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

Я пожил в обоих крайностях и теперь пробую середину. Не потому что она лучше, а потому что иначе — очень сложно работать.

Сначала я делал «как правильно»

Когда я начинал свои проекты раньше, я был одержим качеством. Долго выбирал стек, проектировал структуру, подбирал фреймворк и правильный формат названий для файлов.

Мне казалось: если сейчас заложу прочный фундамент, потом смогу расти без ограничений.

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

Потом я ушёл в другую крайность: «пофиг, главное — быстрее»

В одном из своих очередных проектов я решил: «хватит, пора запускаться».

Быстро, по-живому, на костылях — но запускаться. Я стал фигачить интерфейс, накидывать фичи, собирать всё в Telegram-боте. Архитектуру отложил. Оставил «TODO переделать» и пошёл дальше.

Это сработало. Появились первые отклики, первые лиды и даже первые оплаты. Но вместе с этим — и первые проблемы.

Код стал вязким. Каждый новый шаг требовал слишком много усилий. Хотелось идти вперёд, а приходилось раскапывать завалы, оставленные в спешке.

Сейчас я пробую третий путь: не идеальный, но все такой же живой

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

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

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

Важно — не выгореть в своём же проекте

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

Код — не цель, все таки на первом месте стоит продукт. Это среда, где я провожу большую часть своего времени и хочется, чтобы в этой среде было комфортно.

Сейчас я всё ещё в процессе. Продукт постепенно обретает форму и в коде становится меньше хаоса, но самое главное приоритеты — яснее.

Не все идеально, но я начал лучше понимать, как работать в своем ритме, без перегибов и самообмана.

Если ты тоже делаешь продукт в одиночку, вот что помогает мне держать баланс:

Не игнорируй архитектуру, даже если хочется просто «накидать и запустить»

В долгосрочной перспективе, когда нужно будет вносить правки это будет намного сильнее заметно.

Вместе с этим не выливай код, если идея ещё не прошла проверку

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

Оставляй себе «хлебные крошки» в виде TODO или пометок, но без фанатизма

Часто при реализации есть возможность углубиться и проработать решение. Чтобы сэкономить время себе в будущем оставляй осмысленные комментарии, которые объясняют мотивацию и подводные камни. Наоборот, смысла в комментариях вроде «объявляем переменную "пользователь"» смысла не несет абсолютно и только создает лишний шум.

Выделяй время на осмысление проекта в целом, а не только на фичи и код

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

Может, твой путь будет другим. Но если ты тоже ищешь баланс между скоростью и качеством — ты не один.

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

Начать дискуссию