карьера26 января 2020

Как в одиночку запустить продукт, если вы разработчик: советы от создателя Laravel Тейлора Отвела. Часть 3: Не сдаваться

Артем СалютинРуководитель проектов

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

Напишите манифест проекта

В документе определите, какие фичи войдут в первый релиз. При этом постарайтесь не делать MVP, не сводите проект к примитивному набору базовых функций. Такой проект не зацепит ваших покупателей. Держите в голове другую аббревиатуру — SLC (Simple Loveable Complete). Ваш проект должен быть простым, завершенным, и им должно быть приятно пользоваться. Когда я говорю «завершенный», это не значит, что в проект надо впихнуть все возможные функции. Совсем нет. Вспомните первую версию Snapchat. В приложении не было ряда фич на старте, их добавили потом, но функциональное ядро продукта не менялось с запуска.

Обозначьте конечную цель

Как ни странно, так делают далеко не все. Необходимо четко сформулировать, когда проект можно будет считать сделанным, что будет версией 1.0, которую можно показать людям. Не стоит начинать работу над проектом, если вы не можете сказать, что будет считаться готовым продуктом в контексте вашей задумки. В противном случае вас ждет scope-creep и feature-creep — проекту не будет ни конца, ни края, потому что границы будут постоянно сдвигаться.

Начинайте с мелких задач

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

Не путайте мотивацию и дисциплину

Люди склонны превозносить одно над другим. Среди моей аудитории — разработчиков в возрасте от 20 до 40 — на передний план часто выходит мотивация. Желание закончить проект может полностью основываться на текущем эмоциональном состоянии, внутреннем хайпе. Стоит этой эмоции пропасть, как руки тут же опускаются, и сил продолжать работу над проектом не остается. Отсюда выгорание.

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

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

Чтобы сохранять интерес, проект должен решать какую-то вашу личную проблему. Над Laravel и Forge я работал в свободное время по вечерам, когда у меня еще была основная работа на полную ставку. Это были самые настоящие сайд-проекты, и я не сильно переживал о том, как их встретит публика. Я хотел сделать Laravel, чтобы потом быстрее сделать Forge. В некотором смысле Laravel можно назвать мета-сайд-проектом, орбитой, с которой мне было бы легче запускать другие программные продукты. А Forge мне был нужен для быстрой настройки серверов.

Отдыхайте

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

Не спешите с анонсами

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

Мыслите глобально

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

Сохраняйте преданность качеству

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

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

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