Pull to refresh
230.82
PVS-Studio
Static Code Analysis for C, C++, C# and Java

PVS-Studio и тренды 2023 года. Что волнует наших клиентов?

Level of difficultyEasy
Reading time9 min
Views1.2K

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

Пожалуй, важным наблюдением является, что наш продукт стал более интересен и востребован в России, чем в прошлые годы. ПВС, как и большинство отечественных компаний, попал в тренд импортозамещения. Здесь можно сказать "не удивили". Поскольку продукт изначально был создан в России (в 2008 году), нам не пришлось подстраиваться под изменившиеся реалии или специально переделывать что-то. Сложности оплаты, санкции, возросшие требования к информационной безопасности ПО — все эти факторы подтолкнули российский бизнес к поиску альтернатив. Кроме этого, в последние пару лет мы наблюдаем на отечественном IT-рынке запрос на более качественный и чистый код, что не может не радовать, так как одной из целей компании ПВС было и есть повышение культуры использования инструментов статического анализа.

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

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

Какие темы волновали IT-сообщество в прошлом году? Какие вопросы задавали тимлиды и разработчики?

Начнём по порядку.

Лично я участвовала в Highload, TeamLead, Joker, TAdviser SummIT и ещё нескольких более локальных мероприятиях. Коллеги, которые были на других конференциях, обогатили мои выводы своими наблюдениями.

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

Больше всего общались, конечно, с разработчиками: начинающие и опытные, работающие в финтехе или в игровой индустрии. И у всех очень похожие потребности: сделать свой код ещё лучше. Угадаете, какой у них был самый популярный вопрос? Правильно! "Когда вы научите PVS-Studio искать ошибки в JavaScript?" (замените на нужное: Python, Kotlin, Go и т.д.).

Действительно, не C++ единым живёт российское IT-сообщество, и разброс технологических стеков огромен.

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

В PVS-Studio выбрали другой путь. Вместо количества мы сосредоточились на качестве анализа, на глубокой специализации небольшого количества языков программирования. Анализатор кода для каждого языка у нас имеет свой технологический стек и экспертизу. Задача нашего инструмента — найти как можно больше значимых ошибок и уязвимостей, часто довольно специфических. Это невозможно без учёта особенностей каждого отдельного языка. PVS-Studio применяет такие технологии, как анализ потока данных (Data-Flow Analysis), символьное выполнение (Symbolic Execution), аннотирование методов (Method Annotations), сопоставление с шаблоном (pattern-based analysis). У нас есть несколько команд, каждая из которых пишет диагностики для отдельного языка: команда C/C++, команда C#, команда Java. Добавление нового языка на таком же уровне, как у уже имеющихся, потребует много ресурсов и времени.

Тем не менее развиваться мы всё же планируем и присматриваемся к другим востребованным языкам. Понять, в какую сторону двигаться дальше, на какие языки обратить внимание прежде всего, — довольно непростая задача. Так что пока ориентируемся по общению на конференциях. По ощущениям сейчас самые востребованные и в то же время самые близкие к нашей экспертизе — это JavaScript/TypeScript и Kotlin. Если у вас другое мнение, поделитесь им в комментариях.

Менеджеров технические особенности продукта волновали ожидаемо меньше. Больше интересно было, какие бизнес-задачи поможет решить PVS-Studio. Непростые, а иногда даже взаимоисключающие: как сэкономить, не потеряв в качестве, и остаться при этом в рекомендованных регулятором рамках? Чем заменить привычные зарубежные инструменты?

Не удивительно, что множество раз на каждой конференции 2023 года я и мои коллеги слышали такой вопрос:

"Чем ваше решение отличается от SonarQube?"

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

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

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

Сравнивать сложно, так как продукты совершенно разные. SonarQube — это даже не анализатор, а платформа для контроля качества кода, которая работает с разными анализаторами. PVS-Studio — статический анализатор кода, то есть более специализированный инструмент для поиска ошибок, который умеет встраиваться в процесс разработки с разными сценариями использования:

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

SonarQube, как уже упоминалось, платформа с открытым исходным кодом, который можно использовать с бесплатными языками. Но и тут есть исключения. Анализатор для C и C++, если таковой потребуется, придётся приобретать отдельно. У PVS-Studio в лицензию включены все языки. И мы заявляем о себе как о коммерческом продукте, хотя есть варианты бесплатного использования.

Есть отличия и в подходах к анализу. PVS-Studio специализируется только на поиске ошибок и потенциальных уязвимостей, а в SonarQube присутствует поиск рекомендаций по улучшению кода, так называемых "Code smells".

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

Отличие, которое в последнее время приобретает все большее значение: PVS-Studio включён в реестр российского ПО.

Кроме специфических, есть и более универсальные особенности, которые отличают PVS-Studio не только от SonarQube, но и от других аналогичных игроков рынка.

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

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

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

Что касается сравнения функциональных возможностей, то здесь намного сложнее. В России сейчас совсем немного инструментов, выполняющих те же задачи, что и PVS-Studio. Некоторые больше заточены на поиск уязвимостей в коде. Наш продукт помогает искать и ошибки, и потенциальные уязвимости (SAST). Объективно оценить преимущества и недостатки очень непросто. Не у всех производителей статических анализаторов можно так же легко получить триал, как у нас. Процесс проверки на разных проектах будет показывать разные результаты за разное время. Всё очень индивидуально, сложно оставаться беспристрастными. Поэтому мы решили дать разработчикам возможность попробовать продукт и сделать собственные выводы. Для этого мы максимально упростили получение триала на сайте. Нужно только указать почту и выбрать желаемый тип лицензии. Заодно в процессе пилота можно протестировать и нашу поддержку. Если с изучением документации что-то пойдет не так, всегда можно написать нам: "Ой... У меня не... Помогите разобраться, пожалуйста!"

Еще одно наше отличие — небольшой размер компании, и, как следствие, гибкость. Этим объясняется хороший уровень поддержки и глубокая техническая специализация. Мы можем себе позволить быть ближе к клиенту. У нас, например, удобная и понятная модель лицензирования. Мы считаем разработчиков, а не компьютеры или строки кода. Мы не продаем отдельно языки, диагностики или другие функциональные возможности анализатора, все это входит в каждую лицензию по умолчанию. Небольшие ограничения есть в минимальной лицензии Team, но они обычно вполне укладываются в потребности маленьких команд (одна ОС на выбор, нет плагина для SonarQube). От уровня Enterprise и выше доступны все возможности анализатора, в том числе помощь со специфическими клиентскими настройками. Подробная таблица с отличиями лицензий есть на сайте PVS-Studio.

Наша компания широко трактует понятие "сублицензирование": клиенту не надо тратиться на несколько лицензий для разных команд, есть возможность приобрести одну большую и распределить между пользователями (в том числе командам, трудоустроенным в разных юридических лицах). Пример на практике: у вас есть две команды — 12 и 25 человек — в разных городах, сотрудники трудоустроены в ООО "Ромашка" и ООО "Василёк", но работают над одним большим проектом. На первый взгляд кажется, что надо покупать две отдельные лицензии Enterprise30 (от 10 до 30 пользователей). И у некоторых коллег по рынку лицензирование проходит действительно так. В ПВС можно приобрести одну большую лицензию Enterprise50 на две команды сразу. Разница в стоимости составит почти 60% в пользу одной большой лицензии по сравнению с двумя маленькими.

Ещё один вопрос, который волнует чаще всего специалистов по информационной безопасности: "Есть ли у продукта PVS-Studio сертификат ФСТЭК?"

Ответ: нет. По закону сертификация до четвёртого уровня доверия является добровольной. Он не самый высокий, но самый распространённый. Именно на этом уровне работают большинство наших заказчиков. PVS-Studio закрывает все функциональные требования, предъявляемые ФСТЭК к статическим анализаторам до четвертого уровня доверия включительно. Наши клиенты могут пользоваться PVS-Studio и затем проходить сертификационные испытания для своего ПО, если это необходимо. Будем рады дать подробные комментарии и ответить на вопросы по этой теме.

"Сколько стоит лицензия?"

Хороший вопрос. Его часто задавали и разработчики, и менеджеры. Мы, конечно, давали конкретный ответ в цифрах (если интересно, то ответим и Вам). Сложно сразу сориентироваться, много это или нет, поэтому добавляли, что наша самая популярная лицензия обойдётся компании примерно как год работы ещё одного разработчика. Или даже дешевле, если вычесть отчисления в пенсионный фонд, налоги, соцпакет и расходы на кофе. Анализатор не устаёт, у него не замыливается глаз на code review. Если серьёзно, конечно, никакой статический анализатор не заменит разработчика, но освободит ему время для действительно интересных творческих задач, которые в итоге и принесут прибыль компании (time to market).

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

На волне интереса к возможностям искусственного интеллекта был частый вопрос: "А не заменит ли ChatGPT инструменты статического анализа?"

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

Напоследок хочу разбавить повествование более лёгкими и забавными примерами общения.

От тех, кто никогда не слышал о нас (да, есть и такие), был такой вопрос:

PVS-Studio – это стартап?

Иногда даже терялась, что ответить. В 2023 году компания отметила своё 15-летие:

Даже на фото видно, что продукт уже достаточно взрослый (обратите внимание на галстук!).

С 2008 года компания проделала долгий путь. История становления от первых идей и ошибок до успеха подробно описана в этой статье. Лично я ещё раз открыла для себя банальную истину: наше представление о том, что действительно нужно миру, часто не совпадает с реальностью. Никогда нельзя решать за клиента, а лучше переспросить несколько раз, что же всё-таки ему нужно. Мне нравится, что наша компания сохранила этот прикладной подход. Не "наука ради науки", а диалог с клиентом. За 15 лет мы накопили солидную экспертизу, многие наши диагностики — ответы на реальные запросы наших заказчиков, решение их технических и бизнес-задач.

Есть другая крайность: "PVS-Studio – отличный продукт, жаль, что он зарубежный!"

То есть имидж настолько хорош, что многие не могут поверить, что продукт родом из России.

С одной стороны, это приятно. А с другой — из-за такого мнения многие уже на старте отказываются от попытки попробовать анализатор. Мол, всё равно сложно будет купить и поддерживать. Давайте попробуем развенчать этот миф.

Вот здесь можно посмотреть доказательства:

Исключительные права на лицензию.

Запись в реестре отечественного ПО.

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

Мы всегда открыты для знакомства и личного общения: на конференциях, митапах, бизнес-завтраках.

Также есть более привычные каналы связи, если пока не планируете поездки:

Будем рады ответить на вопросы!

Tags:
Hubs:
Total votes 15: ↑14 and ↓1+13
Comments3

Articles

Information

Website
pvs-studio.com
Registered
Founded
2008
Employees
31–50 employees