MASHA — формирование ежедневного меню в дошкольном учреждении
Приветствую тебя, дорогой читатель!
Это будет не история успешного взлета или фатального падения. Здесь не будет статистики, технологий продвижения, ответов на вопрос «Как заработать миллион?». Я постараюсь лишь выделить основные моменты, которые могут быть полезны тем, кто столкнётся с реализацией и внедрением SAAS проектов. Несмотря на то, что я не люблю слово «стартап», речь пойдет о проекте, который в целом подходит под это определение.
Всё началось еще в 2010 году. К тому времени у меня за плечами уже был приличный опыт разработки, работа на себя, на компанию, на себя в компании.
Момент первый. Идея не выдумывается специально, надо просто делать то, что любишь.
И я делал. Надо сказать, что это было не только программирование. Это еще и результат. У каждого свой гордиев узел, кто-то распутывает его, кто-то рубит, но нет ничего лучше, чем ощущение в тот момент, когда ты наконец сделал это. Так я и жил, ожидая на какой бы еще «узел» опустить свой «меч».
На этот раз взор мой направился к совершенно неожиданной области: детскому саду, в который ходили мои дети. Волей случая я знал, какие там назревают проблемы с управлением процессом питания. Итак, решено, буду помогать решать эти проблемы! В качестве решения я определил WEB-приложение, которое должно автоматически формировать меню (завтрак, обед, ужин и т.д.) на основании определенных правил.
Момент второй. Если ты плотник, то лучше будь хорошим плотником, чем плохим слесарем-инструментальщиком.
Мой основной инструмент — PHP. За время своей деятельности я накопил достаточно велосипедов и знал, какой из них я буду использовать. План действий формировался в голове, постепенно обрастая необходимыми мелочами. Почему в голове? Да потому, что я не считал нужным вообще что-то планировать. Точнее план у меня был, но только один: сделать все быстро. Представляю брезгливые гримасы на лицах некоторых. Да, тщательный системный подход, это хорошо, но не в данном случае. Такому безрассудному поведению способствовала абсолютная необязательность данного проекта. Это значит, что я его мог прекратить в любой момент без последствий. Для начала мне вполне сгодился WAMP, развернутый на компе в детском саду без выхода в Интернет. Так, оседлав свой велосипед, я приготовился к марафону.
Момент третий. Максимально подробное изучение предмета разработки.
Сегодня я абсолютно уверен в том, что если бы не достаточно подробно узнал, что нужно разработать, то проект был бы мертв. Если сам не можешь постичь предмет разработки, найди того, кто досконально знает этот предмет. В противном случае, займись другим проектом. Ты можешь быть вторым Дональдом Кнутом, можешь знать как это делать, но если ты не знаешь что делать, получить результат будет очень сложно.
Моим постановщиком задач и проводником в мире питания для дошкольников стал человек, который знал о предмете все. Но не тут-то было. Это вовсе не означало, что оставалось только писать код. Мой постановщик задач был далек от программирования так же, как я от питания дошкольников. Целыми днями мы сидели, выясняя что и как должно работать. Никакого ТЗ я делать даже не пытался и не жалею об этом. Новые требования возникали внезапно и документировать их, когда разработка уже идет, не представлялось возможным. Много раз хотелось всё бросить к чёртовой матери! Но результата хотелось больше.
Момент четвертый. Для стартапа не нужны деньги.
Самые лучшие вещи в жизни я делал совершенно бесплатно. Это не значит, что все так должны делать. Кто-то ищет инвестиции, формирует или нанимает команду, планирует риски и делает другую сложную работу. Это хорошо и правильно если ведёт к достижению результата. Мне же для начала было достаточно работы дома по вечерам. Если честно, о том что в будущем я буду на этом зарабатывать, я тогда не задумывался. Важно было одно: решить проблему, за которую я взялся. Это как спорт, когда ты хочешь бежать, ты бежишь, а не ждешь пока тебе сначала заплатят за это. Можно бегать вдвоем или втроем, но для этого нужно одинаковое желание всех участников.
Так я и продолжал. Бесплатно. Спокойно принимая удивленную реакцию некоторых наблюдателей, пытавшихся найти подоплёку столь бескорыстного порыва. В голове возникали новые решения и процесс было уже не остановить. Так я дошёл до первой альфа-бета версии.
«Why you call it beta? — Cause it’s betta than nothing».
Момент пятый. Проект должен созревать.
Об этом, вероятно, знают все. Однако определить, сколько времени займет созревание и как оно будет проходить, очень сложно. В случае с моим проектом, это заняло полтора года :)
На этом этапе проект уже реально работает. Означает ли это что результат достигнут? Нет. В процессе созревания вылезают все недостатки и упущения. Но поезд уже набрал ход, менять что-то становится всё сложнее. Здесь меня спас опыт. Он простил мне отсутствие планирования и проектирования, предоставив взамен хорошую архитектуру. Именно за счет архитектуры мне удавалось многое перестраивать под обновляющиеся на лету требования. Модули шлифовались, ошибки исправлялись, росла уверенность в успехе.
Эвалюционировала и платформа. Я понимал, что проект пригодится и другим детским садам. Сначала я организовал площадку на имевшемся в моем распоряжении небольшом сервачке. Каждому новому клиенту было решено создавать собственную базу данных и собственный поддомен. При этом само приложение оставалось общим для всех клиентов.
Так моё небольшое локальное начинание стало сервисом. Я еще не могу его назвать полноценным SAAS. Нужна была документация, поддержка пользователей, более надежная платформа и куча всего еще. На это нужно время, время на созревание. Когда ребенок рождается, он не говорит и не ходит, но он уже дишит и чувствует! Он живёт! Остальному он научится, и нужно ему помагать в этом. Так и любой проект. Если он начал жить, не бросайте его, дайте ему созреть, помогайте ему созревать.
Тем временем надо подумать, что делать потом. Перезревший плод теряет вкус и привлекательность. Нужна свежая струя, и по традиции, это деньги.
Момент шестой. Делай деньги. Если можешь.
Делать деньги в одиночку тяжело, а значит карты на стол. Я заручился поддержкой руководства компании, в которой работаю. После договоренностей о моем авторском вознаграждении, проект получил новый виток. Мы определили цену лицензии для одного дошкольного учреждения. Определили перечень модулей, который входит в эту цену. Оставалось ждать клиентов.
Но бросить свое детище и почивать на лаврах авторства я не мог. И я впрёгся в процесс по полной программе. Сделал сайт-визитку, скорее для порядка, чем для привлечения клиентов (тут обойдёмся без рекламы, адрес сайта в моём профиле). Записал пару видеофайлов с описанием системы, завел пару блогов в социальных сетях. Напечатал заметку в Компьютерных вестях.
Тем не менее, полномасштабная раскрутка проекта не планировалась, ввиду специфичности. Клиентами могли быть только дошкольные учреждения, а значит на 99,9% — госучреждения. О, да! Работа с госканторами, это отдельная песня. Я не буду здесь описывать всего идиотизма, который подчас сопровождает такое сотрудничество. Но время шло, сарафанное радио работало, а мы собирали восторженные отзывы на немногочисленных презентациях.
С увеличение клиентов, расширилась и платформа. Я переехал на новый сервачок, выделенный специально для этих целей нашим мудрым руководством. Наладил резервное копирование. Усовершенствовал механизм регистрации новых клиентов. Поскольку сервис закрытый, регистрация заключалась в создании новому клиенту виртуального хоста, базы данных и нескольких папок. Но когда однажды мне пришлось быстро подключать 60 клиентов, я понял, что ручной способ не подходит и надо быть готовым к таким ситуациям. Решение было очевидным: скрипт, которые делал срез эталонной базы, создавал нужные папки и заводил пользователя для каждого клиента.
И вот момент первой оплаты от клиентов. Никакой эйфории; я думаю, вы уже поняли, что не ради денег я разыгрывал эту партию. Не смейтесь, я конечно не против вознаграждения :) но я помнил главное. Главное — его величество Результат!
Момент седьмой. Уважай своих клиентов.
Нашими клиентами являются руководители дошкольных учреждений. Это на 100% женщины, которые на 80% далеки от информационных технологий. При этом техподдержка у нас бесплатная и в качестве телефона техподдержки указан… правильно, мой телефон. Сложно даже описать, на какого рода вопросы мне приходилось отвечать, но я держался и был предельно корректен со всеми. Что самое поразительное, я сам затруднялся объяснить данный феномен. В повседневной жизни меня жутко раздражают непонятливые люди, я не могу не повысить голос, при многократном объяснении, казалось бы, элементарных вещей. Здесь же я без особого напряга выносил все просьбы и вопросы. Более того, я перезванивал клиенту всякий раз, если пропустил его звонок. Конечно же, это можно объяснить только любовью к своему SAAS детищу.
Но и клиенты платили мне тем же. Негативных отзывов просто не было, а многие искренне удивлялись оперативности, с которой исправлялись ошибки и вносились новые доработки. На этой позитивной волне я даже отказался от дифференцированных цен на лицензии, в зависимости от состава сервиса и щедро «поливал» клиентов новыми доработками. В результате функционал системы вырос чуть ли не в два раза при старой цене. И об этом я ничуть не жалею.
Результат.
Так есть результат или нет? Где то желанное ощущение, когда ты сделал это? Возможно, в этом и есть главный секрет. Я думаю, что многое еще впереди. Сегодня имя «MASHA» уже известно, о нас написали в специализированном журнале для руководителей, клиентская база увеличивается. На самом деле, не все было так радужно, как возможно вы думаете. Трудностей хватало, просто о негативном писать не хочется. Моей целью было искренне желание помочь, её я могу считать достигнутой. Но результат это нечто другое. Это то, что не даёт засохнуть. Я знаю, что проект может стать лучше, и я буду делать его лучше. А значит я буду делать то, что я люблю! Круг замкнулся. Ну что, готовы вернуться к первому моменту?
Автор: easterism