Об альтернативности программного обеспечения
Введение
В настоящее время происходит «переоценка ценностей» на рынке программного обеспечения (ПО). Если ранее в умах, определяющих развитие ИТ в стране, и потребителей, господствовала идея использования коммерческого ПО как наиболее надежного способа решения задач, то теперь такой однозначности нет. Упоминание в числе экономических санкций возможности снятия обязательств по зарубежному проприетарному ПО со стороны ряда крупных поставщиков усилило недоверие к такому выбору. Свою роль сыграли и разоблачения Сноудена, подтвердившие существовавшие ранее у многих конспирологические подозрения в безопасности зарубежной ИТ-продукции.
В прессе начали появляться и конкретные примеры использования недокументированных возможностей ПО. Так, недавно опубликован пример блокировки ПО, работоспособность которого контролируется извне, – пример отключения софта для поддержки процесса обучения в ВУЗе.
Представляется, что рынок ПО уже не будет таким, каким был до объявления о возможности применения санкций. Всем категориям потребителей и поставщиков ИТ-решений наглядно продемонстрированы риски исторически сложившейся схемы лицензирования, разработки и использования программного обеспечения – технические, политические и экономические.
Одним из важных потребителей ПО является государство, а также организации с государственным участием. Ими осознается возрастающая зависимость всей инфраструктуры общества от применяемого ПО, поэтому они будут учитывать этот фактор и оказывать различного рода поддержку и стимулировать развитие критичных компонентов ИТ. При этом фактор независимости от «внешнего управления ИТ-инфраструктурой» становится важнее временных экономических потерь, связанных с модернизацией и заменой критичных технологий.
Можно предположить, что существующие тенденции приведут к тому, что в ближайшем будущем мы окажемся в условиях большей альтернативности при выборе отечественного ПО. Появится необходимость заново выбирать наиболее подходящие программные решения. Критерии такого выбора противоречивы. Успешное ПО должно удовлетворять все заинтересованные стороны в Российском обществе: конечных пользователей, работников ИТ- индустрии и государство. Также необходимо соблюдение всеми необходимых правовых обязательств.
Альтернативные варианты, критерии их оценки и выбора интересуют как конечных потребителей, так и специалистов в области ИТ. Первых интересует, какие способы решения задач являются наиболее безопасным, менее затратным и рискованным вложением ресурсов, а вторых – куда перспективнее вкладывать силы при развитии компетенций и разработке новых продуктов. Это касается как ПО, так и используемых для его работы аппаратных платформ.
Изложенное выше в первую очередь относится к востребованным большинством пользователей массовым типам ПО. Это операционные системы для каждой из распространенных аппаратных платформ и форм-факторов компьютерных устройств, офисные пакеты, программы просмотра информации в Интернет (браузеры), плееры для аудио и видео файлов, клиентские программы для работы с электронной почтой, средства голосовой и видео связи и другие.
Альтернативность информационных технологий
Конечный пользователь, как правило, останавливается на одном из вариантов каждого типа ПО, выбирая для себя наиболее подходящую из доступных альтернатив. Рассмотрим возможные тенденции в выборе из имеющихся вариантов некоторого типа ПО в условиях современной России.
Исходя из здравого смысла, наличие одной достаточной по функциональности и эксплуатационным требованиям, устраивающей всех альтернативы для каждого типа применяемого ПО имеет свои преимущества. В частности, все пользователи усваивают одинаковые навыки работы, упрощается тиражирование и обслуживание ПО. Однако в силу исторических причин, наличия и особых требований к функциональности каждого типа ПО, использование единственного варианта является благим пожеланием. Однако альтернатив одного типа ПО не должно быть и слишком много.
Целесообразно стимулирование наиболее перспективного в своем классе ПО, чтобы появление доминирующего варианта происходило достаточно быстро и с минимальными издержками. Для этого нужны поддерживаемые обществом механизмы, способы поведения, ускоряющие появление доминирующей на рынке альтернативы.
Наиболее очевидным подобным механизмом является принятие в качестве стандарта, сертификация и поддержка уполномоченными структурами государства одного наименования ПО каждого типа. Можно предположить, что в сложившихся условиях во многих случаях будут поддерживаться адаптированное к условиям России ПО с открытым исходным кодом, а также коммерческое ПО, разработанное российскими компаниями. Критерии отнесения ПО к российскому в настоящее время рассматриваются Министерством связи.
Полезны также другие механизмы отбора, позволяющие оптимизировать и ускорить выбор перспективного лидера рынка по всем актуальным видам программных продуктов. В частности, одним из таких механизмов является обсуждение и оценка вариантов развития ПО, поиск перспективных альтернатив профессиональным сообществом. Для этого используется имеющаяся виртуальная и традиционная коммуникационная среда – блоги, статьи, обсуждения на различных мероприятиях, форумах. Коллективное обсуждение позволяет согласовать требования и определить «что хорошо и что плохо» в возможных альтернативах ПО различного типа.
Принципы выбора ПО из имеющихся альтернатив
Оптимальным вариантом использования механизмов поддержки и выбора ПО является сочетание учета мнения профессионального сообщества, опосредующего мнения пользователей и поддержки наиболее эффективного варианта с помощью ресурсов государства.
Перечислим основные критерии для выбора предпочтительной альтернативы ПО некоторого типа:
-достаточная функциональность и удобство интерфейса для замещения программных продуктов, использование которых не является перспективным в условиях России;
-совместимость с замещаемыми программами по форматам данных и способам их передачи;
-возможность контроля безопасности применения и отсутствия недокументированных возможностей;
-эффективная инфраструктура разработки и поддержки выбранного варианта ПО, наличие условий для ее формирования;
-возможность использования различных бизнес-моделей для применения и развития выбранного варианта ПО, удобных для каждой категории потенциальных пользователей.
Должна быть сформулирована цель выбора или создания нового ПО, а также появиться список замещаемых программных продуктов и рекомендуемых альтернатив. Технические требования к перспективным продуктам должны быть сформулированы с участием заинтересованных специалистов и основных пользователей соответствующего типа ПО.
Одной из основных проблем в выборе и внедрении каждого типа ПО является неуправляемое появление альтернативных решений. Чрезмерная альтернативность имеет различные причины, в том числе технические, организационные, субъективные. Примером этого явления является появление форков, ветвлений исходного программного проекта. Не будем подробно останавливаться на особенностях появления альтернатив некоторого типа ПО, а постараемся рассмотреть общий вопрос: сколько же альтернативных продуктов одного типа целесообразно иметь?
Стратегии выбора ПО
Наверно, использование одного программного продукта некоторого типа недостаточно. Одной альтернативы слишком мало. Это не позволит в достаточной мере учесть перспективные пути развития, встроить ПО в специфические пользовательские ниши, требующие особой функциональности, да и в целом приведет к утрате состязательности в развитии в стране данного вида ПО. Ну а стимулировать применение и развитие десяти вариантов ПО одного типа, все-таки некоторый перебор, ведущий к дополнительным издержкам.
Есть вариант – ничего не делать и дать развиваться каждой рыночной нише так, как получится. Однако такой вариант, хотя и кажется очевидным, представляется нежелательным, поскольку результат появится через годы и может оказаться не вполне удачным, будет зависеть от различных случайных и субъективных факторов.
Представляется, что следует из некоторых общих соображений обосновать оптимальное (необходимое) разнообразие ПО каждого типа, чтобы обеспечить рациональное использование доступных для развития ПО ресурсов. Сообщество пользователей должно спрогнозировать перспективы развития и выработать требования к направлениям совершенствования соответствующего ПО.
Обобщая сказанное выше, можно предложить три возможных варианта стратегии по развитию конкретного типа ПО:
1) Стремиться к доминированию одного наименования некоторого типа ПО, если это возможно.
2) Продвигать 2-3 наименования ПО, один из которых считать основным, а использование желающими остальных не возбраняется. При неблагоприятном для основного варианта стечении обстоятельств один из резервных вариантов может заменить основной.
3) оставить все как есть и следовать складывающимся естественным путем тенденциям, как это и происходит сейчас.
У каждой из рассмотренных стратегий найдутся свои сторонники и противники, однако в любом случае полезно определиться со стратегией выбора альтернативных вариантов в каждом конкретном случае.
Конкретные примеры применения перечисленных вариантов можно увидеть в недавних ИТ- публикациях.
Например, рассматривается возможность приравнять программное обеспечение к вооружениям. Очевидно, те реализации соответствующего типа ПО, которые получат статус вооружения, с высокой вероятностью окажутся монополистами на рынке. Однако получит ли, например, офисный пакет статус вооружения – вопрос политический. Понятно, что это удобный способ обеспечить желаемую траекторию развития, но здесь есть существенная опасность выбора не самого эффективного в перспективе решения.
Отдельные компании – производители ПО заранее предусмотрели использование распространенных вариантов ПО других поставщиков вместе с собственными программными разработками с тем, чтобы встраивать собственные решения в наиболее распространенные типы программных решений, использующихся у Заказчиков. Такой подход имеет право на жизнь для инфраструктурного ПО, однако не способствует ограничению альтернативности для программного обеспечения, применяемого конечными пользователями.
Поддержка ПО: если поддерживать, то как?
Какие рациональные варианты поддержки развития заданного типа ПО можно предложить? Одна из эффективных стратегий: определить самый эффективный и востребованный вариант, разрабатывать его (или функциональный аналог, не имеющий неудобных лицензионных ограничений) с учетом наиболее вероятных тенденций развития данного типа ПО. Затем можно рекомендовать использовать выбранное решение и стимулировать его совершенствование, в том числе, приняв как стандарт для основных потребителей. Развитие и оптимизация необходимого функционала может, в том числе, поддерживаться государством имеющимися в его распоряжении легитимными способами. Такой подход применим для массового ПО, используемого в госструктурах, сфере образования, а также в случаях, когда некоторый программный функционал используется в определенных ситуациях большинством пользователей.
В целом, целесообразно вкладывать ресурсы в развитие, расширение понятной и востребованной функциональности, а не топтаться на месте, распыляя ресурсы на разработку похожих и в общем-то равноценных решений.
Выводы
Выше мы попытались обозначить основные проблемы, связанные с многообразием в развитии ПО, и предложить подходы к сокращению числа поддерживаемых альтернатив. Решение подобных задач обычно считается очевидным. Однако оптимальное решение этого вопроса имеет сейчас большое значение в связи с появлением «развилки», связанной с межгосударственными проблемами, которая стимулирует осознание и изменение существовавших ранее тенденций в развитии ПО.
Необходима выработка критериев эффективности по каждому типу ПО и выбор наилучшей стратегии развития и поддержки одного доминирующего или нескольких продуктов по каждому из типов. Это позволит осознанно осуществлять выбор альтернатив, иметь план действий, а не действовать в режиме реагирования на неожиданно возникающие обстоятельства. Такой подход позволит обозначить направление движения, конечную цель и способы ее достижения по каждому программному продукту.