1. 程式人生 > >I like your tool, but why is it not free?

I like your tool, but why is it not free?

I like your tool, but why is it not free?

This is a personal reaction to a recent reddit discussion regarding our source explorer Sourcetrail, a developer tool I co-founded and worked on for the past ~5 years: r/cpp — Is anybody aware of a FOSS alternative to Sourcetrail?

In summary, the thread was started by a developer who liked what our tool does, but is looking for a Free and Open-Source Software (FOSS)

alternative, because he/she dislikes that Sourcetrail is commercial software. Apart from some suggestions for alternatives, which don’t quite offer what Sourcetrail does, there was also a discussion about commercial developer tooling.

I think this discussion barely touches an important aspect that is often overlooked by developers when arguing about the topic. I was too late to participate in the original discussion, but after some back and forth I decided to write this post. It is mainly based on my personal knowledge and experience as a founder, so take it with a grain of salt. I mainly want to explain how a/our developer tooling business should/could work.

Developers Don’t Like Commercial Developer Tools

Now, I guess your first question is: Why is developer tooling even a business? Well, for our case we knew from the start that building Sourcetrail will take a lot of time and effort, and it did. So the only good reason to start this project was to eventually make a living on it. Honestly, we thought it would be easier.

I don’t want to go into the whole area about how software is an intangible good. It can be easily copied and distributed, therefore people don’t appreciate the time that goes into it’s making. I think we all heard that before. It is of course a big factor when selling software in general, but for some reason the situation is even more special when selling tools to other software developers.

A lot of developers just don’t like seeing a price tag on a developer tool. I would even say that disliking commercial developer tools is the norm. I guess this has historical reasons, some degree of open-source idealism and at this point, I think it has simply become a tradition. Developers are used to free tools, so when all of a sudden a tool is not free, it is odd. A commercial tool really has to be a lot better than any free tool to justify the price, which is usually not too low. Who wants to pay several hundred dollars for a developer tool? Will that ever be worth it?

The Real Beneficiaries of Developer Tools

The thing is, most developers are missing an important point: Who is really profiting the most from a developer tool? You may think it’s developers, but you are wrong. It’s the company those developers work for. Sure, good developer tools make work more convenient for developers. But in the end, the aim of a developer tool is to raise productivity, which benefits the company.

With this in mind, things look very different. To your employer most developer tool licensing fees are literally just peanuts, insignificant expenses next to big developer salaries in their bookkeeping. Employing software developers is very expensive, so if a new developer tool saves just a couple hours, then the company has already made a profit.

And for that reason developers shouldn’t buy tools themselves in the first place, but the companies that employ them. That way the company makes more profit and the developers have a more convenient workflow utilizing the tool. It’s only fair that some of that value goes back to the people that made the tool, by paying a licensing fee. It’s a win-win-win situation! Everyone profits. It’s ethical and sustainable. There is no privacy abuse, environmental pollution, slavery, child labor, animal abuse or what-not involved. It’s hard for me to imagine any better business than this.

Our Approach to Commercial Licensing

Our licensing model is reflecting these thoughts. Developers can use Sourcetrail for free non-commercially, but as soon as they work for money/profit, they need a commercial license. It’s as simple as that. Honestly, we didn’t have this model from the start, we also had to figure it out first.

Additionally, we offer discounts for self-employed developers and startups to compensate for their smaller budget. And we introduced a new Global Equality discount, that makes up for the difference in international price level, which was also mentioned on reddit.

The Reality of Selling Developer Tools

Of course it is not as simple in reality. As mentioned, some developers dislike commercial developer tools and simply avoid their adoption. Others don’t mind, but they don’t like the hassle involved when asking their employers to buy them a software license. Some won’t even start testing commercial tools in the first place, just to avoid this issue.

On the other hand, some companies really make it incredibly hard for their developers to receive software licenses. We have had many companies where a license purchase was made the same day a developer told us that he/she requested a license. However, we also had some cases where the company negotiated internally for several months, lots of meetings were scheduled with multiple departments involved, only to decide that they are not gonna buy the one license that was requested. They literally burned thousands of dollars in management for nothing.

We also had several cases where the employer simply refused to buy a license right away. We then provided a discount to the developer, to buy a license on his/her own. But as stated above, I don’t think employed developers buying their own software is the right approach.

Sidestepping the Issue

These reasons make developer tooling a very hard business, with relatively few active producers. A lot of developer tool producers are companies that make their profit elsewhere and can offer their tools for free, to avoid this commercial burden in the first place.

If developers feel inspired to implement a developer tool themselves, they often start in open-source right away. They pour lots of their free time into their hobby projects and are happy if they start gaining users. It has become pretty common to collect donations. I don’t have any data on this, but my assumption is that most donations are not made by the businesses that profit from those tools, but from happy developers, that appreciate the work that is put in. Some people think this is a good direction. I have mixed feelings about it. In my opinion the money is coming from the wrong place.

But money is not always coming from the wrong place. There are many open-source foundations that are supported by big corporations. The acquired budget is then used to fund open source development, some part of this goes to developer tools.

And there are also examples of recent developer tooling businesses that became commercially very successful, often by combining open-source with a SaaS model. Unfortunately, this model is not applicable to every type of developer tool e.g. stand-alone developer tools.

Summing Up

I think we could have much better developer tools if the process of making money with them wouldn’t be so difficult. In my impression, the rejection of commercial tools is mostly coming from the developer community itself. Most managers know about the importance of keeping their developers productive and happy, so demanding the purchase of a new tool should usually be no big deal.

One major concern in the reddit discussion was that commercial tools are proprietary and might change for the worse, or get shutdown or sold. If developers avoid commercial tools for those reasons, then this becomes a self-fulfilling prophecy. If the tool developers can’t sustain working on the tool, then things will go downhill.