О том как правильно начать и как найти время

7 шагов на пути к «великой шароварной мечте» или к вашему собственному софтверному бизнесу

На форуме RSDN время от времени появляются вопросы вроде:

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

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

Какие есть варианты? 

Поэтому мне захотелось написать своё ИМХО в виде 7 шагов для сознания в одиночку успешного программного продукта:

0. Подготовьтесь к долгому пути

«Начало есть — более чем половина всего». (Аристотель)

Решите основные жизненные вопросы. При необходимости подправьте здоровье, найдите для себя приемлемый спорт, встречайтесь с противоположным полом, общайтесь с друзьями, коллегами и другими людьми, поработайте на нормальной высокооплачиваемой работе, найдите спутника жизни, попробуйте себя в творчестве, завершите своё образование если еще не завершили, посмотрите мир,  ответьте себе на вопрос «кто я?». Если отложить решение важных вопросов на потом, то придется возвращаться к ним снова и снова. А создание успешного продукта занимает очень много времени и отнимает много сил. Более того, пока основные жизненные вопросы не решены, вам и хорошие идеи в голову не придут, так как для этого надо чтобы голова была свободна от нависающих проблем.

1. Учиться, учиться, учиться и еще 6 раз учиться

а) Учитесь шароваре и бизнесу. Читайте книги по софтверному бизнесу  Эрика Синка, Роба Волинга «Start Small, Stay Small», Джессику Ливингстон, Боба Волша.
б) Перенимайте опыт — читайте форумы-конференции RSDN, Business of software , SWRUS. Изучайте успешные и провальные истории.
в)  Изучайте предметные области удаленные от программирования.

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

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

д) Учитесь руководить людьми (поработайте team lead-ом или поруководите проектами, присматривайтесь к тому как работают руководители в софтверных компаниях).

е) Учитесь программировать (возможно это Вы уже умеете)

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

з) Учитесь общаться с заказчиками и собирать требования

и) Учитесь думать и принимать решения самостоятельно. РСДН/SWRUS не подскажет.

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

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

2. Думайте над идеей

IDEA-loading

Идеи воплощать долго — или даже очень долго. Если вы ошибётесь с выбором идеи — то вы рискуете спустить в никуда много месяцев или даже лет своей жизни. Есть смысл выбирать идею очень придирчиво. Я узнал о шароваре и захотел её создавать в 1998 году, когда в  журнале «Компьютерра» вышли два номера на тему шаровары. Но я терпеливо ждал очень много лет прежде чем начать. За это время я очень хорошо узнал две смежные области, выучил 2 иностранных языка, поработал за границей, и приобрел опыт создания нескольких успешных программных продуктов и нескольких не успешных (такой опыт тоже бывает полезным — если попытаться осмыслить сделанные ошибки). Теперь у меня идей хоть отбавляй.

Как найти рынок для которого нужно создавать продукт?

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

Как найти идею для разрабатываемого продукта?

В принципе подходов два: либо создать что-то принципиально новое, либо реализовать существенно лучше то, что уже есть. Есть много статей на тему выбора конкурентов, что из классических четырех квадрантов надо выбрать медленного (тупого) большого. Но тут надо помнить о том, что заметив появление вашего продукта, конкурент может и ускориться и поумнеть (да хотябы копируя ваши успешные ходы). Что касается размера будущего продукта — то он должен быть подъемным для одного человека, но всё таки довольно сложным. Чем выше будет входной порог для конкурентов — тем лучше.

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

Хотя классики, вроде Роба Уолинга говорят что на первом месте  при выборе должен быть рынок, потом маркетинг, потом эстетика будущего продукта и потом, в далеке, уже сам продукт.

3. Делайте первую версию. А когда же работать?

Даже маленькая практика стоит большой теории.

Работайте когда это только возможно — в выходные, в отгулы, в отпуск, во время больничного, и в те вечера, когда у вас остались силы. Когда будет возможность уйдете на fulltime (успех приходит к тем, кто отрезает путь назад).

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

Помните в счет идут только дела, а не мысли.

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

На первых порах я заметил, что мне очень хорошо работалось поздно вечером  примерно с 22:00 по 02:00 ночи. Но после года в таком режиме — «ночные бдения» давались всё труднее и труднее.

4.Создайте инфраструктуру для продаж

Когда будет готова первая минимально приемлемая версия надо  организовать всю необходимую инфраструктуру для продаж:

  • сделайте из программы коммерческий продукт. Напишите «справку» (например с помощью dr.explain) , добавьте всплывающие подсказки и симпатичные и осмысленные иконки, создайте  дистрибутив. В ряде случаев надо также добавить защиту от копирования.
  • название — подберите подходящее название и займите доменное имя в интернете с окончанием «.com».  Длинные описательные названия хороши для поисковой оптимизации, но плохи для распространения через Word of mouth. Сразу стоит застолбить ваше имя в twitter, youtube и других сервисах. Я вот прощелкал. Хотя для Twitter-a можно сделать и исключение. Я выбрал в Twitter-e  более общее имя — название профессии своих клиентов  и буквально сразу был за-follow-ен (как это по русски?)  двумя сотнями компаний из своей области.
  • хостинг и движок. Мне нравится создавать сайт с использованием движков. ModX, WordPress, Drupal,  и.т.п.  С помощью движка можно оперативно поменять разделы сайта и легко править добавлять контент.
  • продающий сайт. Сайт должен вызывать доверие и должен быть оптимальным с точки зрения SEO. Тут вам пригодятся знания из пункта 1.  Не пытайтесь создать сайт — картинку. Пусть там будет много текста.
  • регистрация. Регистрируйте ИП или (/и) ООО. В РФ есть упрощенная система налогообложения «6% с дохода».   Откройте счета в банке. Освойте основы налоговой отчетности. Конечно некоторые работают как физ.лица и платят 13% налог (в РФ) но для «фуллтайма» это ИМХО не лучший вариант.
  • приём денег и регистраторы.  Откройте счет у регистратора, настройте продукты. Если вы зарегистрировались как ИП или ООО то получите бумажный договор. Добавьте ссылки на своём сайте. Для приёма платежей из СНГ есть allsoft и softkey. По налогам и взносам в фонды есть форум на klerk.ru
  • купите свои средства разработки, компоненты, и.т.п. Покупка программ открывает «шароварные чакры» и учит тому как нужно продавать программы. Кроме того, когда вы прочитаете договор с регистратором, там есть пункт, где вы гарантируете, что вы не нарушили ни чьих авторских прав.
  • если вы распространяете исполняемые файлы купите сертификат для их подписи — это муторно и долго, зато меньше проблем с антивирусами.
  • лицензирование. Продумайте ценовую политику, возможно введите сегментацию по категориям (Lite, Pro, Corporate). Если у вас приложение а не сайт, купите протектор. Настройте автоматическую отсылку ключей. Нет ничего лучше, чем иметь полностью электронный отдел продаж. Вы сидите и скажем отдыхаете программируете, а денежки идут.

5. Bootstrapping или инвестор?

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

Суть бутстрэппинга в том чтобы сделать 90-100% работы самому. Я бы отдавал фрилансерам только графический дизайн, нативный пруфридинг и переводы (если вы сами не владеете английским языком). По поводу дизайна, в моём случае, и сомневаться было нечего — сам я художественными талантами не обладаю, а проверить работу дизайнера гораздо легче, чем проверить правильность функционирования куска кода в различных режимах работы.

В последствие можно планировать привлечение аутсорсеров и для программирования, но лучше с этого не начинать.

6. ??????????????

«Один добытый опыт важнее семи правил мудрости». (Арабское изречение)

Развивайте и раскручивайте свой продукт, анализируйте результаты, ищите новые подходы, находите последователей, открывайте новые горизонты

  • SEO. Раздобудьте тематические ссылки на ваш сайт с авторитетных сайтов (вникайте в SEO). Сделайте свой сайты сателлит. Поставьте себе систему для сбора статистики посещений. Анализируйте поисковые запросы, добавляйте Landing pages.
  • реклама и прочее продвижение.  Баннеры,  реклама в журналах,  или  Adwords, если умеете его готовить, по вкусу добавить социальных сетей.  Добейтесь обзоров от блоггеров из вашей области. Находите партнёров.  Если вы занимались продвижением программных продуктов, во время работы «на дядю», то основы вы уже знаете.
  • обеспечьте резервирование. Всегда имейте более менее свежую копию исходников программы, копию сайта и списка клиентов. Один регистратор для приёма платежей это хорошо, а два лучше. Заведите резервный домен, в другой доменной зоне, зарегистрированный у другого регистратора доменов, создайте резервный сайт на другом хостинге в другой стране, на другом континенте. Когда дело дойдет до фуллтайма, возможные перебои/проблемы с сайтами/доменами/приёмом денег могут быть довольно чувствительны в материальном плане. DDOS-ов еще у меня не было, а вот взломы хостинга и движка веб-сайта были — это очень неприятно.
  • автоматизируйте всё. Создавайте шаблоны для ответов на вопросы пользователей, создайте скрипт (или .bat файл) для наложения защиты, сборки и подписывания дистрибутива цифровым сертификатом, и.т.п.
  • общайтесь с клиентами и анализируйте их проблемы, придумывайте новые функции и выпускайте новые версии. Помните: «Что для одного ошибки, для другого исходные данные».

Чего делать не надо

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

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

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

г) Если идея стоящая и начала приносить прибыль, то  не палите свою тему (идею) без нужды.

7. Profit!

Если вы дошли до пункта 7 (осуществив предыдущие) то, теперь вы, скорее всего, уже знаете великую шароварную тайну.

Какой же профит ждет шароварщика? По данным DeveloperResource 31% попадут в диапазон от $1К до $10К,  61% не выйдут и на уровень и в 1000 долларов в месяц.  и только 8 процентов заработают больше 10000 в месяц.

Что интересно, что человек который умеет делать все что перечислено в пунктах 1-7, явно может рассчитывать на самые высокие зарплаты, если устроится работать наемным работником, в софтверную компанию, скажем 7-10К в США или 3-5К в Москве . Но для многих помимо денег мотивацией является независимость и возможность взять свою судьбу в свои руки.

Что дальше?

Возьмите и сделайте. Начинайте сейчас.