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

Начало


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

Мы вели дискуссии с сотнями разработчиков, занятых в индустрии, анализировали тренды, читали Hacker News как одержимые, пока наконец не определили идеальный стек для своего стартапа. Сказать, что мы серьёзно подошли к сбору информации – это ничего не сказать.

Заручившись достаточной финансовой поддержкой, мы взялись за дело. Подбор сотрудников – ключевой фактор успеха для стартапа, и мы провели его на высшем уровне. Мы установили планку очень высоко – на собеседования приглашались только разработчики, которые могли предъявить популярные проекты с открытым кодом. Главным параметром, по которому мы оценивали кандидатов, был рейтинг на GitHub – эта схема оказалась крайне эффективной.

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

За короткий срок нам удалось создать великолепную архитектуру. Элегантная кодовая база, микросервисы, оркестровка, управление конфигурациями – всё гармонично слилось в единую симфонию. Приложение было распределённым, с балансировкой нагрузки, хорошей отказоустойчивостью и тщательным мониторингом, результаты которого можно было видеть на множестве графиков и дашбордов.

Но мы не собирались останавливаться на достигнутом. Мы переписали микросервисы, изначально созданные на Node, на Go, затем на C++, а потом обратно на Node. На каждом этапе производительность улучшалась на 20%. Возможности нашей команды просто потрясали!

Мы отложили релиз на два месяца, чтобы довести до совершенства систему сборки. В окончательной версии использовались Github Actions, Bitbucket Pipelines, Gitlab CI и кластер инстансов Jenkins, размещённых на AWS. Мы своими руками сделали распределённую систему управления во избежание малейших сбоев в координации. Деплой этой системы проводился при помощи всё той же инфраструктуры сборки. Просто магия какая-то.

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

Собираются тучи


Мы подняли занавес: объявили о релизе на Твиттере и в Инстаграме, разместили новость на Hacker News, написали статью на Medium. Но, как мы ни старались, пользователи не шли.

Команда упала духом – ведь мы столько труда вложили в триумфальный дебют, а он сорвался. После серии срочных сборов с невесёлыми обсуждениями было принято решение. Мы должны переписать всё на $КРУТОЙЯЗЫК.

Перевести всю кодовую базу разом на другой язык – задача невероятной сложности. Но нашей команде всё по плечу. В нашем распоряжении были самые талантливые разработчики, самое лучше тестовое покрытие, самая элегантная система сборки. Мы трезво оценивали свои силы.

Спустя пару месяцев работы по двенадцатичасовым сменам мы завершили процесс. Все понимали: этот шанс будет для нас последним. Пришло время показать миру, на что мы способны.

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

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

Чему мы научились


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

Мы просто не сумели угнаться за темпами развития рынка. $КРУТОЙЯЗЫК уже стал клониться к закату, когда подоспела вторая итерация нашего продукта. Если бы нам удалось привлечь больше инвестиций, мы бы не стали торопиться и переписали приложение сразу на $ЭЛИТНЫЙЯЗЫК. Наш стартап мог бы стать единорогом.