Думайте масштабно, учитесь быстро и слушайте: мои уроки создания продукта WordPress SaaS

Опубликовано: 2017-04-19

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

Однако это непросто. Требуется самоотверженность, тяжелая работа и немного удачи, чтобы получить первого клиента. Как сказал Лао-Цзы: « Путешествие в тысячу миль начинается с одного шага ».

Определите проблему

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

«Хотел бы я, чтобы было <вещь> для <проблемы>»?

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

Изучение идей продукта

Одна вещь, которую я усвоил благодаря своим многочисленным неудачным продуктам, заключается в том, что если вы хотите добиться успеха, очень помогает решение проблемы, которая у вас есть. Еще когда я был внештатным разработчиком WordPress, я часто сталкивался с проблемой обновления тем и плагинов на клиентских хостах. Это всегда было большой проблемой, поэтому я подумал, что возможность подключиться к системе обновлений WordPress сделает жизнь намного проще. Kernl родилась из этой проблемы, и она сформировала ядро ​​продукта.

В ядре Kernl я хотел, чтобы это был простой в использовании продукт WordPress SaaS. Я подозревал, что люди на самом деле не хотят запускать собственную инфраструктуру обновлений и с радостью заплатят за надежного поставщика. Клиентам нужно будет только загрузить ZIP-файл своего плагина или темы, а мы позаботимся обо всем остальном. Жесткое ограничение основного продукта действительно помогло мне сосредоточиться на создании ценности.

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

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

Начинайте с малого, думайте масштабно, но всегда заканчивайте

Вы часто слышите, как люди говорят о «методологии бережливого стартапа» в нашем сообществе. Люди склонны выбирать, каким элементам бережливого стартапа они следуют, и я не исключение. Я определенно не следовал этому в точности, но одну вещь, которую я обязательно сделал, это переработал Kernl до наименьшей возможной части, которую можно было бы отправить, прежде чем я начал работать над ним.

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

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

«Какого цвета велосипедный сарай?»

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

В моей повседневной работе мы бросаемся термином «велосипед» всякий раз, когда понимаем, что обсуждаем тривиальные темы. Если ответ на вопрос действительно не имеет значения или подойдет любое из предложенных решений, просто выберите одно из них и двигайтесь дальше. Быть решительным невероятно важно, когда вы создаете продукт SaaS в свободное время. Клиентам действительно все равно, используете ли вы Node.js или PHP, просто выберите один и вперед.

Быть решительным невероятно важно, когда вы создаете продукт SaaS в свободное время.

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

Выберите технологию, которая заставит вас двигаться быстрее

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

Мой выбор технологии с Kernl отражает мои цели для проекта. Я хотел создать успешный продукт WordPress SaaS и, возможно, в процессе изучить что-то техническое, поэтому я решил построить Kernl в основном на технологиях, которые я понимал (Node.js для серверной части и Angular 1 для внешнего интерфейса). Ни одна из этих технологий не мешала мне, и я был очень продуктивным с ними.

Скриншот домашней страницы Kernl

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

Маркетинг WordPress SaaS

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

Первоначально Kernl рекламировался через пост «Show Hacker News» и несколько постов на Reddit. После этого я начал искать в Твиттере релевантные ключевые слова и напрямую общаться с людьми. Этот процесс был очень ручным и трудоемким, но он сработал достаточно хорошо, чтобы привлечь несколько платных клиентов.

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

Хотя на этом пути я сделал несколько ошибок. Я провел несколько экспериментов с Google Adwords, но они никогда не приносили хороших результатов. Через два месяца я перестал показывать рекламу и решил рассмотреть другие варианты. На самом деле, я думаю, что лучший подход к маркетингу Kernl — это контент-маркетинг. Это может быть много вещей, но я думаю, что наличие хорошего блога с большим количеством статей, посвященных разработке WordPress, поможет привлечь много трафика и потенциальных клиентов к Kernl.

Слушайте своих клиентов

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

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

Одной из самых важных вещей, которые я усвоил из общения с клиентами, была потребность в стабильности.

Я решил посвятить всю бета-фазу запуска Kernl стабильности и автоматизации.Tweet

Большая часть первоначальной клиентской базы Kernl мигрировала с WP-Updates из-за проблем с простоями, которые у них были, и я не хотел, чтобы они начали рассматривать Kernl в таком свете, если я не смогу поддерживать сервис в рабочем состоянии. Имея это в виду, я решил посвятить всю бета-фазу запуска Kernl стабильности и автоматизации. За эти 2-3 месяца не было написано никаких новых функций, но тщательный рефакторинг, автоматизированное тестирование и улучшения инфраструктуры сделали Kernl намного лучшим продуктом, чем он был в альфа-версии.

Ставьте реалистичные цели

Есть много способов, которыми я подошел к Kernl, которые отличались от предыдущих попыток продукта SaaS. Одним из самых эффективных для меня было определение реалистичных целей. Я не говорил: «Я хочу 1000 клиентов и 50 000 долларов дохода через 3 месяца». Вместо этого я поставил краткосрочную цель: «Я хочу раз в месяц пригласить жену на приятный ужин исключительно на деньги, полученные от Kernl». Как только эта цель была достигнута, я поставил более крупную цель: «Заплатить за машину» + моя первая цель.

Краткосрочная цель - Оплатить автомобиль

Для меня были важны цели настройки, которые были просто недостижимы. Это дало мне то, к чему, как я считал, можно было стремиться. Конечно, у меня есть и другие большие цели для Kernl (сделать Kernl моей основной работой), но до них еще далеко. Вам нужно к чему-то стремиться в краткосрочной перспективе, если вы хотите оставаться мотивированным.

Думай вперед

В какой-то момент моего пути с Kernl как продуктом WordPress SaaS я почувствовал, что начал упираться в стену. Может быть, привлекать клиентов становилось все труднее, или, может быть, я недостаточно старался, но мне казалось, что Kernl нужно что-то новое, чтобы оставаться актуальным. Когда я начал так себя чувствовать, я начал думать дальше. Я спросил: «Что я могу внести в экосистему WordPress с большой ценностью?» и «Может ли эта идея расширить Kernl за пределы экосистемы WordPress?».

Первоначальной целью Kernl было предоставление обновлений для частных плагинов и тем WordPress, но по мере роста Kernl я думал, что смогу помочь разработчикам модернизировать их рабочий процесс развертывания. С момента запуска Kernl я добавил push-to-deploy (GitHub, BitBucket, GitLab), уведомления Slack, уведомления веб-перехватчиков и многое другое. Но я чувствовал, что следующая функция должна быть больше. Больше, чем болт-он. Что-то совершенно другое.

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

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