PVS-Studio
Мы временами экспериментируем с триальным режимом, чтобы знакомство с анализатором PVS-Studio проходило как можно эффективней. Сейчас мы вновь поменяли формат триальной версии. Эта заметка должна ответить на все вопросы, которое могут возникнуть у разработчиков, пожелавших познакомиться с нашим инструментом. Фактически эта статья является ответом на вопрос «можно ли попробовать демонстрационную версию и какие в ней ограничения?».

История


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

Как было раньше


Демонстрационная версия ничем функционально не отличалась от полной версии. Единственное ограничение — «количество кликов» (предыдущий демонстрационный режим описан в статье 2012 года).

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

Рисунок 1. Оставшееся количество переходов по коду.

Рисунок 1. Оставшееся количество «переходов по коду».

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

В начале человеку давалось 100 «переходов». Затем ему предлагалось форма, где он мог указать и отправить информацию о себе. Тогда ему давалось ещё 100 «переходов».

Было очень-очень мало писем с контактной информацией, поэтому мы изменили пропорцию. Начали давать в начале 20 кликов, а ещё 200 можно получить, прислав нам контактную информацию. К сожалению, это не помогло. Стало не очень-очень мало, а просто мало.

Что нам не нравилось


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

Как нам кажется, ограниченное количество «кликов» отпугивает человека от знакомства с инструментом. Особенно, когда их в начале только 20. Человек начинает жадничать и просто смотрит список, не переходя к конкретным участкам кода. В добавок некоторым кажется, что предоставлено вообще только 20 переходов, что портит настроение.

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

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

Самая основная беда — люди начинают «включать всё на максимум». Это первое, что они делают. Они включают 3 уровень предупреждений и 64-битные диагностики, которые выключены по умолчанию. Так им кажется, что у них больше контроля и они смогут лучше оценить возможности инструмента.

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

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

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

Кстати, не мы одни переживаем на эту тему. В статье "A Few Billion Lines of Code Later: Using Static Analysis to Find Bugs in the Real World" есть следующая мысль:

Первоначальные отчеты об анализе имеют для людей уж слишком высокое значение. Если первые N сообщений содержат ложные срабатывания (N=3?), они начнут заявлять что-то типа: «Этот инструмент — отстой!».

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

Что мы решили изменить


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

В демонстрационном режиме мы жёстко отключаем 2 и 3 уровень всех диагностик. И их нельзя включить.

Спорное решение. Но мы хотим попробовать такой вариант. Мы должны показать программисту, что в его коде есть ошибки! Для этого нам надо заставить смотреть его именно 1 уровень предупреждений, а не непонятно что.

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

Итого: новая триальная модель


PVS-Studio можно скачать здесь. Демонстрационная версия имеет следующие ограничения:
  1. Для просмотра доступны сообщения только 1 уровня.
  2. Можно выполнить 50 переходов по коду. После этого анализатор предложит человеку отправить информацию о себе. Если он согласится, то ему будет предоставлено ещё 50 переходов.

Ограничения демонстрационной версии могут показаться суровы. Однако, от таких ограничений выиграем как мы, так и вы.

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

Малое количество «кликов» и ограничение анализа первым уровнем поможет быстрее начать общение в почте. Если кто-то захочет посмотреть на другие сообщения, то мы готовы выдать ему регистрационный ключ, скажем на 1 неделю. Ему только надо написать нам письмо.

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

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

Общаясь, мы сделаем анализатор PVS-Studio лучше, исправим множество ошибок в вашем коде и будем стоять на страже его качества! Пишите нам: support@viva64.com

Дополнительные ссылки


  1. Очень хорошая статья для первого знакомства с PVS-Studio. PVS-Studio для Visual C++.
  2. Демонстрация возможностей анализатора. Обновляемый список статей, в которых мы рассказываем об ошибках, найденных с помощью PVS-Studio в открытых проектах.

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


  1. JSmitty
    09.04.2015 16:05
    +1

    То есть вы зажали триал еще сильнее? И это плюс? Наверное, только с точки зрения маркетолога :-\


    1. Andrey2008 Автор
      09.04.2015 16:10
      +2

      Не зажали. Провоцируем на общение.

      Малое количество «кликов» и ограничение анализа первым уровнем поможет быстрее начать общение в почте. Если кто-то захочет посмотреть на другие сообщения, то мы готовы выдать ему регистрационный ключ, скажем на 1 неделю. Ему только надо написать нам письмо.

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

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


      1. alexeykuzmin0
        09.04.2015 18:44
        +3

        Я думаю, стоит об этом где-нибудь написать в самой программе, чтобы человек, у которого осталось мало кликов, не очень сильно переживал, а обрадовался неожиданной халяве (и, впоследствии, стал клиентом)


    1. EvgeniyRyzhkov
      09.04.2015 16:30
      +5

      Статью не читай, быстро-быстро первый коммент давай.


      1. JSmitty
        10.04.2015 09:13

        Сложно наверное поверить, но статью я прочитал. И сказанное мной как-то с ней расходится?

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

        Фирма нас убеждает тут не первый месяц, что ее продукт полезен только при использовании «постоянно», и вдруг городит такое — что полноценно сделать анализ более-менее крупной программы становится совсем невозможно.

        Если бы ребята сами не понимали, что их точка зрения на продукт — минимум полуправда, то сделали бы обычный тайм-триал, как предлагают те же производители антивирусов. Это не упрек, но давайте назовем вещи своими именами — анализ большинство программистов вряд ли будут делать постоянно. И их продукт нужен бывает «раз в иногда», тогда как зарабатывать хочется постоянно — то есть классический триал убыточен, он съедает потенциальную клиентуру.


  1. jigpuzzled
    09.04.2015 16:09
    +3

    В демонстрационном режиме мы жёстко отключаем 2 и 3 уровень всех диагностик. И их нельзя включить.

    А это точно не для того чтобы не дать пользователям возможность бесплатно диагностировать свой код переходя по файлам не используя «клики» ;)?


    1. Andrey2008 Автор
      09.04.2015 16:25

      Точно. Хотя в это сложно со стороны поверить. Очень важно сразу показать наличие ошибок в коде. Это первостепенная задача. И мы будем добиваться этого всеми возможными методами.


      1. BuriK666
        09.04.2015 18:19

        Очень важно сразу показать наличие ошибок в коде.
        Дык сами добавляйте ему ошибки в код </irony>


        1. Andrey2008 Автор
          09.04.2015 19:37
          +9

          image


      1. Halt
        10.04.2015 08:04
        +3

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

        Вот прямо взять и честно написать:

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

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

        Пользователи научены горьким опытом работы с триальными программами. Они ожидают, что как только часы пробьют 12, программа сразу повернется к пользователю задницей и превратится в тыкву. А дальше мол только деньги давай!


  1. mwizard
    09.04.2015 16:15
    +4

    Склоняюсь к тому, что вы отключили 2 и 3 уровень диагностик, чтобы срезать «читеров», которые не пользовались кликами. Потому что если бы ваша цель была — не дать «включать на максимум», вы бы могли включать второй уровень диагностики только тогда, когда первый не показал никаких ошибок. Третий — когда никаких ошибок не показал второй уровень, и так далее.

    Честно говоря, надеялся на то, что «новый триальный режим» окажется релизом всех исходников и переходом на полностью опенсорсную модель существования, но, похоже, не в данной вселенной.


    1. Andrey2008 Автор
      09.04.2015 16:29
      +1

      На любом хоть сколько ни будь большом проекте, у вас будет более 100 предупреждений первого уровня. Вы не сможете добраться до второго. Так что даже нет смысла делать. А если у человека маленький проект, то ему статический анализатор не нужен. Был бы нужен — покупали бы CppCat. Но компании упорно покупают именно PVS-Studio. А CppCat ржавеет и со временем будет изничтожен как лишняя сущность.


      1. mwizard
        09.04.2015 16:32
        +3

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


        1. Andrey2008 Автор
          09.04.2015 16:37
          +2

          Проблема на пустом месте. :)
          Напишите нам, и мы выдадим Вам ключ на неделю. Можете смотреть 3 уровень или любой другой. А мы Вам будем помогать и агитировать приобрести наш инструмент. :)


          1. mwizard
            09.04.2015 16:41
            +1

            Нет, я не пишу вам это с целью выпросить ключ на неделю — я не пишу под платформы, под которыми работает ваш анализатор, поэтому я не ваш клиент, как ни крути. Тут, скорее, идеологический момент — если вы считаете, что 100 с чем-то ошибок, которые выдаст ваш анализатор для проекта больше карманного, исправить невозможно, чтобы дойти до второго уровня — почему их нельзя исправить? Ошибки так сформулированы, что исправляя одну, появляется вторая, а исправляя вторую, снова возникает первая, т.е. это вина анализатора? Или статистика показывает, что люди не пользуются вашим анализатором по прямому назначению и оценивают только «общий уровень забагованности»? Или просто люди — ленивые свиньи и ничего не исправляют, даже если мордой ткнуть? Я вот этого не понимаю.


            1. Andrey2008 Автор
              09.04.2015 16:53
              +1

              Если честно, то не понял комментарий.
              Почему нельзя исправить? Программист правит, пока хватает кликов. Если очень понравилось — можно сразу купить. Если требуется больше времени для оценки и хочется посмотреть другие уровни — достаточно написать нам. Мы выдадим ключ, ограниченный по времени. И познакомимся с человеком заодно.


              1. mwizard
                09.04.2015 16:55

                вы бы могли включать второй уровень диагностики только тогда, когда первый не показал никаких ошибок
                у вас будет более 100 предупреждений первого уровня. Вы не сможете добраться до второго. Так что даже нет смысла делать.
                Почему тогда, если можно исправить, я не смогу добраться до второго уровня? Исправляю первые 100 ошибок, запускаю заново анализатор, смотрю на выхлоп, rinse & repeat?


                1. Andrey2008 Автор
                  09.04.2015 16:59
                  +2

                  У вас всего 100 переходов (кликов). Не важно сколько будет запусков. И 100 — вполне достаточно, чтобы составить первое впечатление о продукте. Более подробное впечатление можно получить, пообщавшись с нами и получив ключ.


                  1. mwizard
                    09.04.2015 17:00
                    +1

                    Да, теперь понятно, спасибо.


      1. mapron
        09.04.2015 17:06

        Да, наверное, Вы правы. У меня небольшой проект, около 150тысяч С++ кода, и когда я скачивал ваш анализатор год назад, он находил только предупреждения 3 уровня.


        1. Andrey2008 Автор
          09.04.2015 17:10
          +1

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


          1. mapron
            09.04.2015 17:41
            +1

            Мне сейчас довольно тяжело будет снова настраивать проекты под студию. У нас для всех проектов, и виндовых, и линуксовых используется система сборки QBS. Но я слежу за вашим проектом внимательно, и обязательно попробую еще раз, как только будет чуть посвободнее график (сейчас только срочняки в очереди).

            Кстати, раз на то пошло — по результатам разных анализов стат.анализаторов (pvs, cppcheck, clang) — самая распространенная ошибка в моем проекте — неинициализированное поле (в том числе указатель). потенциальное *null лишь на втором месте.
            Таких ошибок, как «эффект последней строки» или «эффект копипасты», почему-то ненаблюдалось. Обычно они очень быстро вылазят при первом же прогоне/тесте.

            Ну еще довольно частые незначительные ошибки смешниваия int/size_t/uint32_t при доступе к контейнерам (при сериализации — нет).
            Вот такая статистика =)
            Да, ни один из стат анализаторов, к сожалению, не нашел ошибки, которая реально могла бы привести к порче/потере данных (потенциально, при каком-то дальнейшем изменении кода — да). Нет, не то что у нас прямо так идеально код пишут, я считаю, что то что было найдено- тоже полезно. Но больше с точки зрения прикладной диагностики принес нам valgrind (да, я читал ваши статьи про отличия динамического и статического анализа и понимаю что они мало где пересекаются).

            Раз уж я рассказываю о своем опыте, опишу самый распространенный класс ошибок, найденный valgrind — выделяется память, сохраняется указатель, и потом передается через очень долгие и тернистые пути в другое место. Затем (МНОГОПОТОЧНОСТЬ!) в исходном месте он удаляется, и в новом естественном может иногда произойти доступ к уже удаленной памяти. Статический анализатор такое понять не в состоянии. После пары таких косяков я стал жестко переходить на shared+weak_ptr. помогло.

            P.S. посмотрел прямо сейчас CLOC-ом, 320k sloc без 3rdparty, 40% — хедеры.


            1. Andrey2008 Автор
              09.04.2015 17:55
              +1

              Спасибо что поделились впечатлениями и написали этот развёрнутый комментарий! Было интересно.

              Мне сейчас довольно тяжело будет снова настраивать проекты под студию. У нас для всех проектов, и виндовых, и линуксовых используется система сборки QBS.
              Быть может Вам поможет режим мониторинга запусков компилятора: www.viva64.com/ru/d/0323


              1. mapron
                09.04.2015 18:06
                +1

                Да, выглядит интересно, спасибо большое, должно помочь.
                Посмотрю на досуге.


      1. phprus
        09.04.2015 21:59

        > А если у человека маленький проект, то ему статический анализатор не нужен. Был бы нужен — покупали бы CppCat.
        Ну почему же? Я смотрел на студию и согласен с тем, что она была бы мне полезна, но из-за ее цены я ее купить не смогу ни сам, ни на работу.

        CppCat я могу купить, однако, у меня проекты в основном заточены под линуксы или кроссплатформенны, по этому собираются все, включая зависимости, через CMake, нередко с прямыми вызовами других систем сборок (той же bjam для Boost). Как следствие, если генерировать проект для MSVS, то проверить получится только свой код, а зависимости останутся без проверки, чего бы мне не хотелось, так как они бывают с патчами и иногда багами. Эту проблему решает возможность слежения за компиляторами, но увы, это доступно только в полной PVS-Studio.

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

        P.S. Не сочтите за критику. Продукт у Вас интересный и полезный.


  1. NorthDakota
    09.04.2015 16:37
    +1

    Мне кажется подход в корне не правильный.
    Я не могу определить нравится мне инструмент или нет если его урезать до немогу и поставить кучу ограничений.
    Некоторые свои инструменты я покупал только после того, как поюзал их несколько триальных периодов.
    Например шторм я купил наверное через 2-3 месяца после юзаний триалок и EAV версий. И ответ очевиден мне кажется. за эти несколько месяцев я смог полюбить инструмент, привыкнуть к нему и познать фичи, о существовании которых первый период даже не знал.

    Ваш продукт мне нравится, и «обзоры» у вас интересные, которые читаются в захлёб, и возможно в некотором времени я бы скачал ваш продукт ознакомится. Но прочитав об ограничениях уверен что не захочу.


  1. ServPonomarev
    09.04.2015 16:44
    +2

    Ну, на третьем уровне были всякие полезности типа оптимизаций по скорости. не такая уж ненужная вещь, хотя, согласен, настоящие ошибки производят больше впечатления. Если они есть, разумеется. Зато ложные срабатывания наоборот — отпугивают, и не компенсируются полезностями 2-го и 3-го уровней. В общем, я не понял этой идеи.


  1. SerJook
    09.04.2015 17:56
    +8

    Не заставляйте меня запускать IDA


    1. SerJook
      09.04.2015 18:12
      +5

      Ваш продукт не любит JPEG:

      V691 Empirical analysis. It is possible that a typo is present inside the string literal: «image/jpeg». The 'jpeg' word is suspicious. gdiplusimage.cpp 28


      1. Andrey2008 Автор
        09.04.2015 19:44
        -1

        Он никого не любит. :)

        При статическом анализе неизбежно бывают ложные срабатывания. Иногда много. Но для работы с ними есть масса механизмов. Предлагаю посмотреть "Работа с ложными срабатываниями в PVS-Studio и CppCat". И новый механизм массовой разметки, помогающий интегрировать анализ в большой проект: www.viva64.com/ru/d/0345


        1. Krypt
          09.04.2015 20:12
          +4

          Но добавить jpeg в словарь всё равно стоит :)


  1. BuriK666
    09.04.2015 18:23

    А не лучше ли сортировать ошибки от интересных к скушным?


    1. lany
      09.04.2015 18:37
      +2

      Приоритет и есть такая сортировка. И далеко не всегда машина может понять, какая ошибка реально интересная.


  1. lany
    09.04.2015 18:36
    +1

    Я на C++ очень редко пишу, поэтому к вашим потенциальным пользователям не отношусь, но прокомментирую. Вот тут я провёл опросик про статический анализ Java-кода. Вычтем вариант «не пишу на Java», получается 223 проголосовавших. Из них 58% ответило, что не используют FindBugs или другой статический анализатор. Это при том, что для Java есть весьма неплохие бесплатные анализаторы кода, они интегрируются с разными IDE, системами сборки и непрерывной интеграции и настройка анализатора на Java-проект в среднем существенно проще, чем на C++. Да и Java гораздо более одинаковая: практически отсутствуют vendor-specific особенности, которые могут снести крышу анализатору. Казалось бы, бери и пользуйся. Но нет, многие лишь подумывают. Думаю, в мире C++ всё куда хуже. Многим даже если бесплатно дать, они не воспользуются, потому что придётся настраивать и разбираться.


  1. Andrey2008 Автор
    09.04.2015 21:23

    Пошли «запросы» на увеличение кликов… Ох не понимаю, зачем такую информацию отсылать.

    asasawas
    gdfdfgdfgdf
    hjfghfghgfh

    Неужели мы такие страшные? :)


  1. pewpew
    09.04.2015 21:26
    +2

    Если потенциальный клиент не принял ваш новый триальный режим, может ли он легально скачать версию PVS-Studio 5.23?


    1. Andrey2008 Автор
      09.04.2015 21:36
      +1

      А какой в этом смысл?


      1. pewpew
        09.04.2015 21:39
        +1

        Очевидно, чтобы воспользоваться старым вариантом триального режима.


        1. Andrey2008 Автор
          09.04.2015 21:42
          -3

          ЗАЧЕМ?!
          Чтобы непременно посмотреть 2 и 3 уровень предупреждений? Просто напишите нам — и посмотрите.


  1. shaman1010
    09.04.2015 23:15
    +3

    Не использую ваш продукт, и не являюсь потенциальным клиентом.
    Но при чтении вашей статьи через свои фильтры, воспринимается так:
    «У нас есть продукт, с нашей (и возможно не только) точки зрения он отличный. Но его не покупают, поскольку умудряются легально пользоваться обходными путями. Один раз попытались пресечь — не получилось. Теперь еще больше урезаем возможности триала, что-бы им невозможно было пользоваться тем, кому продукт действительно нужен. Приманиваем сладкой неделей, поскольку нам кажется, что потенциальный клиент — баран, и в любом случае поступит так, как мы его вынуждаем. А мы всего-лишь хотим продать свой продукт потому, что НАМ кажется, что он отличный, а не потому, что КЛИЕНТУ нужен удобный инструмент по вменяемой цене.»
    Возможно просто показалось, но сейчас в тренде подавление своего эго для достижения результата. Вы стоите против тренда. Скользкая позиция.

    p.s. Джобс в свое время из себя вылезал, когда пытался донести мысль, что покупатель гораздо проще 100 раз расстанется с $1, и наберет интересные ему композиции, чем один раз со $100, купив два альбома, из которых будет слушать три песни.


    1. Andrey2008 Автор
      09.04.2015 23:46

      Идея продать 100 раз по 1$ не работает для многих направлений, в том числе и для нас.

      Эксперимент с CppCat полностью убедил нас, что клиентами инструментов статического анализа являются компании. Они покупают и с удовольствием используют PVS-Studio. Многие продлевают. Есть клиенты, использующие PVS-Studio уже 4-ый год.

      Нас много и долго убеждали (особенно на Хабре), что нужен дешёвый аналог PVS-Studio за 300-400 долларов, которые все кинутся покупать. Очередь будет. Мол у вас купит каждый индивидуальный разработчик и т.п. И вот появляется CppCat, ценою в $250. И что? А ничего. Не нужно это никому в мелких или индивидуальных проектах. А для больших он неудобен (как и задумывалось при выборе ограничений).

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

      В результате PVS-Studio спонсирует убыточный CppCat. Так что на нас сказки про большое количество пользователей впредь никогда не подействуют. Всё, иммунитет выработан :). А бестолковщину с CppCat мы скоро прекратим.


      1. m08pvv
        10.04.2015 10:17
        +1

        Вспоминается статья Camels and Rubber Duckies by Joel Spolsky (Верблюды и песочница, автор: Джоэл Сполски).

        Спасибо за внимание, и примите мои извинения, что теперь вы знаете о ценах еще меньше, чем знали до прочтения этой статьи.


      1. phprus
        10.04.2015 10:28
        +2

        Ухты! А CppCat оказывается есть бесплатный и для преподавателей (я по одной из работ преподаватель).
        Сегодня тогда отправлю информацию и попробую потестировать CppCat в своем окружении более детально, если, конечно, программа еще не закрыта.


      1. diserkin
        10.04.2015 10:50
        +1

        Всем вот вы хороши. И программа у вас хорошая. И люди вы явно не глупые. Но вам бы пиар-специалиста нанять (судя по качеству и количеству клиентов денег у вас должно быть море, простите), а то вы с народом разговариваете, как хлеб топором режете. Еще раз прошу прощения за нравоучения :)


        1. EvgeniyRyzhkov
          10.04.2015 10:57
          +4

          Где же взять такого пиар-специалиста, который как Andrey2008 хотя бы MVP C++, Intel Black Belt и т.п.? Если знаете такого, кидайте контакты — сразу наймем, даже без собеседований.


  1. isotoxin
    10.04.2015 13:21
    +3

    Ваша проблема в цене. Очень мало компаний, которые используют C++ и которые готовы заплатить вашу цену за продукт.
    Я работал в компании, где было очень много C++ кода. Будучи главным программистом, я исследовал вопрос приобретения вашего анализатора. Исследование показало, что затраты не окупятся. Проверка кода в триальном режиме выявила очень мало проблем (может просто у нас были хорошие программисты?) и платить вашу цену за эти ошибки мы не стали.
    Сейчас я работаю над неким opensource продуктом и с удовольствием бы купил ваш анализатор, будь у него персональная лицензия с адекватной ценой. Уверен, таких как я, много. Но вас, эта аудитория, к сожалению, не интересует.

    PS. Да, сейчас у вас цена не указана. В памяти крутится достаточно крупная сумма, уверен, не у меня одного. Возможно, после знакомства с деятельностью компании, вы сможете предложить им приемлемую цену, но лично меня такой подход напрягает. Цена не фиксированная, а зависит от покупателя. Мол, можешь заплатить больше — заплати. Мне такой маркетинг не по душе. Я не желаю платить больше, просто потому что могу. Неправильно это.


    1. EvgeniyRyzhkov
      10.04.2015 14:34
      +2

      Очень мало компаний, которые используют C++ и которые готовы заплатить вашу цену за продукт.


      Да-да...

      и с удовольствием бы купил ваш анализатор, будь у него персональная лицензия с адекватной ценой.


      Вот только что-то я не вижу Вас среди лицензионных пользователей CppCat.


      1. isotoxin
        10.04.2015 15:39
        +1

        Да-да...

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

        Вы прямо меня заинтересовали. Захожу на ваш сайт, пытаюсь найти страницу CppCat. Мне интересны:
        1. Цена
        2. Отличия от PVS-Studio

        И где там это? Такое ощущение, что вы намеренно прячете эту информацию. Или по вашей логике я должен сначала вам написать, что хочу PVS-Studio для себя лично, а вы такие: для себя лично вот вам CppCat. У нас завязывается переписка, вы выясняете мою платежеспособность и в итоге выясняете, что я для вас не выгоден. Или как?
        Я понимаю, ничего личного, бизнес, всё такое. Если вас эта схема устраивает, я ничего против не имею. Это просто мое личное мнение. Мнение потенциального клиента, если хотите.


        1. Andrey2008 Автор
          10.04.2015 16:08

          Давайте честно. Вы специально хотели не найти CppCat и не найти сравнения, чтобы написать подобный комментарий. Ибо как известно результат напрямую зависит от настроя (что ожидаете — то и получите). Если настрой негативный, то всё будет ненаходиться, некачаться и неработать.

          CppCat

          Сравнения на любой вкус:



          1. isotoxin
            10.04.2015 16:16
            +1

            Нет. Я не нашел, как ни искал. А по вашей ссылке открылась «Самая короткая статья о проверке nginx»
            Странно, да?
            Спасибо за ссылки, но, вы в самом деле думаете, что ваш потенциальный частный покупатель пойдет ворошить раздел блогов, чтобы найти некий продукт, который ему по карману? Не скажет ли ему отсутствие этого названия на главной и в списке продуктов, что такого продукта вовсе не существует?


          1. Andrey2008 Автор
            10.04.2015 16:26

            В буфере осталась ссылка от предыдущего ответа.

            CppCat


            1. isotoxin
              10.04.2015 17:20
              +1

              Вот видите. Я знал, что существует некий CppCat и что именно вы его разрабатываете. Это всё что я о нем знал. Кто-то знает и того меньше. На сайт PVS-Studio я прошел по ссылке из этой статьи. Нажал на кнопку купить и обнаружил предложение написать вам письмо. Никаких ссылок и упоминаний о существовании CppCat там нет. Вот вы пожаловались, что CppCat никто не покупает. А на какие продажи вы вообще расчитывали, если до вашего продукта нельзя пройти хотя бы в 3 клика, даже зная, что такой продукт существует?
              Получается интересная ситуация: CppCat — тот же PVS-Studio, но урезанный и дешевле. Вы не назвали его типа PVS-Studio Personal, или что то типа того. Вы вообще по другому его назвали. И на основном вашем сайте почти ничего не говорит о его существовании. Зачем так сделали? Видимо, чтобы крупные клиенты не отвлекались почем зря. Но при этом вы получили никакие продажи CppCat.
              Когда я слышу PVS-Studio, у меня в голове возникает ассоциация с хорошим анализом кода (спасибо статьям на хабре, да), но когда я слышу CppCat, такой ассоциации не возникает вообще. Что это еще за поделие? Кому? Для чего? Вы сознательно разрушили связь нового продукта с качественным (спорно) старым. И удивляетесь, что он не взлетел. Ну а чего вы хотели?


          1. Krypt
            10.04.2015 23:22

            Специально зашёл на ваш сайт с целью скачать триалку CppCat (или что там у вас) и в течении двух минут не встретил ни одного его упоминания. ЧЯДНТ?


            1. Andrey2008 Автор
              10.04.2015 23:54

              CppCat отдельный продукт, который имеет отдельный сайт, отдельно рекламируется, отдельно продается, отдельно поддерживается, отдельно участвует в скидочных акциях и так далее. Так что ничего странного нет. Страннее тогда уж то, что он вообще упоминается на сайте viva64. Была идея заново «сделать продукт статического анализа по правильному». Неудачно.

              По поводу, что всем не удаётся найти нигде CppCat — я не воспринимаю это всерьёз. :)


          1. Krypt
            10.04.2015 23:27

            Нет, вру. Нашёл упоминание поиском по странице в названии статьи. Но как его скачать — всё равно не понятно.
            Вот вы жаловались, что CppCat крайне не популярен и никто его не покупает. Знаете что? Никто просто не знает о его существовании.

            Когда я зашёл на страницу, я ожидал увидеть нечто вроде раздела «Other products» (например — в верхнем меню), где бы и находился CppCat. Но — нет.


            1. Andrey2008 Автор
              11.04.2015 00:07

              Думаю, про PVS-Studio знает больше людей, так как он существует и продвигается дольше чем CppCat. Однако причина неуспеха CppCat вовсе не в том, что он не предлагается на сайте Viva64.com. Он и не должен там предлагаться. Он продвигался отдельно. И продвигался не менее активно чем PVS-Studio.

              А по поводу, где находится CppCat… Собственно берём любую статью про CppCat, например с Habrahabr. В каждой из них есть ссылка на сайт с CppCat.


        1. isotoxin
          10.04.2015 16:09

          Прочел выше про цену. $250… хм хм. Странно, что узнал я это не на вашем сайте.
          Вы не думали, что $250 это тоже много? Это гораздо выше психологического барьера для программиста одиночки, для которого цена ошибки в коде — 0. Он ведь практически не несет убытков от своих ошибок, потому что он либо пишет бесплатный софт, либо в лицензии к своей программе так и пишет: as is.
          Я, кстати, заметил в списке Microsoft. Вот интересно, они там, потому что один раз купили лицензию, чтобы посмотреть, хорош ли ваш анализатор и сравнить его со своим, или они каждый год продляют лицензию и проверяют вашим анализатором код windows?
          Может список, по факту, пора и подчистить, если лицензия не продлена?


          1. ryo_oh_ki
            10.04.2015 22:22

            +1. Больше $40 за программу помогающую заниматься хобби (фришный опенсорс) я бы не стал платить…


            1. Andrey2008 Автор
              11.04.2015 00:21

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


              1. 0xd34df00d
                15.04.2015 23:15

                Принципиально не трачу на хобби деньги. Ну, разве что, очень скрепя сердце оплачиваю хостинг и вот недавно SSL-сертификат для проектосайта купил.

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

                Я готов потратить деньги непосредственно на само хобби. Сделать апгрейд, например, чтобы программировать было быстрее и приятнее. Но не более.


                1. alexeykuzmin0
                  16.04.2015 13:52

                  Ну, казалось бы, покупка PVS-Studio — это как раз апгрейд, чтобы программировать было быстрее и приятнее, разве нет?