Как работает интернет?
Разберем на пальцах, как работает сайт, а точнее сказать, интернет. Допустим, у вас есть интернет-магазин. Представьте, что интернет-магазин — это папка с документами на вашем компьютере. Эту папку нужно показать пользователям в разных регионах и даже странах, только у них на компьютерах этой папочки нет. Но есть адрес-ссылка, ведущая к вашему компьютеру, по которой можно эту папочку получить.
Таким образом, каждый пользователь и получает доступ к продукту. То есть компьютер каждого пользователя идет на удаленный компьютер и скачивает себе файл, который лежит по указанному адресу. А теперь давайте все это обернем в термины специалистов, чтобы разговаривать с ними на одном языке.
Удаленный компьютер, на котором лежит папочка с интернет-магазином — это сервер. Сервера стоят в дата-центрах. Для безопасности одна и та же папка сохранена на нескольких жестких дисках. В дата-центре их много, периодически они выходят из строя, поэтому сотрудники дата-центра делают копии данных и меняют сломанный диск на новый. Размещением и настройкой папки в дата-центре занимается девопс.
Девопсы почти не пишут код, они работают с железом, решают сколько тех самых дисков нужно вам под вашу нагрузку, «физически» сохраняют данные и настраивают адреса, по которым сайт в последующем будет скачиваться.
Менеджмент
Теперь перейдем к самой папке, то есть к сайту. Придумывая идею, как и в других сферах, составляется техническое задание. Техническое задание — это описание идеи последовательно, структурировано и очень подробно, для того, чтобы программисты могли со всеми нюансами и условиями перенести идею в код.
В ТЗ описываются тонкости, о которых никто не задумывается на начальном этапе. Например, что делать, в случае возникновения ошибки, или, как у нас было однажды на одном из проектов, нужно решить, сколько гендеров добавить в личном кабинете пользователя.
Составлением ТЗ занимаются аналитики или технические писатели. Часто этими специалистами пренебрегают, и их роль выполняет либо руководитель проекта, либо менеджер, в зависимости от бюджета и сложности задачи.
Менеджер или руководитель проекта. В его задачи входит следить чтобы у команды была работа, задачи закрывались в срок, оперативно решались возникающие вопросы. Обычно заказчик общается только с менеджером, и только в крайних случаях ему дают доступ к программистам, если появились вопросы, которые не удается решить без присутствия обеих сторон.
Технический лидер, наиболее компетентный программист, берет на себя ответственность за принятые решения по разработке, координирует работу программистов с технической точки зрения.
Разработка
Перейдем к программистам-разработчикам. Для создания сайта нужно два типа программиста: бэкенд-разработчик и фронтенд-разработчик. Они-то и заполняют «папку» разными файлами.
Все данные, будь то товары, пользователи или посты ленты Instagram лежат в базе данных. База данных — по сути Excel-таблица и даже не одна. Возьмем в качестве примера Instagram. Все пользователи Instagram с уникальными id (что-то вроде серии и номера паспорта) лежат в таблице «Пользователи».
Все посты пользователей лежат в таблице «Посты».
Из этой таблицы по id пользователя выбираются все посты, например, Иванова, в результате чего мы получим ленту постов конкретного пользователя.
Количество таблиц, адреса и связи между таблицами, различные их модификации и объединения, а также формат данных описывают бэкенд-разработчики. Выделяют также отдельно администратора баз данных, если таблиц много и они имеют сложную структуру.
Адреса к данным получили, теперь нужно их красиво показать пользователю. Визуальной частью сайтов занимаются фронтенд-разработчики. Тут также выделяют отдельно верстальщиков. Верстальщики описывают разметку сайта с помощью html-тегов для того, чтобы браузеры понимали структуру сайта, стилизуют его с помощью css, чтобы пользователь увидел красивые кнопки, слайдеры, иконки и так далее.
Затем программисты-фронтендеры описывают функции, которые будут вызываться по нажатию на кнопки, описывают запросы к бэкенду, загружают данные и отдают их в разметку. Разницу работы верстальщика и фронтенд-программиста можно описать через скелет и мышцы. Верстальщики «описывают» скелет, основу сайта, а программисты добавляют мышцы, чтобы привести эту разметку в движение.
Есть еще один тип программиста — фуллстек, как несложно понять из названия — это смесь фронтенд- и бэкенд-разработчиков. На небольших проектах, или же на проектах с ограниченным бюджетом, а также для работы с платформами, такими как Joomla, WordPress и подобных нанимают именно таких разработчиков. Их отличительная особенность в том, что они знают все, но по чуть-чуть, в отличии от узконаправленных специалистов. То есть для сложных задач, скорее всего такой специалист не подойдет.
Так и формируется ваша папка с сайтом. Там лежит код с настройкой сервера, код с описанием адресов к данным в базе данных, сама база данных, формат этих данных, разметка сайта, и функционал сайта.
Отдел качества
Затем, когда уже все настроено и готово (хотя бы частично), к работе приступает отдел по работе с качеством или тестировщики. Даже самые лучшие специалисты ошибаются, не продумывают все до мелочей, поэтому тестировщики необходимы на любом проекте, сколь маленьким он бы ни был.
Тестировщики просматривают каждый уголок вашего сайта по несколько раз, в разных условиях, на разных устройствах, с разных браузеров, чтобы каждый пользователь получил качественный сервис, и вы не потеряли ни одного потенциального клиента.
Опять же, из-за экономии, бывает, что роль тестировщика выполняет либо менеджер, либо руководитель проекта, либо сам заказчик. Такой вариант, конечно, так же приемлемый, но, как легко понять, специалист проделает эту работу быстрее и качественнее, и протестирует даже то, о чем рядовой пользователь даже не подумает.
Стоимость
По данным Хабр Карьеры стоимость каждого специалиста сильно варьируется в зависимости от региона и квалификации. Ниже приведены вилки зарплат всех специалистов, о которых упоминалось выше.
- Девопсы получают от 75 до 270 тыс. со средней зарплатой в 160 тыс. Бизнес аналитик. Вилка — 50-191 тыс. Средняя зарплата аналитика 104 тыс. рублей. Менеджер. Стоимость менеджеров очень сильно зависит от его обязанностей, начиная с 50 тыс. Максимальную зарплату имеет генеральный директор, и максимальная известная зарплата гендира составляет 740 тыс. Техлиды проекта имеют очень сильный разброс по стоимости: 80-400 тыс. Бэкенд-разработчики получают в среднем от 120 до 180 тыс, за медиану берут 140 тыс. Администратор баз данных в среднем по рынку получают 148 тыс. в месяц, вилка — 50-300 тыс. Верстальщик: 40-120 тыс. Фронтенд-разработчик: от 50 до 300 тыс. Фуллстек-разработчик: от 50 до 350 тыс. Тестировщик: от 40к до 250 тыс.
Самые высокие зарплаты по стране, конечно же, в Москве, а самые бюджетные — в Уфе.
Заключение
Итак, менеджер, фронтенд-разработчик, бекенд-разработчик, тестировщик, девопс — вот такая компания получилась. Размер ее варьируется, но в том или ином роде все равно все эти роли всегда присутствуют на любом проекте. Конечно же, каждая роль кроет в себе гораздо больше компетенций, но, тем не менее, этого достаточно для понимания процесса разработки и за что вы в конечном итоге платите.
Фото: Unsplash
Источник: