
Если спросить, что такое программное обеспечение, скорее всего, большинство ответит: программа на компьютере или телефоне, которая работает с данными. Тут возникает вопрос: сайт — это ПО или нет? А сайт с «начинкой» в виде 1С или платежного функционала?
За годы общения с заказчиками мы привыкли, что ПО, или софт, все понимают по-разному. Для одних это разработка сайтов со всеми интеграциями. Для других — создание веб- и десктоп-приложений. Для третьих — высоконагруженные решения.
По-своему правы все. Сайт — это действительно программа, которая работает с данными: отправляет заявки, принимает платежи, идентифицирует пользователя при авторизации. Что касается высоконагруженных систем, они могут быть самостоятельным ПО, а могут объединять в себе несколько отдельных программ.
Но так сложилось, что веб- и мобильную разработку принято отделять от разработки программного обеспечения. Это страхует заказчика и исполнителя от путаницы в терминах и стоимости и работ.
Типы программного обеспечения
Традиционно выделяют несколько видов программного обеспечения: системное, прикладное и инструментальное.
- Системный софт объединяет группы программ, которые обеспечивают работу компьютера. Это операционные системы, утилиты, программные оболочки и т.п. К системному ПО относится, например, OC Windows, архиватор RAR, файловые менеджеры, системы программирования.
- Прикладное ПО предназначено для решения практических задач пользователя. Microsoft Office, 1C: Бухгалтерия, Adobe Photoshop — это все прикладное программное обеспечение. Пример кастомного софта — наша система по управлению складами и товарными запасами, которую мы разработали для крупной швейной группы. Это масштабная платформа с каталогом товаров, личным кабинетом для сотрудников склада и менеджеров, автоматизированным документооборотом, сбором статистики и другими функциями. Внешне система напоминает сайт, но работает он за счет разных программ.
- Наконец, к инструментальному ПО относят программы, которые используются для создания новых приложений и информационных систем. По своей сути это — технологический стек.
Социализация софта
Программное обеспечение может быть интегрированным и, условно говоря, замкнутым. Ко второму типу относится софт, который работает самостоятельно, без взаимодействия с внешними системами. Интегрированное, наоборот, постоянно контактирует с другим ПО. Самый простой пример — программы «1С: Бухгалтерия», «1С: Управление складом» и «Битрикс24» под капотом интернет-магазина, которые постоянно обмениваются друг с другом данными. Еще один пример интегрированного ПО — облачный сервис, который разворачивается на базе сторонней облачной инфраструктуры. Получается приложение в приложении, своего рода матрешка.
Сейчас интегрированные приложения постепенно вытесняют замкнутые. Эпоха, когда каждый специалист локально работал в своей программе, заканчивается, и разработка софта социализируется. Что мы имеем в виду под социализацией? Возьмем бухгалтерию: раньше бухучет велся в отдельной программе на компьютере, а нужные данные заносились с помощью дискет, флешек и отправленных по почте файлов. Сейчас эта информация автоматически подгружается в бухгалтерский софт из других программ — системы учета товаров, интернет-магазина и так далее. Потом она так же автоматически отправляется дальше — например, в систему документооборота. Иначе говоря, процессы загрузки, выгрузки и передачи данных теперь выполняет не сотрудник, а алгоритм, а время на решение задачи сильно сокращается.
Высоконагруженные системы
Мы уже говорили, что под программным обеспечением многие понимают высоконагруженные системы. Самый простой пример такой системы — маркетплейс, который обслуживает тысячи пользователей и размещается на нескольких серверах. Но здесь есть свои нюансы.
Так, сайт может состоять из интерфейса и набора разного софта. Например, под капотом маркетплейса OZON находится множество программ: складской учет, логистические сервисы, бухгалтерия, бэкенд личного кабинета пользователя и так далее — и все они обмениваются данными. Так, когда система учета товаров получает сигнал, что посылка прибыла в пункт выдачи заказов, она отправляет эту информацию в другую программу — личный кабинет пользователя. Еще пример — один из наших кейсов, маркетплейс нефтепродуктов. Это сложная интегрированная система, которая состоит из бэкенда, приложений, 1С и Битрикс24.
Но может быть и так, что весь функционал интернет-магазина «зашит» в административной панели. Или так, что весь магазин сделан на 1С. И здесь мы возвращаемся к тому, с чего начали: грань между программным обеспечением, высоконагруженным сайтом и веб-разработкой провести сложно. Скорее это вопрос терминологии.
Более того: нельзя заранее сказать, для каких задач подойдет высоконагруженный сайт, для каких самостоятельное программное обеспечение, а для каких — микс разного софта. Решение всегда зависит от каждого конкретного проекта: его технологических особенностей, производственного цикла, бюджета и многого другого.