Основные понятия в сфере веб-разработки

Введение

Рассмотрим ключевые понятия в IT сфере касательно создания сайтов.

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

Если вам требуется больше информации по конкретному элементу - заходим на Youtube или Википедию и погружаемся в это понятие. 

Базовые понятия по работе сайта 

Домен

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

Важно вовремя продлевать домен, занесите в календарь дату, когда необходимо продлить домен. 

Важно регистрировать домен на себя (или свою компанию), а не на исполнителя.

Иначе затем передавать права придется через нотариуса.  У домена могут быть поддомены. Например, у домена web-automation.ru есть поддомен falcon.web-automation.ru. На поддоменах может быть установлено совершенно другое приложение и находится он может на другом сервере (с другим IP).

Хостинг

Хостинг - это место на диске некоего сервера, где лежит ваш сайт. Вы арендуете его на время у хостера (компания, которая предлагает услуги хостинга) для того, чтобы ваш сайт был виден в сети. Вы можете брать просто хостинг, либо можете взять более сложный вариант - виртуальный частный сервер (VPS). 

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

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

IP 

Это технический адрес вашего сайта (сервера) в сети, например, 10.203.21.24. Заказчику он нужен только для настройки DNS хостинга. В других случаях он никак не используется заказчиком. 

DNS и DNS хостинг

Домен должен быть связан с некоторым IP-адресом, чтобы пользователь в итоге мог найти сайт через браузер. Для этого используется DNS хостинг, где к домену прикрепляется определенный IP адрес (через A запись).

Важно, когда покупаете домен, убедитесь, что там же есть бесплатный DNS хостинг.

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

Виртуальный частный сервер (VPS)

Это более сложный вид хостинга. Вы получаете доступ к виртуальному серверу по RDP и в нем настраивается все необходимое для сайта ПО самостоятельно. Это веб-сервер, средство управления базами данных и другое.

В случае с хостингом вам не требуется подобная настройка, там есть панель (Plesk, ISP manager), которая упрощает настройку сайта.

В случае сервера вы можете ставить любое ПО на этот сервер (например, боты для парсинга данных с социальных сетей).

VPS дороже хостинга и имеет больше возможностей.

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

Крайне ВАЖНО: не забывайте продлевать сервер!

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

SSL (HTTPS)

Без SSL данные сайта по сетям передаются в открытом виде. Т.е. злоумышленник может взломать некий промежуточный узел в сети и получать информацию по запросам между браузером и сервером сайта.

Чтобы этого избежать, данные шифруются по определенным правилам (протоколам). Именно это и обеспечивается SSL.

Когда сайт находится под SSL, адрес сайта начинается с https://, весь трафик при этом шифруется и недоступен для расшифровки промежуточным узлам.                             

Даже если у вас нет секретных данных, все равно SSL нужно устанавливать - для более хорошего ранжирования в поисковых системах.

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

SSL покупается на год и устанавливается на сервер/хостинг.

Есть бесплатный SSL - Let's Encrypt.

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

URL

Это адрес страницы в сети. URL состоит из протокола, домена и пути к странице.

Например, для URL https://falcon.web-automation.ru/docs/vvedenie-v-falcon-space--c-chego-nachat 

https://  - протокол,

falcon.web-automation.ru - домен

/docs/vvedenie-v-falcon-space--c-chego-nachat  - путь к странице

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

Важно, когда вы взаимодействуете с разработчиками и другими специалистами, скидывайте конкретные URL и скрины, а не "на странице услуги что-то не работает". Так вы сэкономите время на повторные вопросы. URL - это наиболее точный идентификатор объектов на сайте (а не Title или Заголовок страницы).

Технические понятия по веб-разработке           

Движок

Движок сайта - это программное обеспечение, на котором работает сайт.

Движком может быть типовая система управления контентом (CMS), например, Wordpress. Либо это может быть самописная система (созданная специально под проект на некотором фреймворке). 

При выборе движка следует учитывать специфику вашего проекта

Например, магазины лучше делать на какой-то конкретной CMS, лендинги на другой, а уникальные сервисы лучше делать под себя.

Общие критерии выбора движка:

  • производительность;
  • стоимость владения и доработок системы под свои потребности;
  • набор требуемых модулей из коробки;
  • возможность кастомизации;
  • доступность специалистов по данной системе и порог входа.

CMS

Система управления контентом сайта - программное обеспечение для быстрой публикации текста, картинок и других материалов на сайте.

Есть панель управления, в которой администратор создает материалы: статьи, страницы, новости, портфолио, товары.

И есть публичные страницы, которые отображают контент. Наиболее популярная CMS - Wordpress. Она позволяет без программирования создавать довольно функциональные сайты.

Языки программирования, С#, PHP

Язык - это способ описания работы приложения в виде специального текста.

Программисты пишут на языке инструкции, которые в итоге обеспечивают всю работу по обработке запросов страниц сайта.

Фреймворк отличается от языка тем, что задает некоторый способ разработки, который в целом упрощает и ускоряет процесс разработки.

Например, Faclon Space - это фреймворк, который позволяет с помощью определенных правил управлять через SQL хранимые процедуры всей бизнес-логикой веб-приложения (и в этом главное отличие от всех других фреймворков). 

Фреймворк и заказная разработка

Если вам требуется сделать сайт в точности под свои требования, то имеет смысл рассмотреть заказную разработку. В этом случае берется некоторый фреймворк (в нашем случае ASP.NET Core или MVC5) и на базе него создается веб-программистами проект по спецификациям заказчика.

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

RDP, FTP

Для управления файлами и другими объектами сайта, необходимо обеспечить доступ. Если вы используете хостинг, то вы можете получить доступ через FTP протокол. Вы можете использовать некую FTP программу (Filezilla) и просматривать/редактировать файлы на удаленном сервере через эту программу.

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

СУБД, БД

Данные сайта хранятся в базе данных (БД). По сути, это просто набор таблиц и связей между ними. Управление всем этим хозяйством осуществляется средствами системы управления базами данных (СУБД).

Примеры: SQL Server, MySQL.

База данных может располагаться как на сервере, где находится сайт, так и на отдельном.

HTML, CSS

Когда вы видите страницу в браузере, она отображается по определенным правилам. Под капотом любая страница представляет из себя специальный текст (в виде кода HTML), который задает структуру документа и внешний вид.

К примеру, чтобы сделать ссылку на другую страницу, используется конструкция Ссылка

В дополнение к HTML языку идет CSS - средство стилизации страниц, т.е. изменение цвета, размера, положения и т.д. Без CSS все сайты были бы очень-очень похожи друг на друга и отличались бы только расположением элементов.

JavaScript (JS)

HTML и CSS позволяются сделать красивые страницы, но как сделать некую интерактивность и динамичность на страницах? Для этого есть JavaScript. С помощью него можно сделать некую реакцию элементов на действия пользователя: нажатие кнопок, изменение полей и т.д.

jQuery, Angular, React и другие библиотеки/фреймворки JS

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

Bootstrap

Это объединение JS и CSS библиотек для упрощения создания разметки страниц. Bootstrap содержит множество типовых элементов и стандартный приятный интерфейс. Основной смысл - использование типовых классов CSS для более простого формирования разметки. Вы не создаете свои стили, вы используете множество готовых стилей, которые наделяют вашу разметку заранее заданными качествами (скругление, видимость на разных устройствах и др.)

Bootstrap - это значительное упрощение в вопросе верстки страниц. Bootstrap мы используем в Falcon Space как одну из двух ключевых технологий.

API, XML, JSON

Современные приложения плотно "общаются" друг с другом без участия человека - передают друг другу данные, уведомляют о важных событиях.

Чтобы это было возможно, системы должны "договориться" между собой о правилах взаимодействия. Т.е. должен быть некий протокол, чтобы одна система "понимала", что его пытается "донести" другая система. Поэтому данные передаются в определенном формате (XML или JSON) по определенным правилам (протокол API).

API - это программный интерфейс, который сообщает другой системе, что можно вызывать такие-то методы, передавая определенные параметры и ожидать результаты также в определенном формате.

В нашей системе мы реализовали универсальный API, который позволяет делать свой API интерфейс (чтобы внешние системы могли к нему обращаться), а также отправлять некие запросы вовне в форматах JSON, XML, Text.

В проектах интеграция по API - всегда некая точка неопределенности, т.к. возникающие проблемы идут на стыке двух систем. В большинстве случаев проблематично точно оценить трудозатраты на интеграцию нового АПИ (т.е. такого АПИ, которое разработчик еще не интегрировал).

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

HTTP

Когда вы используете браузер и набираете определенный адрес в строке адреса, браузер отправляет запрос серверу в определенном формате (IP сервера он получает от серверов DNS по домену).

Чтобы правильно понять, что запросил браузер, запрос должен подчиняться определенному протоколу. А сервер должен отвечать по определенным правилам, понятным браузеру. Именно для этого существует протокол HTTP (или его защищенный шифрованный аналог HTTPS).

В работе над проектом мы по сути его никак не касаемся (только в моменте, когда подключаем SSL к домену).

Бекап

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

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

DOS атака

Главные угрозы информационной безопасности в экономическом плане исходят не из утечки конфиденциальности данных. Основная проблема - остановка сервиса. К примеру, сколько потеряет средств Ali Express, если остановится на 1 час?

Одной из причин остановки сервиса может быть DOS атака.

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

Есть также DDOS атака - это распределенная DOS атака, осуществляющаяся с разных серверов или рабочих станций (причем эти станции могут быть вовсе не злоумышленниками, а, например, жертвами вируса, который активизирует множество запросов в сторону определенного сервера).

Тип сайта

Существует множество типов, и зачастую они пересекаются.

Лендинг

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

Если у вас нет особых планов на сложную бизнес-логику обработки заказов, то имеет смысл использовать конструкторы лендинга типа Тильда или ЛП генератор.

Магазин

Это сайт с каталогом, корзиной и системой обработки заказа. Есть множество типовых решений под эту задачу (CS Cart, Bitrix). В 99% следует использовать именно типовое решение, а не делать что-то свое кастомное и уникальное.

Блог

Для блога совсем необязательно иметь свой сайт, можно разместить свой блог на специализированных площадках типа VC, Medium, Blogger и т.д. Если планируете делать свой блог, то в большинстве случаев имеет смысл взять Wordpress - очень много готовых плагинов, тем оформления.

Сайт-визитка

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

Площадка (маркетплейс)

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

Маркетплейс - это не просто сайт объявлений. Он должен давать добавочную ценность его пользователям. Это может быть снижение рисков, автоматизация, ускорение операций, проверенная информация и т.д.

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

CRM (и другие многопользовательские системы)

Строго говоря, CRM - это программа для учета клиентов. В широком смысле, это программа, которая обслуживает весь цикл продаж (подготовка КП, предпроектные исследования и т.д.).

CRM может быть типовой, а может быть создана под специфику конкретного бизнеса.

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

CRM в большинстве случаев - это веб-приложение, в котором есть кабинет Продавца, есть кабинет начальника отдела продаж и кабинет администратора. Иногда в ней может быть кабинет клиента (т.е. некий клиентский сервис).  Есть таблица клиентов, карточка клиента, сделки клиента, запросы на КП, выставление КП, документооборот.

Продвижение

Контекстная реклама

Это реклама в поисковой выдаче Яндекса, Гугла. Вы набираете определенный запрос, и поисковая система предлагает вам релевантные рекламные объявления. Плата обычно идет за клик.

Поисковое продвижение (SEO)

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

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

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

Поисковое продвижение - это некие танцы с бубном вокруг поисковых систем.

На мой взгляд, важно просто придерживаться простых правил и у вас будет постепенный рост позиций:

  • следовать пожеланиям поисковиков;
  • делать качественный контент, интересный вашей целевой аудитории;
  • не обманывать ожиданий посетителей.                        

SMM

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

Далеко не каждому подойдет этот способ продвижения. Тут все зависит от целевой аудитории.

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

Веб-аналитика, счетчик.

Когда сайт работает, необходимо понимать, что на нем происходит, как пользователи работают на сайте и нет ли у них каких-либо проблем.

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

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

Самые популярные бесплатные инструменты веб-аналитики - Яндекс Метрика и Google Analytics.

Конверсия

Конверсия - это КПД вашего ресурса. Количество полезных действий к общему количеству.

Увидели рекламу 100 раз, зашли 4 раза. Конверсия 4%.

Конверсия позволяет понять, что дает нужный результат, а что работает недостаточно эффективно. Также она позволяет прогнозировать показатели при увеличении входящего потока.

Отказы

Отказ - это понятие веб-аналитики. В терминах Яндекс метрики отказ - это посещение 1 страницы менее 30 секунд.

Один конкретный отказ ничего не значит. Важен агрегирующий показатель. Если ваш сайт дает 33% отказов, то это значит, то треть трафика идет на мимо.

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

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

Поведенческие факторы

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

Если люди, в поиска ABC, кликают по вашему объявлению и потом долго его изучают и не возвращаются в поиск, значит у вас там что-то интересно для людей, ищущих ABC.

Это по сути и есть поведенческий фактор - как пользователь ведет себя на странице. Улучшая поведенческие факторы, вы улучшаете ранжирование в поисковых системах.

Сниппет в поисковых системах

В поисковой выдаче выдается заголовок, текст и возможны также ссылки, картинки. Это и есть сниппет. Мы можем влиять на этот сниппет через определенные настройки. Улучшая сниппет, мы увеличиваем вероятность клика пользователя на сайт.

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

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

Релевантность

Поисковая система старается под запрос пользователя подбирать подходящие страницы, а не все подряд. Чем точнее подобраны запросы, тем больше будет удовлетворен пользователь.

Необходимо описывать страницу максимально релевантно  тому запросу, на который вы планируете получить клики.  Если у вас страница про тракторы ABC - не нужно в Title писать про тракторы EFG (или просто общий запрос Купить трактор).

Ключевой запрос (ключ)

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

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

Частотность

Ключ ключу рознь. Один запрос могут набирать десятки тысяч раз в день, другой в месяц может набирать всего 50 шт. Но при этом один из этих 50 попаданий может вам принести миллионы (если человек, например, ищет франшизу или резюме узкого специалиста).

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

Частность запросов в Яндексе можно определить по wordstat.yandex.ru. 

При определении также учитывайте регион. Т.е. всегда сравнивайте данные по определенному региону, а не на основе разных исходных данных.

Также частность позволяет определить, что интересно людям. Наберите в wordstat запрос "Заказать" или "Купить", и вы узнаете что хочет в среднем пользователь Яндекса.

Целевая аудитория

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

Задача владельца сайта - максимально точно определить черты целевой аудитории, понять, что ей интересно, где она обитает и выйти на них со своим предложением.

Если вы чего-то не учли, то ваш сайт не достигнет своих целей.

Вы можете приводить не ту целевую аудиторию. Ваше предложение может быть неинтересно потребителям. Либо вообще никто не придет, т.к. вы не там ищете своего потребителя (например, b2b в инстаграме или в линкедин ищете кочегаров для работы в Подольске).

Кластеры запросов

У вашей целевой аудитории есть некие потребности. Когда она возникает, он может набрать в поиске определенные запросы. Они по синтаксису разные, но по сути это одна и та же потребность. Разработка сайта или создание сайта? Это одно и то же.

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

При этом не надо делать слишком крупные кластеры. Есть более узкие вопросы, которые требуются отдельной страницы (например, создание сайтов .NET или как создать сайт на .NET).

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

Процесс создания своего продукта

Agile, Scrum и др

Это набор методологий для уменьшения рисков сделать плохой продукт (или вообще не сделать его).

По большому счету, это просто проявление здравого смысла.

Двигаться нужно постепенно и контролировать промежуточные результаты.

Продукт создают люди, и нельзя к ним относиться как к машинам.

Код важнее документации.

Плотное взаимодействие с клиентом важнее пунктов в договоре.

Есть также набор некоторых практик, которые применяются внутри проекта (движение по спринтам, ежедневная планерка на 5 минут, ретроспектива и др).

В этих практиках по сути нет ничего нового и революционного. Они были и в СССР, и в Штатах, но были сформулированы в виде методологии относительно недавно.

Рейт, эстимейт

Рейт - это почасовая ставка в рублях или валюта, на основе которой строится смета.

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

Эстимейт - это оценка в часах, сколько времени сделать требуется на создание некоторой функциональности.

Требуйте более детальных оценок от разработчиков. Если в смете написано Создание АПИ 100 часов, то тут явно надо задать о детализации этой оценки. Чем детальнее оценка, тем проще будет понять, где было превышение и тем прозрачнее отношения между заказчиком и подрядчиком.

Итерация, этап, спринт

Большой проект нельзя сделать за 1 присест. Если вы пишете большое ТЗ, то в процессе реализации высока вероятность изменения требований.

Гораздо лучше делить проект на этапы.

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

Также этапы снижают риски заказчика и поставщика услуг. Заказчик может проверить на малой сумме на 1 этапе адекватность поставщика услуг. А поставщик не рискует, что ему конце проекта просто не заплатят 50% от суммы проекта (особенно если поставщик без штатного юриста, а у заказчика сидит целый отдел юристов, которых надо чем-то занять).

Снижение стоимости возможного спора (стоимость этапа) снижает риски и напряжение для обоих сторон.

Каждый этап - это отдельное ТЗ, смета, сроки, отдельная оплата и акт.

Customer Development

Как узнать, что нужно потребителю? Самое простое - спросить.

Методология Customer Developmet позволяет организовать интервью с людьми и выявить нужную для проекта информацию.

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

Основной смысл - не продать ваше уникальное решение, а понять, почему ваше решение не подходит в данный момент потребителю.

Lean startup, MVP

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

Это сильно снижает риски. Главный риск продукта - он никому не нужен. Прототип приземляет человека с его супер идеей.

Чем раньше ваш продукт сталкивается с рынком, тем раньше вы получите реальные данные о вашем продукте.

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

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

Поэтому делайте дешевый прототип, внедряйте и потом постепенно дорабатывайте его до полного продукта, либо делайте с нуля продукт уже с пониманием рынка. 

Концепция сайта, бриф

У вас есть идея сайта, вы начинаете искать, кто ее может реализовать. Каждому кандидату вы по вацапу объясняете сбивчиво вашу идею общими словами и хотите получить цену. Если это так, то вы тратите время впустую.

Не может исполнитель по общему описанию дать вам точную оценку.

Он просто назовет вам средние расценки, никак не учитывая специфику вашего проекта.

Правильный путь - составить концепцию проекта (шаблон).

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

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

Тем самым вы бесплатно можете получить ценную информацию по вашим вопросам (у исполнителей есть мотивация сделать вам клиентом, и поэтому они будут стараться отвечать максимально раскрыто. А если они не дают информации - это повод для фильтрации подобного исполнителя).

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

Мокап, дизайн, верстка

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

Верстка может создаваться на основе уникального дизайна. В этом случае на входе у вертальщика есть PSD или Figma файлы (картинка), которые он нарезает и использует для верстки.

Сама картинка дизайна тоже возникает не из головы дизайнера. Сначала создается мокап - схематичное изображение блоков страницы без стилевого оформления.

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

Поменять мокап просто - передвинул блок и все.

Менять дизайн сложнее - это потребует согласованности стилей и может нарушить гармонию дизайна.

Еще сложнее менять это в верстке или в программе.

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

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

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

Поэтому мы не делаем мокапы, мы не делаем дизайны и мы не делаем отдельно верстку. Мы описываем требуемый функционал и доводим его прямо в системе (потому что это быстро и не так дорого как это было бы в случае полного стека).

Цикл дизайн-верстка-внедрение мы делаем только для главной страницы - лендинг (при этом сами вы делаем только внедрение готовой верстки в платформу).

Юзабилити, UX/UI

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

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

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

Владелец сайта должен заботиться о пользовательском опыте (UX).

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

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

Скрины

Скрин - это фото вашего экрана или окна.

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

Есть специальные программы (Яндекс.Скриншоты, screencast), которые позволяют быстро сделать скрин и передать на него ссылку другому человеку.

Техническое задание (ТЗ)

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

ТЗ позволяет зафиксировать требования заказчика и избежать ненужных споров вида "а же думал, что это вы сделаете без лишних слов".

Исходите из предположения, что "то, что не описано в ТЗ, не будет реализовано в системе". Прописывайте все, что хотите видеть в системе.

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

Есть мнение, что ТЗ должно описывать ЧТО должно быть реализовано, но не КАК это должно быть реализовано. Я с этим не согласен, для меня ТЗ - это рабочий документ для того, чтобы максимально точно прояснить ожидания заказчика, а не следовать формальностям. Если мы можем написать детали реализации в ТЗ, то тем самым мы сразу согласуем с ним моменты по реализации, и не требуется отдельных согласований.

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

Баги

Баг - это ошибка в программе. Она может быть выявлена на этапе тестирования или разработки (что скорее хорошо, чем плохо) и на этапе использования системы (что скорее плохо, чем хорошо).

В любом случае, самое важное здесь - это максимально оперативная правка для исправления бага.

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

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

Если вы нашли ошибку - не пишите разработчику общие слова, что есть ошибка (и уж тем более нет смысла выражать свои эмоции). Максимально конкретно опишите ошибку - скрин, URL и что именно работает не так. Это позволит разработчику без лишних слов начать поиск причины.

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

Fullstack разработка

Полный стек разработки - это набор технологий, которые необходимые для создания сайта.

Это база данных, слой доступа к данным (DAL), слой бизнес-логики (BLL), слой контроллеров, обрабатывающий запросы, пользовательский интерфейс, интерактивность за счет фронтенд разработки на JS,

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

В нашей платформе мы сократили все до 2 уровней (а в некоторых случаях и до 1). Есть уровень бизнес-логики и извлечения данных - он находится в SQL. Второй уровень - это кастомная разметка (он нужен не всегда, например для таблиц все выводится в соответствии с правилами заданными в SQL). 

С точки зрения N-слойной разработки мы нарушаем разделение на слои. SQL по сути отвечает и за извлечение данных, и за бизнес-логику и за управление выводом в UI.

Наша задача - снижение себестоимости изменений.

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

Беклог и user story

Любой проект - это описание требований и их реализация. Требования можно формулировать в виде пользовательских историй.

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

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

Зачастую заказчик думает: "Добавим еще 2Х программистов и получим ускорение 2Х". На деле это ведет к переделкам, обсуждениям, неточностям в системе в силу непонимания.

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

Бизнес логика

Бизнес-логика определяет набор правил, по которым протекают процессы в программе. Какие есть роли в системе, кто к чему имеет доступ, как осуществляется обработка заказа в системе и т.д. Для упрощения описания бизнес-логики выделите в системе Объекты и Субъекты.

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

Затем детализируйте данные по каждому субъекту и объекту (т.е. какие данные данные должны по нему хранится в системе).

После этого опишите основные процессы, используя только указанные субъекты и объекты. Тем самым вы опишите базис бизнес-логики вашей системы.

На базе этого описания дальше можно построить структуру вашего проекта.

Это набор личных кабинетов и страниц в нем. 

Если вы проделаете эту работу достаточно тщательно, то техническое задание на вашу систему будет готово на 70%. 

Product owner

Это владелец продукта. Он идейный вдохновитель проекта, который формирует видение будущего для проекта. При этом он может исполнять некоторые роли в самом проекте. К примеру для Falcon Space - я product owner, архитектор, разработчик, маркетолог, где-то юзабилити специалист. Также я пользователь (а значит и тестер).

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

Если у продукта слабый product owner, то, вероятно, в продукт будут впихивать все подряд в надежде угодить пользователю.

Заключение

Получилась довольно большая статья. Множество понятий, конечно, осталась за бортом. Статья будет дополняться постепенно, поэтому периодически возвращайтесь к ней.

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

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

Автор статьи - Руслан Раянов

Cоздатель платформы Falcon Space

Платформа Falcon Space

Это снижение стоимости владения

за счет меньшего количества людей для поддержки

Это быстрое внесение изменений

по ходу эксплуатации программы

Это современный интерфейс

полная адаптация под мобильные устройства

Демо-стенд компонентов
На стенде можно посмотреть различные компоненты в действии: таблицы, формы, модальные окна, диаграммы, карта и т.д.
Демо-сайт решений
Базисные решения, которые можно гибко адаптировать под себя: менять внешний вид, бизнес-логику и даже структуру базы данных.
Обсудить проект
Задайте начальные вопросы по проекту, которые вас сейчас волнуют. Мы бесплатно проконсультируем вас и порекумендуем лучшее решение.

Если вам нравятся наши статьи, то пожалуйста подпишитесь на наш канал в Telegram - Falcon Space.
В нем мы будем публиковать обновления по статьям и другие материалы касательно нашей платформы.