Как запустить ИТ-продукт за две недели без головной боли

Опыт автора Telegram-канала «Золото Бородача» Никиты Колмогорова, который запустил семь продуктов за 2019 год и довёл два до самоокупаемости. Без прикрас, смузи и планшетиков — только суровая правда.

В закладки
Аудио

Привет всем! Меня зовут Никита, и я серийный запускатор этих ваших продуктов в этих ваших интернетах. Я точно так же, как и вы, сидел бессонными ночами над одним из своих продуктов более двух лет (2015–2017 годы) и запустил его лишь для того, чтобы обнаружить, что спроса на продукт нет и никогда не было.

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

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

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

Если вы выберете неправильный технологический стек, ваш технологический долг настолько затормозит разработку, что очередной 20-летний вонаби обгонит вас по количеству полезных функций.

У большинства стартаперов-запускаторов есть ряд простых проблем, которые можно решить и тем самым уменьшить процесс запуска MVP (минимального жизнеспособного решения) с двух лет до двух недель.

Я не опечатался: да, вы можете запускать продукты за две недели, так я сделал в августе 2019 года, и уже вывел свой продукт на самоокупаемость. Так сделал я со вторым продуктом, которым сейчас пользуется более 2 млн человек.

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

Им я снова и снова объясняю одно и то же, вот, решил немного упорядочить знания и тем самым немного помочь сообществу. Помогаешь сообществу — помогаешь себе.

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

Заранее оговорюсь: пункты из этой статьи очень субъективны и являются исключительно мнением автора, основанном на личном опыте.

Например, я знаю уйму людей, запустивших свои сервисы за две недели на этом технологичном стеке, и знаю уйму людей, которые пишут свои проекты уже третий-четвёртый год на том же PHP.

Перед тем как начинать священную войну в комментариях, подумайте об эмпирических данных: ваше мнение основывается на вашем личном предпочтении языка программирования или на реальных примерах запуска продуктов быстро?

Перейдём непосредственно к основным ошибкам стартаперов, которые пытаются запустить свой ИТ-продукт.

Отсутствие технического опыта у основателей

Несомненно, есть люди, которые запустили свои успешные ИТ-продукты, не имея опыта программирования. Но не забывайте про ошибку выжившего: на одного такого человека приходится 10 тысяч людей, которые делали то же самое, но провалились.

Каков ваш шанс быть среди этих единиц? Правильно, 0, 01%. Готовы сделать свою ставку или предпочтёте играть с шансом победы в 85%? Тогда слушайте и делайте заметки очень внимательно.

Вам необходим минимум один фаундер со «шкурой в игре», который сможет (и хочет) всё своё свободное время тратить на этот проект.

Другой вариант — наёмный программист; но если вы выберете этот вариант, вы должны буквально следовать каждому из советов ниже.

И я имею в виду, следовать каждому совету ниже, чтобы увеличить свои шансы на успех. Если у вас нет фаундера с достаточной экспертизой именно в технологическом стеке, который вы выбрали, можете писать пропало, за две недели вы не запуститесь, как и за 4, 10, 20 и 40 недель. Через пару лет запуститесь криво-косо, никому не будете нужны.

Отсутствие чётких требований к продукту

«Мне нужно вот это, это, это, это, это, а ещё вот это, как же я мог про это забыть?»

Ваш продукт должен выполнять ровно одну вещь в самой первой версии. Плевать, что делают ваши конкуренты или как выглядит сейчас рынок, вы должны делать одну вещь, не больше и не меньше!

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

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

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

И добейте уже эту более быструю лошадь из примера с Ford (смотрите ссылку на ошибку выжившего выше).

Открою секрет: ваш продукт никогда не будет состоять из ровно одной фичи. Всегда будут дополнительные функции вроде мелких настроек и входа с регистрацией пользователей.

Все эти дополнительные функции нужно минимизировать. Поверьте, вам не нужен вход с паролем, логином и восстановлением пароля — вам нужны кнопки «Войти через Google» и «Войти через Facebook».

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

Отсутствие внятного и короткого технологического стека

Так, если вы хотите разрабатывать свой продукт годами и запуститься, когда никому ваш сервис уже не будет нужен, тогда я милости прошу вас в комментарии с фразами вроде «автор ничего не знает, я люблю PHP и всегда буду на нём писать, смотрите, Facebook на PHP (на самом деле нет) и "ВКонтакте" на PHP (на самом деле нет), и вообще это первый язык программирования, который я изучил, я не мог ошибаться тогда, когда у меня не было никакого опыта, я точно выбрал самый лучший язык программирования с первого раза, вперёд, PHP».

А если вы и вправду хотите запуститься за две недели и сразу проверить спрос на свою бизнес идею — да и делать так постоянно (это можно запустить 26 продуктов за год и проверить 26 бизнес-гипотез), тогда слушайте внимательно, записывайте и наматывайте на ус без возражений.

  • Вы всегда должны стремиться к минимизации количества написанного кода для достижения необходимой функциональности. Значит, вы выберите Koa вместо Express, Gin вместо Django, TypeScript вместо Go и так далее.
  • Вы не должны думать об оптимизации ресурсов до получения 100 тысяч пользователей. Значит, вам не нужны load balancers, Redis, а вместо AWS вы можете запустить простой и понятный дроплет на Digital Ocean.
  • Вам нужна типизация, чем строже, тем лучше. Если в языке программирования из вашего стека нет типов — о, бой! Вас будут ненавидеть все будущие программисты, которые будут тратить дополнительные часы на попытки расшифровать, что же там написали вы раньше. Типизация — дополнительная документация, необходимая любому продукту с более чем одним разработчиком. Стоит заметить, что вы сегодня и вы через полгода — это уже два разных разработчика.
  • Вам не нужна скорость и отзывчивость нативного пользовательского интерфейса. Возьмите кросс-платформенное решение, лучше React Native, для мобильных приложений. Вам нужно запуститься за две недели, а не разрабатывать продукт два года.
  • Господи-боже, не используйте PHP. Не слушайте людей, которые только PHP и знают, у них развито туннельное зрение. Я не буду доказывать этот пункт, просто поверьте. Либо посмотрите на этих бедняг, что запускают свои продукты на PHP уже несколько лет. Вам это не нужно, вам нужна скорость разработки.

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

На их основе я сделал стартер для бекенда, стартер для фронтенда и стартер для Telegram-ботов. Все сервисы я спокойно запускаю на Digital Ocean, деплой занимает от силы 15 минут. Статью о том, как я это делаю, я тоже написал. Итак, что же за волшебный стек?

  • Фронтенд: TypeScript + Vue + Vuex + Vuetify.
  • Бекенд: Node + TypeScript + Koa + koa-router-ts + MongoDB + Typegoose.
  • Мобайл: React Native + TypeScript + MobX.

Почему TypeScript? Потому что это JavaScript на стероидах. С более-менее строгими типами да с самыми новыми фичами ES (например, optional chaining).

Почему Vue? Потому что Angular и React заставляют вас писать больше кода как ни крути.

Почему MongoDB? Потому что до 1 млн пользователей вам неважно, есть ли join tables, а Mongo даёт незаметную автоматическую миграцию, простой синтаксис и строгие типы с Typegoose, простые решения индексации без необходимости что-либо конфигурировать вообще.

Почему Koa? Потому что Express, Gin, RoR либо заставляют писать больше кода, чем нужно, либо отстают в количестве крутых языковых фич вроде удобных декораторов.

Почему React Native? Потому что вам нужно запуститься за две недели, а не разрабатывать два нативных приложения (под iOS и под Android) в течение следующих двух лет.

Засуньте свое эго и мнение подальше: вашим пользователям нужна польза от приложения, быстро работающие кнопки и красивый пользовательский интерфейс не служат конкурентными преимуществами. Вам нужен не уродливый пользовательский интерфейс и разумно быстро работающие кнопки, это есть в React Native.

Почему MobX? Потому что Redux заставляет вас писать примерно в 100 раз больше кода, чем MobX. Вспомните эту фразу, когда в очередной раз будете писать никому не нужный редьюсер.

Отсутствие понимания спроса

Во-первых, давайте сразу обозначим: никто и никогда не украдёт вашу идею. Если вашу идею украдут, поздравляю, вы первый человек, с которым так поступили.

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

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

Если вы просто будете рассказывать о своей идее кому-то, вас просто погладят по голове и скажут «какой молодец». Вам не нужно «какой молодец», вам нужно сухое и суровое возражение от потенциального пользователя.

Пока вы не попросите реальные $20 за пользование сервисом, весь фидбек тоже будет виртуальным. Спрашивайте с людей деньги сразу, они вам прямо в лицо будут говорить, почему не хотят платить. В худшем случае вы получаете обратную связь, в лучшем — предзаказ.

Вы обязаны проверить спрос до начала разработки. Ну или, как я, просто разработайте за две недели MVP и сразу просите деньги за уже существующий сервис.

Делают так, как говорят победители, а не как делают победители

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

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

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

Заключение

Я сразу же приглашаю вас похоливарить в комментарии — если вас вывела из себя эта статья, это хорошо. Оставьте гневный отзыв ниже — это помогает статье выйти в топ.

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

Итак, что же нужно сделать, чтобы запустить MVP за две недели и проверить свою бизнес-гипотезу сравнительно дёшево?

  • Убедиться, что есть технический человек, который готов потратить всё своё свободное время на проект.
  • Выбрать ровно одну функцию, которую хотите разработать.
  • Выбрать правильный технологический стек, который минимизирует количество кода.
  • Убедиться, что на идею есть спрос.
  • Делать так, как делают победители, а не так, как они говорят.

Вот и всё, друзья! Надеюсь, хоть что-то полезное вы успели вынести из этой статьи. Запускайтесь за две недели, это весело, поверьте!

Материал опубликован пользователем.
Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Nikita Kolmogorov", "author_type": "self", "tags": ["\u0437\u0430\u043f\u0443\u0441\u043a\u0441\u0442\u0430\u0440\u0442\u0430\u043f\u0430","mvp"], "comments": 508, "likes": 153, "favorites": 759, "is_advertisement": false, "subsite_label": "life", "id": 95844, "is_wide": false, "is_ugc": true, "date": "Wed, 04 Dec 2019 18:22:14 +0300", "is_special": false }
0
{ "id": 95844, "author_id": 60968, "diff_limit": 1000, "urls": {"diff":"\/comments\/95844\/get","add":"\/comments\/95844\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/95844"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199123, "last_count_and_date": null }
508 комментариев
Популярные
По порядку
Написать комментарий...
31

Не понимаю восторженных отзывов.

 Ваш продукт должен выполнять ровно одну вещь в самой первой версии. Плевать, что делают ваши конкуренты или как выглядит сейчас рынок, вы должны делать одну вещь, не больше и не меньше!

Все продукты разные, для какого-то одной "вещи" хватит, а для какого-то и не хватит- очень странное ограничение на проверяемые в рамках MVP гипотезы.

Кроме того, не любой продукт (MVP) можно (и нужно) выпустить за 2 недели. Где там прототипирование, где дизайн? Какой смысл вообще так спешить, почему не 3 недели, почему не 4? 

Автор, можно без ссылок на вашу страницу, а сразу ссылку на успешные проекты? А то реально инфоцыганщиной несет.

Ответить
–10

Не понимайте, а мы будем понимать и запускать продукты за две недели. Это полное ваше право!

А на сайте, на который я даю ссылку, есть ещё и статистика всех проектов.

Ответить
11

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

Ответить
0

voicybot.com же!

Ответить
9

Ну, допустим, это полноценный ит-проект, что конечно не так, и допустим, им пользуется 2 миллиона человек, в чем я очень сильно сомневаюсь, но профит то с него какой, заработок реальный есть?

Ответить
–4

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

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

Вы противоречие сами себе. Ваша мотивация мне непонятна. Чего вы пытаетесь добиться комментариями? Что люди не будут читать статью? Так если она плохая — никто и не будет ее читать и делиться ей с друзьями.

Или вы пытаетесь как-то поднять свою позицию, опуская случайных авторов статей в интернете? Я вас огорчу, опускание других людей (особенно необоснованное) не выигрывает вам ни социальных очков, ни удовольствия в будущем. Токсичность ведёт только к саморазрушению.

Одумайтесь.

Ответить
1

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

И в чем смысл тогда лепить говно на коленке? 

Ответить
2

В том, чтобы приносить пользу?

Ответить
3

Каким это образом? Человек ищет нормальный сервис, а найдет двухнедельное говно

Ответить
0

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

Посмотрите, как минимум, на количество людей, добавивших статью в закладки :) ну или закрывайте глаза на очевидную пользу такого подхода и оставайтесь и дальше с 0 запущенных полезных проектов — ваше полное право.

Ответить
0

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

Ответить
0

Ну, попользовались, да. Но как так получается, что они продолжают пользоваться спустя месяц, полгода, год, два? :) Уверены, что сервисы недостаточно качественные?

Ответить
0

По правде я так ни одного и не увидел, но исходя из того что штука, слепленная за вечер называется it проектом, то примерно уровень представляю.

Ответить
0

Представляйте, сколько угодно — это ваше полное право. Идти против статистики и здравого смысла — это тоже ваше полное право :)

Ответить
{ "page_type": "article" }

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "Article Branding", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cfovx", "p2": "glug" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Баннер в ленте на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "disable": true, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } }, { "id": 20, "label": "Кнопка в сайдбаре", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cgxmr", "p2": "gnwc" } } } ] { "page_type": "default" }