Для получения триального ключа
заполните форму ниже
Team License (базовая версия)
Enterprise License (расширенная версия)
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

** На сайте установлена reCAPTCHA и применяются
Политика конфиденциальности и Условия использования Google.
Запросите информацию о ценах
Новая лицензия
Продление лицензии
--Выберите валюту--
USD
EUR
GBP
RUB
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

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

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

** На сайте установлена reCAPTCHA и применяются
Политика конфиденциальности и Условия использования Google.
Мне интересно попробовать плагин на:
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

** На сайте установлена reCAPTCHA и применяются
Политика конфиденциальности и Условия использования Google.
Ваше сообщение отправлено.

Мы ответим вам на


Если вы так и не получили ответ, пожалуйста, проверьте папку
Spam/Junk и нажмите на письме кнопку "Не спам".
Так Вы не пропустите ответы от нашей команды.

>
>
CppCat – тульский анализатор кода C++ с…

CppCat – тульский анализатор кода C++ с большими амбициями

04 Фев 2014

Сегодня мы разговаривали с Евгением Рыжковым, генеральным директором компании "Системы программной верификации", которая занимается разработкой программного обеспечения в области тестирования программ и систем статического анализа исходного кода. У них есть два продукта — PVS-Studio и свежий CppCat, это инструменты статического анализа кода на C++.

К сожалению, мы больше не развиваем и не поддерживаем проект CppCat. Вы можете почитать здесь о причинах.

Эта статья впервые была опубликована (на русском языке) на сайте siliconrus.com. Это интервью, взятое редактором сайта Константином Панфиловым у Евгения Рыжкова. Статья размещена в нашем блоге и переведена с разрешение редакции.

0232_Ryzhkov_siliconrus_ru/image1.png

Рисунок 1 - Евгений Рыжков

Обсудили особенности отладки, сложности запуска международного бизнеса из Тулы, ценообразование в этой области и котов.

Панфилов: Добрый день! Расскажите немного о том, чем вы вообще занимаетесь, почему, с кем вы это делаете.

Рыжков: Я работаю в компании "СиПроВер" (Системы программной верификации), которую мы основали вместе с моим коллегой и партнером по бизнесу Андреем Карповым. Мы находимся в провинциальном городе Тула, который славен оружием, самоварами и пряниками. Поскольку всем этим зарабатывают на жизнь другие люди и ниши явно заняты, то мы занимаемся не совсем привычной для России темой. Мы создаем инструменты для программистов. А если более конкретно, то создаем инструменты статического анализа C++ кода.

Сейчас в команде всего шесть человек, однако таким небольшим коллективом нам удается делать довольно крутые и сложные штуки. Я имею в виду, прежде всего, анализатор кода PVS-Studio и наш новый продукт CppCat, который является сильным переосмыслением PVS-Studio с другой ценовой и лицензионной политикой.

0232_Ryzhkov_siliconrus_ru/image2.png

Рисунок 2 - Андрей Карпов, кофаундер

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

Наш основной продукт PVS-Studio мы продвигаем, рекламируем и продаем сами. Ну и, естественно, сами же его и разрабатываем.

КП: И чем отличается CppCat от PVS-Studio?

ЕР: Прежде всего PVS-Studio — довольно дорогой и сильно нишевый продукт. Сейчас минимальная лицензия на команду до 9 человек стоит €5250. Кроме того, это продукт с историей (он появился в начале 2011 года), и за это время он оброс большим количеством функций, которые не всем нужны. Поэтому осенью 2013 года у нас появилось желание попробовать сделать наш продукт как бы с нуля.

В результате за 3,5 месяца мы разработали новый продукт (естественно, на основе старого), выкинули из него то, что, как нам кажется, усложняло восприятие, и сделали новую ценовую политику. Продукт лицензируется на разработчика по цене в $250. Продукт был запущен на Новый год. И мы очень удивились тому, что нам самим удалось это сделать всего за 3,5 месяца. Кстати, про название продукта — расскажу историю его появления.

0232_Ryzhkov_siliconrus_ru/image3.png

Рисунок 3 - Комната отдыха в офисе. Правильно, расслабляться некогда!

Вообще, придумывать названия — это очень сложно. Каждый, кто этим занимался, знает, ну а те, кому не доводилось, наверное, пока не поверят. Так вот нам нужно было название, которое: 1) говорило, что продукт для C++—программистов; 2) было свободным (поэтому всякие cppcheck и codescan отпадали); 3) было прикольным; 4) можно было сделать логотип.

Ну а поскольку считается, что программисты любят котиков, то весь сайт Cppcat увешан нашим логотипом (если покрутить). Так что из 3,5 месяцев недели две заняло продумывание концепции названия и около месяца — создание логотипов и тестирование их на фокус-группах.

0232_Ryzhkov_siliconrus_ru/image4.png

Рисунок 4 - Как рождался CppCat

КП: Вот PVS-Studio вы продаёте за такие деньги — вправду находятся желающие? Неужто стандартный отладчик в Visual Studio настолько плох?

ЕР: Надо сразу сказать, что 85% продаж - это США и Европа, на Россию приходится только 10%. Вообще, инструменты статического анализа довольно дороги в мире. Их сложно продать тысячам клиентов, поэтому продаются они за существенные деньги. Дело не в том, что отладчик Visual Studio плох. Решение о том, применять ли наш или какой другой инструмент статического анализа, клиент принимает так. Он запускает триал, смотрит на найденные ошибки. Если среди этих ошибок он находит что-то интересное, то прикидывает, сколько времени потребовалось бы программисту для нахождения и исправления этой ошибки. А затем прикидывает стоимость часа работы. И если оказывается, что инструмент может экономить время на поиск ошибок, то он будет куплен. Здесь есть сразу несколько проблем с продажами, о которых хочется рассказать.

Во-первых, программист может не найти в списке найденных ошибок интересных сообщений. И не потому, что инструмент их не нашел. Но, к примеру, если инструмент выдал 300 сообщений, то программист внимательно просмотрит первые 10. Затем менее внимательно — еще 20. И потом уже не будет изучать оставшиеся. Очень важно подсунуть в список интересные ошибки первыми.

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

0232_Ryzhkov_siliconrus_ru/image5.png

Рисунок 5 - Ещё одно фото из офиса — бубен от Intel. А то какая ж отладка без бубна.

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

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

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

КП: Да, это тоже важно, но сперва мне интересно узнать, как вам удалось так быстро запуститься.

ЕР: Нет-нет, к сожалению мы не запустились быстро. Наша компания основана в 2008 году, мы уже тогда начинали заниматься технологиями анализа кода. Наш первый продукт назывался Viva64 и был предназначен для поиска проблем миграции приложений на 64-битные системы. Кстати, выявление проблем миграции на 64-битные системы — тема моей кандидатской диссертации, так что продукт рос параллельно с научной деятельностью. А мой коллега Андрей Карпов делал диссер про параллельное программирование. Естественно, мы работали программистами, но хотелось поделать что-то своё. И мы сделали Viva64. К сожалению, тогда опыта продаж у нас было ещё меньше, чем сейчас. И долгое время продукт не приносил денег на то, чтобы быть самостоятельным бизнесом без подработок в виде аутсорсинга.

0232_Ryzhkov_siliconrus_ru/image6.png

Рисунок 6 - Подкову советуют прибивать к системному блоку, а она почему-то висит на стене.

Кроме того, видимо, продукт опередил свое время. Мы рассчитывали, что будет резкий переход на 64-битные системы, а оказалось, что это затянутый во времени процесс, который не завершился до сих пор. Ну и ещё программистам оказалось очень сложно рассказывать про 64-битные ошибки, люди не верили нам. Так что первый блин был как полагается. Поэтому к 2011 году мы разработали анализатор кода общего назначения PVS-Studio, который уже был более понятен людям, и продажи, что называется, пошли.

Ну и ещё нам повезло, конечно. Не в том смысле, что "ничего не делали, а тут как подфартило..." Нет, мы много-много работали, и однажды утром я увидел в свой почте уведомление о покупке из id Software от пользователя с именем John Carmack. Проверив несколько раз, что это не фрод, я приятно удивился. Но радость от того, что ты делаешь, по-настоящему накрыла меня, да и всю нашу небольшую команду, когда на QuakeCon 2011 Кармак со сцены положительно отозвался про PVS-Studio. Я хочу для читателей только пояснить, зачем я это говорю. Не только для того, чтобы похвастаться. Хотя это и приятно. Важно понимать: для того, чтобы о вас написал какой-нибудь крутой товарищ, нужно очень много сделать предварительной работы, которая на первый взгляд может быть и не видна.

Ну а запуск CppCat за 3,5 месяца произошел потому, что продумывание концепции продукта шло довольно долго, и мы знали проблемные места PVS-Studio, которые нам надо так или иначе порешать.

КП: Ого, Кармак — это круто, конечно.

ЕР: Кстати, сейчас мы так и продаем два продукта — PVS-Studio и CppCat, они живут параллельной жизнью и помогают друг другу.

0232_Ryzhkov_siliconrus_ru/image7.png

Рисунок 7 - Кармак радуется продуктам из России

КП: А вот вы там у себя на сайте издеваетесь над Chromium, MTA, Doom 3 и т. п. — это не доказательство того, что ошибки можно искать бесконечно?

ЕР: Константин, вы затронули мою любимую тему — продвижение наших продуктов. Наша аудитория — это крутые и опытные программисты. Решение о покупке принимает тимлид (если речь о крупных компаниях) или директор по разработке (если о мелких). Для таких людей можно хоть весь интернет завесить банерами "Наш продукт лучше всех, купи и забудешь о проблемах!" — они на это не купятся.

Более того, многие программисты либо используют AdBlock, либо за годы приучили глаза на баннеры не смотреть, а к рекламным обзорам они относятся крайне скептически. Поэтому несколько лет назад мы, на самом деле, довольно случайно открыли для себя наиболее удачный формат для продвижения. Мы берем open source проект. Желательно поизвестнее. Проверяем его. Находим десяток ошибок и пишем про это статью. Лучше всего такие статьи получаются у Андрея, он уже мастер в их написании. В чем идея таких статей? Мы НЕ стремимся показать, что все эти проекты написаны новичками и неумехами. Мы говорим: "Смотрите, даже разработчики Chromium допускают ошибки! Может, и вы проверите свой проект? Вдруг и вы не совершенны?".

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

0232_Ryzhkov_siliconrus_ru/image8.png

Рисунок 8 - Скриншот программы (для порядка)

Кстати, нам очень повезло с целевой аудиторией (программисты). За годы работы я это понял. У нас на 100 обращений только одно-два неадекватных, часто люди присылают разумные баг-репорты, стек-дампы, а иногда даже подсказывают, как нам исправить ошибки в наших инструментах (при этом нередко правильно подсказывают). Я просто сравниваю это с пользователями других продуктов (по историям от друзей) — нам сказочно повезло с пользователями.

КП: Да, что будет, если прогнать через CppCat код самого CppCat?

ЕР: Один из самых частых вопросов. Мы регулярно используем свои же собственные инструменты. Как правило, они выявляют ошибки в момент написания кода, когда сразу после компиляции запускается анализ. Ошибки тут же правятся. Поэтому мы никогда не сможем выпустить статью типа "Мы нашли 20 ошибок в своем анализаторе". Не потому, что ошибок не делаем. Делаем, ещё как. А потому, что сразу их исправляем и они даже в баг-треккер не попадают.

КП: Отлично. Вот насчёт денег — вы отбиваетесь уже? Сколько у вас вообще клиентов, какой оборот?

ЕР: С точки зрения бизнеса, мы старались всегда быть прибыльными, так как запускались и работали на свои. Точнее так, мы никогда не были убыточными, поскольку не можем себе этого позволить. Отчасти поэтому мы до сих пор такие маленькие, хотя и хочется подрасти, конечно. Про оборот. Ну смотрите, за 2013 год у нас было около 40 продаж PVS-Studio. Это не все новые лицензии (у нас часто клиенты продлевают лицензию на год за 80% стоимости). Там есть и обычные лицензии, и подороже (Site License на много разработчиков), но есть и продажи подешевле, когда мы экспериментировали с ценами. Так что эти цифры — неплохая оценка нашего бизнеса. Не волшебно конечно, и всегда хочется большего. Но пока так.

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

КП: Серьёзно, на свои, без внешних инвестиций?

ЕР: Да. Но на заре нашей деятельности, когда еще бума инвестиций в России не было, мы пробовали общаться с некоторыми фондами. Везде был ответ в стиле: "Когда будет действующий бизнес, приходите". Когда появился действующий бизнес, они отвечали: "Когда будет ТАКОЙ-ТО доход, тогда и приходите". А когда доход стал ТАКИМ-ТО, то они уже и не очень то нужны оказались. Так что мы довольно давно и не пытались с кем-то общаться по этому поводу. Вот такая вот история взаимоотношений с инвесторами. Допускаю, что много ситуаций, когда это окажется взаимовыгодно, но нам с нашей узкой темой это не помогло.

КП: Пока всё довольно радужно, так не бывает. В чём у вас сомнения есть?

ЕР: Как всегда, кроме позитивных моментов, есть и то, что не получается. Не получается выйти на большую аудиторию разработчиков из США и Европы, не получается добиться большого количества чтений статей и загрузок триалов. Вроде бы и работаем, и старемся, а результаты не достаточно радуют. Как посмотришь на какой-нибудь график Google Analytics у коллег, и думаешь: "Как же они могут столько тысяч посетителей привлечь? Что я делаю не так?". Аж слюнки текут: "Мне бы такой трафик!".

Только не надо комментариев в стиле: "Ясное дело, что из Тулы вы не выйдете на США и Европу!".

КП: Да ну, какая разница, люди же к вам на сайт приходят, а не в офис, всё правильно.

ЕР: Да, но мы тупо не понимаем, к примеру, на каких сайтах тусуются программисты из США. То есть стараемся, и первые пять сайтов, которые назовут в комментах — мы с ними пробуем работать. Но, видимо, недостаточно. Короче, направление интернет-маркетинга у нас, видимо, пока страдает. Я про то, что нельзя прийти на новый форум, зарегистрировать нулевый аккаунт и написать: "Ребята, качайте вот тут продукты".

КП: Ничего, думаю, у вас всё наладится.

ЕР: Сам так думаю :-)

КП: Большое спасибо!

Популярные статьи по теме
Любите статический анализ кода!

Дата: 16 Окт 2017

Автор: Андрей Карпов

Я в шоке от возможностей статического анализа кода, хотя сам участвую в разработке инструмента PVS-Studio. На днях я был искренне удивлён тому, что анализатор оказался умнее и внимательнее меня.
Бесплатный PVS-Studio для тех, кто развивает открытые проекты

Дата: 22 Дек 2018

Автор: Андрей Карпов

В канун празднования нового 2019 года команда PVS-Studio решила сделать приятный подарок всем контрибьюторам open-source проектов, хостящихся на GitHub, GitLab или Bitbucket. Им предоставляется возмо…
Технологии, используемые в анализаторе кода PVS-Studio для поиска ошибок и потенциальных уязвимостей

Дата: 21 Ноя 2018

Автор: Андрей Карпов

Краткое описание технологий, используемых в инструменте PVS-Studio, которые позволяют эффективно обнаруживать большое количество паттернов ошибок и потенциальных уязвимостей. Статья описывает реализа…
Зло живёт в функциях сравнения

Дата: 19 Май 2017

Автор: Андрей Карпов

Возможно, читатели помнят мою статью под названием "Эффект последней строки". В ней идёт речь о замеченной мной закономерности: ошибка чаще всего допускается в последней строке однотипных блоков текс…
Статический анализ как часть процесса разработки Unreal Engine

Дата: 27 Июн 2017

Автор: Андрей Карпов

Проект Unreal Engine развивается - добавляется новый код и изменятся уже написанный. Неизбежное следствие развития проекта - появление в коде новых ошибок, которые желательно выявлять как можно раньш…
PVS-Studio для Java

Дата: 17 Янв 2019

Автор: Андрей Карпов

В седьмой версии статического анализатора PVS-Studio мы добавили поддержку языка Java. Пришло время немного рассказать, как мы начинали делать поддержку языка Java, что у нас получилось и какие дальн…
Характеристики анализатора PVS-Studio на примере EFL Core Libraries, 10-15% ложных срабатываний

Дата: 31 Июл 2017

Автор: Андрей Карпов

После большой статьи про проверку операционной системы Tizen мне было задано много вопросов о проценте ложных срабатываний и о плотности ошибок (сколько ошибок PVS-Studio выявляет на 1000 строк кода)…
PVS-Studio ROI

Дата: 30 Янв 2019

Автор: Андрей Карпов

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

Дата: 22 Окт 2018

Автор: Андрей Карпов

PVS-Studio, как и другие статические анализаторы кода, часто выдаёт ложные срабатывания. Но не стоит спешить считать странные срабатывания ложными. Это короткая история о том, как PVS-Studio вновь ок…
Главный вопрос программирования, рефакторинга и всего такого

Дата: 14 Апр 2016

Автор: Андрей Карпов

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

Комментарии (0)

Следующие комментарии

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