One odd year ago, we decided to carry out an experiment, and release a tool for small teams and single developers as an alternative to the PVS-Studio static code analyzer. This is how a very inexpensive analyzer, CppCat, was born. Now we can sum up the results of that experiment and admit that it has failed. During its short lifetime, this project has brought us almost as much money as we had put into its development, promotion, and maintenance. Thus, the project has proven unprofitable. And we could have spent all that time (the most valuable resource) on improving PVS-Studio instead, couldn't we? So we have to close down the CppCat project and focus on PVS-Studio. I hope you will find it interesting to learn from someone else's experience of launching a new business idea, since negative experience is still experience.

CppCat was announced in January 2014: "An Alternative to PVS-Studio at $250". Our intention was to present to the world an intuitive and inexpensive static code analyzer for mass usage. This was an interesting project, and an interesting marketing experiment.

We have failed, and decided to focus on our major project, PVS-Studio. This doesn't mean that we won't take up any new experiments in the future. For example, we are thinking of creating a static analyzer for C#, in time. But presently, PVS-Studio is being given the highest priority, while CppCat is ceasing to exist.

Reasons behind the project's closedown

Many books and articles preach the idea that you should make your software product inexpensive, but mass produce. It does work sometimes: the rapid development of App Store is a good example of that. It doesn't suit everyone but you never know until you try.

We received a lot of emails and comments, of people complaining that PVS-Studio's price was too high. They were trying to talk us into lowering it down to $300-$500, and promised a long line of customers if we did, the agitators being among the first ones.

At the same time, many would send us a link to the article by Joel Spolsky "Camels and Rubber Duckies". I don't know why. As far as I read it, the article doesn't promise any success at all with the pricing policy described there. Nevertheless, I'm mentioning "Camels and Rubber Duckies" here, because people would refer to it as an argument dozens of times.

The flow of comments and emails made us start pondering the idea of making a cheap static analysis tool. We were told that we had been losing a large layer of developers, employed in small companies or working freelance/single. And we too were attracted by the idea of taking the path to a cheap mass produced product.

But we didn't feel like simply dropping PVS-Studio's price. After all, it is still regularly purchased by large companies, which proves everything is OK with the tool itself and its price.

And then we thought up CppCat. We arranged it so that PVS-Studio would be oriented towards large companies, and CppCat towards small ones, for it would make no sense drawing customers from PVS-Studio to the cheaper option, would it? At the same time, the latter would completely satisfy the needs of small developer teams working in Visual Studio.

Moreover, we made the price even lower than people had recommended - just to be sure. As I already said, it was suggested that we should drop it to around $300-$500, but we set it at $250.

The first indication that we were wrong showed up immediately. You see we had been, for some time, writing out the contacts of all the people who had claimed interest in PVS-Studio, but who were dissatisfied with its extremely high price. When CppCat was released, we contacted them to offer the tool for $250. This offer was sent to about 20 programmers. How many of them do you think agreed? Only two.

It means that all those people didn't really need a static analyzer; all their words of advice and complaints were just idle talk. Well, you know, we figured out this trend long ago: Those interested in a product will buy it; those who aren't, start debating the tool's drawbacks and high price. Of course, we weren't the first to notice this. For example, I like one excerpt from the article "Refused Demo and Freemium - Got Rid of Tons of Scum" (originally in Russian):

Elba (online accounting system) cost $9 per month at the start, and even then there were people who found it too expensive. At the same time, the very first customer purchased an annual subscription even before we blocked the access to certain functions initially available under the "free" plan. This example is a perfect illustration of the two types of customers:

A representative of your target audience who hypothetically could accept your offer if you paid them a little in return;

A true potential customer who will surely benefit from your product.

Although this text has to do with quite a different business, the parallel is absolute. However, it was too late to back off, and our company launched a CppCat promotional campaign on the Internet.

The talk about what was done, and how, to attract customers to CppCat is beyond the scope of this article. But I should note that we have done a large job indeed, and there were times when it would take even more effort than promotion of PVS-Studio.

CppCat started selling but the amount of sales was discouraging. We are not sure about the exact reason behind our failure with the new analyzer, but here's our version.

A static analyzer is not highly demanded by small projects due to a number of complementary reasons:

The error density is lower in smaller projects than in large-scope ones (more about this).

In a small-scope project, there are one or two persons who know their code thoroughly, and don't have any difficulty in finding bugs. In large-scope projects, nobody knows how it all works. Because of this, the price of bug search and fixing is higher by an order of magnitude. Any change in the code can cause unexpected side effects which no one can foresee. Therefore, if the analyzer helps eliminate at least 10% of bugs, it's already huge saver regarding time and effort. Smaller projects simply never face this problem at all.

The programming culture of single developers and small teams is lower than in large companies. Theoretically, we should have assumed the mission of promoting the static analysis methodology among these programmers, for it would have brought us way more customers. But it's just not possible in practice. Missionary work of that scope is beyond our company's resources and abilities. Only big players like Microsoft or Apple can afford promotion of innovative programming techniques.

So what we have in solid residual is the following. Companies are very glad to purchase and use PVS-Studio. Some of them purchase licenses for teams of over 50 developers. Many renew their licenses. We already have a few customers who have been using PVS-Studio for a fourth year on end. As you probably remember, our product was established in its current form by 2011.

Single developers don't buy CppCat. The profit drawn from CppCat sales is completely incomparable to that from PVS-Studio sales, and only roughly makes up for the costs of its development, promotion, and maintenance.

About a half year ago, the futility of further retail of CppCat became obvious, but we took our time and didn't rush to drop it right away. We thought of trying to use it somehow for advertising purposes. I'm sad to say, we didn't manage to invent anything ingenious, and the only thing we came up with was to hand out free academic licenses. Let me tell you more about this.

We started granting CppCat licenses to students and teachers. The idea was that they would spread the word about our tool at work, in forum discussions, or at least in twitter-posts. That is, we hoped they would trigger some discussions that would help attract more users to the analyzer.

The result was zero. We didn't see a single mention of our promotion campaign and CppCat. What we could find on the Internet were just the materials we had published ourselves. So this kind of advertising failed, too.

By the way, I'd like to say thank you to the students from the Ukraine and Belarus, who were actively asking for CppCat licenses. Perhaps it was the current economic crisis that urged students to be more serious about their future careers, and start actively studying programmer tools and learning to be truly qualified programmers in general. We in Russia are enduring a crisis too, but our students turned out to be lazy and passive.

Let's sum up.We didn't manage to turn CppCat into a well-selling product. We failed to use it as an advertisement. So, we decided that we would stop wasting resources on its development and maintenance, and are closing this project down as an unpromising one.

What about current CppCat users?

While closing down the project, we need to think about its licensed users. From this viewpoint, there being few of them is a plus. I think we'll go through the closedown pretty painlessly.

Those who already own a CppCat license will be granted a temporary PVS-Studio license. Handing out of these licenses will be based on the following scheme:

Those whose CppCat licenses have expired and haven't been renewed will get a PVS-Studio license for 3 months.

Those whose licenses expire in less than 6 months will get a PVS-Studio license for 6 months.

Those whose licenses expire in 6-12 months will get a PVS-Studio license for 1 year.

To make it clearer, here's a graphical representation:

There's one more group left - students who own free licenses. I'm afraid we cannot offer them any option. They can simply keep using CppCat until their license expires. Perhaps we will launch some other promotion campaign for students in future so they will be able to get the analyzer for free. But I can't promise anything right now.

For all questions regarding CppCat, please feel free to contact us at: support@viva64.com

What's next?

We are in no way saddened by the situation with CppCat. Quite the contrary, we are feeling more determined than ever to keep developing PVS-Studio, for we regularly receive words of approval and praise from our customers. Also, we already have some plans for future projects by our company.