Для начала разговора о теории ПО, необходимо обратить наше внимание на взгляд человека. Все мы рассматривая предметы, образы и так далее, видим их по разному. Взгляд - многогранная картинка которую воспринимает наш мозг.
При создании любого ПО, всегда сначала возникает идея, после мыслительный процесс заставляющий зафиксировать мысль в чем то более осознанном, схема, голосовая запись, набросок картинки или текста. Так или иначе мы хотим визуализировать свою идею.
В открытых источниках есть статистика, что сегодня более 80% населения земли - визуалы, а значит все что мы создаем быстрее всего должно быть сначала визуализировано, а потом реализовано.
При создании любого продукта, мы хотим понимания как этим продуктом будут пользоваться люди. Пользователь не может догадываться о скрытых возможностях которые вы закладываете в продукт, он должен их увидеть. К сожалению в современном мире, никакая инструкция не поможет быстро освоить продукты которые пишутся, все стало сложнее.
Большим и самым главным примером можно можно назвать социальную сеть VK (это точно не реклама), маркетплейсы с их решениями публичных витрин. Все это продукты направленные на быструю адаптацию и восприятие контента и хитрых рюшечек, которые создают для нас разработчики.
Где же теория ПО?
Любая история начинается с предисловия, и вы его уже осилили. Мы программисты создавая любой продукт хотим объять необъятное и конечно же наш продукт самый лучший.
Вы хотите создать шедевр? к сожалению это не получится с первого раза. Можно потратить много сил на создание чего то реально существенного и востребованного на рынке, но это будут жалкие копии уже существующих вещей.
В поисках вдохновения мы ищем решения, анализируем конкурентов смотрим, что они создали и тем самым создаем себе визуализацию своего продукта. Так работают миллионы компаний кто пишет "Мы создаем уникальные решения" - заведомо вам лгут.
Что происходит?
1. Вас опрашивают. Вы заполняете километровые брифы из которых потом как вам говорят профессионалы сделают вам мега продукт.
2. Вы мучительно заполнив все о чем вас попросили, сами того не подозревая описываете увиденное. Ваш мозг запомнил рюшечки, фишки которые есть у других и реализуют вашу идею. Возможно это на 90% ваша реализация, но все же.
3. Помпезное представление в красивой оболочке вашего личного труда. Бриф заполнен, по нему составлена презентация вы видите в красивой оболочке, то что вы хотите. Ваш мозг не может отличить реальность от действительности так как вы этого ждали несколько недель.
Разочарование!
Уверяю, после презентации вашего труда, наступит именно то, что написано - разочарование. Через час два, а может за ужином вы поймете, что увиденное в презентации это плот вашего труда которое вам еще хотят и продать. Сметение, гнев и просто психоз - вам обеспечен.
Я лично прошедший эту школу с обоих сторон, прекрасно вас понимая хочу рассказать о главном, что именно вам нужно, для реализации идеи.
Перестаньте тратить ваше время на километры бумаг, выслушивание рассказов о том как компания которая вам сейчас впраривает решение "самая лучшая". Нет лучших, мы все программисты создающее продукт который хочет конечный потребитель. В большинстве случаев программисту абсолютно фиолетово что он пишет, вопрос денег.
Вы как владелец идеи, вам не фиолетово, вы горите своей идеей поэтому шаги которые будут описаны ниже не приведут вас к разочарованию.
Плавный экскурс в реализацию вашего решения которое будет уникальным и востребованным на рынке.
1.Планирование.
Первый шаг самый важный именно от него будет все будет зависеть в дальнейшем. Вы сейчас говорите, да все понятно план и все хорошо, но не спешите. Все планы разные и уверяю вас, план ремонта в квартире, никак не совпадет с планом ремонта в вашем любимом гараже. Ремонт - это просто слова, а план - это стратегия.
Если вы это читаете, значит в моей статье есть маленькая победа над разумом я работаю не зря. Планируя продукт который вы хотите создать, сначала необходимо:
Составить блок схему элементов всей экосистемы продукта как его видите лично вы. Обыватель, простой человек и просто идейный генератор. Промер схемы вы можете видеть ниже, это может быть сделано в Figma, Miro или любых подобных продуктах. Я предпочитаю первый ресурс, так как он может сочетать в себе и схемы и дизайн, который потом легко перевести в код. Даже если вы сделаете это на листе бумаги, это будет супер.
В схеме не пытайтесь нарисовать все детально, она (схема) ваш ребенок которого еще нет. Детали будут потом, важная задача зафиксировать саму идею.
2. Подготовка к разработке.
Вроде не должно быть ничего замысловатого, но и в этом этапе есть подводные камни. Первым из камней, будет язык программирования, на котором нужно создать ваш продукт.
К вопросу выбора программного продукта у меня будет отдельная статья. В рамках данного текста к сожалению будет перебор.
Основное в данном пункте, не спешите принимать решение! Сделайте несколько важных шагов:
1. Нужно опереться на базу специалистов вокруг вас, с кем вы можете работать.Если рынок в вашем регионе ограничен только JS программистами, то о каком C++ можно говорить и думать. Поэтому открываем любой ресурс с исполнителями вокруг вас, проходим по биржам труда и получаем картинку, кто есть вокруг (Если по этому поводу нужна консультация, обращайтесь расскажу).
2. Приценитесь к тем кто есть на рынке. Правильно думаете - это примерно оценит ваши идеи в деньгах и общаясь с исполнителем вы будете понимать в каком рынке выживете.
3. Проведите скрининг компаний кто делает что то похожее, не продает, а именно делает. Всегда есть кейсы кто что делал, по ним можно понять будет ли это потенциальный партнер и нужно ли идти к нему.
3. Старт разработки.
Вроде основу пробежали, можно заключать договори и тут опять есть НО. Кратко, на чем заострить внимание:
1. Условия авторских прав на идею, продукт, код и прочее. Это для вас самое главное поэтому сначала зарегистрируйте идею в Роспатент, а потом начинайте диалог с исполнителями.
2. NDA - продумайте его и не бойтесь писать туда миллионные штрафы. Продукт ваш, защищайтесь сударь.
3. Деньги. Я бы сказал так: платить за результат, а не слова и бумагу. Постарайтесь построить отношения таким образом чтоб у вашего исполнителя всегда не хватало денег на закрытие проекта, пока он не сдаст работу. Самая лучшая практика 25% предоплата, 20-30% за видимый результат, остальное после запуска MVP в рамках описанного ТЗ. Компании которые нацелены на результат будут работать с вами, а те кто говорит давайте 50% предоплаты и потом сначала расчет а после продукт - это уже сразу лохотрон. Вы не получите ровным счетом ничего, что бы вас удовлетворило, как бы вас не поили кофе с коньяком и не предлагали горы золотые но потом.
Вот таким кратким получился экскурс в теорию. Если было полезно подписывайтесь на канал, задавайте вопросы.
Всегда готов провести частную консультацию, обсудить ваши задачи и подсказать как лучше двигаться дальше.