PVS-Studio. Отсчёт цен в обратную сторону

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



Данная статья не актуальна и не отражает текущих цен на PVS-Studio. Пожалуйста, обратитесь к странице покупки для получения актуальной информации.

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

Picture 1

Как все начиналось

Изначально, мы (Андрей Карпов и Евгений Рыжков) хотели создать один или несколько небольших продуктов, в духе shareware. Душа, насыщенная мотивационными книгами, требовала действия. Мысли были разные, но долго ничего не придумывалось. Не хотелось делать очередной клон чего-то. Если бы в то время уже были распространены iPad и прочие планшеты, думаю, наш выбор бы очевиден. Неизвестно, как сложилась бы альтернативная история, где мы попытались бы делать игры или что-то ещё. И теперь уже не узнаем. Но на тот момент придумать что-то было непросто. Индустрии iXxx ещё не было. Сайтами заниматься не хотелось.

И мы придумали, как тогда казалось, отличную идею. Мы решили делать несложный анализатор кода, который помогал бы программистам портировать свои приложения для 64-битных версий Windows. Актуальность была вполне оправдана. До этого на прежней работе мы столкнулись с ситуацией крайней сложной ловли блох в программах, которые начали использовать более 4 гигабайт памяти. Инструментов просто не было. Вообще.

Нам казалось, что такой продукт обречен на успех. В то время бродили слухи, что через одно, максимум два поколения, Windows станет исключительно 64-битным. Это повлечет резкую волну спроса, и мы сможем получить хорошую прибыль в этот период массовой миграции. А затем, мы бы думали заняться другими проектами.

Но человек предполагает, а бог Microsoft располагает. Переход от Win32 к Win64 растянулся на огромный период времени и пока окончания поддержки Win32 не видно. Как результат, никакого всплеска потребности на такие программы не возникло. Интерес был и есть, но очень слабенький. Так что можно сказать первый продукт Viva64 для поиска 64-битных ошибок заметной прибыли не принес. Скорее, получилось в 0. А по началу, вообще приходилась подрабатывать аутсорсом.

Следующие два направления оказались ещё более неудачными. Это был анализ параллельных программ, построенных на основе технологии OpenMP и библиотека разбора кода VivaCore. В 2008-2009 очень много разговоров ходило о многоядерной архитектуре. Мы по натуре люди доверчивые. Мы поверили, что ещё немного, и без параллельности будет не прожить. А царицей параллельности будет OpenMP. Этого тоже не произошло.

На основе библиотеки VivaCore мы планировали делать специализированные инструменты на заказ, но не получили ни одного интересного предложения. И мы потихоньку свернули это направление. Нет, какие-то общения были. Но они были в духе: "Сделайте нам вот такой специализированный анализатор кода и отдайте нам его вместе с исходным кодом. А мы Вам заплатим 50 000 рублей. А быть может, даже целых 100 000 рублей". Было даже не смешно.

Первые успехи нас ждали только с появлением инструмента PVS-Studio. В начале в него входил анализ 64-битных программ (Viva64) и OpenMP программ (VivaMP). Для популяризации и от безысходности мы начали потихоньку делать анализ общего назначения. В начале эта часть анализатора задумывалась бесплатной. Она должна была существовать для привлечения программистов к платному функционалу (Viva64/VivaMP). Мы не верили, что в ближайшие годы сможем хоть как-то конкурировать в анализе общего назначения с Gimpel PC-Lint, Coverity и прочими акулами разного размера.

А потом, нам написал человек. Он спросил, надо ли покупать PVS-Studio, чтобы использовать анализ общего назначения. Мы ответили: "Нет. Он бесплатен. Но мы будем рады продать ему Viva64/VivaMP и оказывать поддержку". Человек: "О нет, спасибо. Раз он бесплатен, то более мне ничего не надо. Спасибо за хороший бесплатный продукт. Если бы надо было купить анализатор общего назначения, я бы купил. Мне он нравится. А потребности в Viva64/VivaMP у меня нет".

И тут в голове у нас щелкнуло. Вот оно. Это интересно людям. И первый релиз PVS-Studio 4.00 вышел уже с платным анализатором общего назначения. С тех пор именно диагностики общего назначения приводят к нам больше всего покупателей. При этом и продвигать их оказалось намного проще. Демонстрируемые примеры найденных ошибок просты и поняты.

Все это, конечно, к делу мало относится, но думаю было интересно. А теперь поговорим собственно о ценах.

История цен

Как я уже говорил, изначально мы думали о простом инструменте с массовым потреблением. Изначальная цена на Viva64 была около $400. А вот дальше начался длительный пересмотр цены:

  • $800;
  • €1600;
  • €3500;
  • €5250.

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

Происходило это приблизительно так. К нам приходят крупные компании и покупают лицензию на одного (ОДНОГО!) разработчика. Мотивировали они такую покупку разными причинами. Например, это могло выглядеть так:

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

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

Представьте, вы подключаете людям в дома газ. Берете недорого, так как не так уж много по одной трубе в дом утекает газа. Пироги пекут, индейку жарят. Ради бога. А потом, кто-то в здании вместо газовых плит для готовки, открывает тепловую электростанцию. А платить больше не планирует, аргументируя свою правоту, что ему также нужна только одна труба. Конечно, здесь уместно было бы говорить об объеме газа. Жаль, что счетчик на проверку кода - сложная философская задача. Про это я немного поговорю далее. А пока, я думаю, вы понимаете, почему после очередного такого подключения ТЭС, мы отказались от одиночных труб (лицензий). Получается выгоднее продавать мало, но дорого. Печально.

Последние цены, которые были у нас на сайте, это:

  • €5250 за командную версию (до 5 человек);
  • от €9000 – Site License на большие группы разработчиков.

Естественно, основная цель таких лицензий и цен - это продавать Site License в крупные компании. И мы продаем такие лицензии. Немного, но продаем. Однако, получившаяся ситуация нам самим не нравится. Получается, что мы потеряли все мелкие и средние команды. Для них такая покупка неоправданная. Конечно, сделать сейчас версию опять за $500 не вариант. Я не буду приводить здесь все рассуждения и подсчеты. Поверьте на слово - мы будем зарабатывать меньше, а поддерживать большее количество людей. Однако, и оставить все как есть, плохо. Вот отсюда и идут наши поиски.

Идеальный подход к определению цены

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

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

  • Что делать с аутсорсерами, которые ведут не один постоянный проект, а много маленьких и средних? Одни проекты заканчиваются, другие начинаются.
  • Что собственно считать? Количество LOC очень шаткий параметр. А что делать со сторонними библиотеками? Как понять, что стороннее, а что нет? А если есть два основных проекта? А если это несколько веток одного проекта? А что, если компания разрабатывает только часть одного большого проекта?
  • Как защититься от обмана? Как понять, что убрали нолик из посчитанного результата? Городить сложный механизм для надежной передачи данных? А как понять, что начали проверять другие проекты?
  • И так далее.

Уверен, что многие захотят поделиться своими идеями на темы подсчета размера проекта. Прошу, не надо этого делать. Мы долго думали над всем этим и не смогли выработать адекватное и удобное решение. Если я не буду отвечать на выдвинутые идеи, это может показаться грубым. Вступать в длительные дискуссии я не хочу. Мы и так тут наобсуждались. Так что просто поверьте. Да, такой подсчет сделать можно. Но сделать это просто, элегантно и красиво - нет.

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

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

Что сейчас с ценами PVS-Studio

Читатель, прочитав все вышесказанные, может задать резонный вопрос: "Так какие же сейчас цены на анализатор кода PVS-Studio?". Отвечаю.

  • Цена для полновесных компаний с большим проектом и командой до 9 человек, цена будет составлять около €5250. Около - потому, что кто-то может захотеть реализацию определенных пожеланий. Обратите внимание, что мы говорим о размере команды, а не о количестве пользователей программы.
  • Более крупные команды разработчиков или те, кому нужна расширенная поддержка, должны приобрести Site License, которая начинается от 9000 евро.
  • Небольшие команды могут рассчитывать на скидку. Скидка зависит от многих параметров. Пишите нам - пообщаемся.
  • Мы поддерживаем бесплатные Open-Source проекты и выдаем на время бесплатные ключи. Выдавать ключи на больший срок нам в тягость, так как все равно со временем требуется поддержка. Ведь таких пользователей будет становиться всё больше и больше. Поэтому для них мы можем предложить совсем недорогие варианты. В общем, пишите - найдем компромисс.

Хочу подчеркнуть: наша цель - отталкиваться от размера проекта/команды, а не от количества инсталляций. Поэтому под размером команды имеется в виду именно размер команды, а не того количества людей, которые будут непосредственно запускать PVS-Studio.

Ждем всех, кто заинтересовался в почте. Мы готовы к обсуждению различных вариантов покупки.

Триальная модель остается прежней. Версия имеет полную функциональность, но ограничена количеством "кликов". Кстати, скоро выйдет PVS-Studio 5.10, где мы представим первый вариант Standalone версии. Она будет способна проверять сгенерированные каким-либо образом *.i файлы. Это должно существенно расширить область возможного применения. Также, Standalone версия содержит интерфейс для работы со списком сообщений и текстом программы. Все это пока только для Windows. Однако, уже большой шаг вперёд.

С уважением, ваш милый Единорожка.



Найдите ошибки в своем C, C++, C# и Java коде

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

goto PVS-Studio;

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


Найденные ошибки

Проверено проектов
346
Собрано ошибок
13 188

А ты совершаешь ошибки в коде?

Проверь с помощью
PVS-Studio

Статический анализ
кода для C, C++, C#
и Java

goto PVS-Studio;