📜 ⬆️ ⬇️

Why do I need a free code and how to earn on it

Linux torvalds
We are seeing a boom in free projects. Mainly thanks to Github. December 23, 2013 at the service was created 10 millionth project . By December 23, 2015, the number of projects more than tripled: right now there are 28 million projects on Github.

Many are attracted by the idea of ​​freedom, because it echoes the idea of ​​"improving the world" as the main motivation for productive human activity.

But since the usual work of programmers in offices is very far from open source, the question arises how to feed (and preferably, get rich!), Most of the time doing free projects.
')
Judging by the last questions on the Toaster, people have a lot of expectations, but little understanding in this area. So I decided to write this essay.

In itself, laying out a project is not an improvement in the world.


The benefit to the world is either the benefit to people, or nature, or culture / humanism, or economics, or science. The first three categories have nothing to do with free code, because non-free code helps people, nature and culture perfectly. The benefit of science is often viewed as the same aid to the economy, only in a very distant future, although most scientists disagree with this, considering the knowledge of the world to be an independent value. But even considering the fact that a free software project with a scientific novelty is exotic, we will concentrate on how a free code helps the economy.

You have posted the code. How have you helped the economy at this moment? Nothing, so the world you still have not helped.

Your project can save people from cancer, be free, save millions of dollars, and still be closed.

Concentrate not on how your project is generally beneficial, but on how free it is .

The synergistic effect of free code


If your project is beneficial, improving it means even more good. Users of a free project fix bugs, log in new functions, improving life not only for themselves, but for all other users of the project. This is a synergistic effect.

Attention. This only works if the following conditions are met:

1. Users of your project (those who benefit from the project) are programmers. Or at least a substantial part of the users. If you have written a wonderful application for housewives with recipes for pies, you are well done, but housewives will not come to you on GitHub and fix bugs in the application.

Conclusion: there is almost no sense in the freedom of such projects as mobile applications, websites, games, useful programs for the desktop, software for professionals in areas far from programming.

2. Your system should be expandable, as friendly as possible to change. On this subject there is an outstanding speech of Growing a Language by Guy Steele (you can watch from 6 minutes):

One of the most important thoughts of the speech: try to design the system so that the functions built by [users] on top of the basic functionality of the system “look” the same as this “native” functionality.

Conclusion: pay maximum attention to the project extensibility and hackability. If this is a DSL, make the operators overload. If it is a framework, focus on the plugin system. Etc.

From the point of view of a synergistic effect, there is not much point in the freedom of projects that do not imply such extensibility.

3. Not necessarily, but it is desirable that the project have the lowest possible entry threshold. If the project is too complicated, users (even programmers) will not be able to add a function on their own or fix a bug.

Complex code is not necessarily bad, perhaps it is a direct consequence of the complexity of the problem being solved. For example, Hotspot JVM almost does not benefit from its openness, because it is so complex a project that few of the millions of its users can grasp and make a reasonable improvement.

Thinking out loud - or maybe all because the Hotspot JVM is written in C ++, and its users are Java programmers? Here is another conclusion: if you write a compiler, be sure to do promotion .

However, the free Java development environment IntelliJ IDEA Community Edition, although written in the same Java, is almost useless. The project is too complicated to go there.

Projects with a very good synergistic effect:

Linux kernel . Companies, system administrators and programmers improve the kernel for themselves, making it better for everyone else.

Many Apache projects.

Flask web framework . An example of how a thought-out plug-in system and a high-quality, modular kernel code made the framework almost as powerful as Django, with much less effort from the main author.

What else? Throw examples in the comments.

An open project with security requirements attracts more users.


This is a benefit to the economy (if the project benefits and it has more users, it brings more benefits), as well as to you, if you want to make money on the project (see below). Open source is more credible: you can check the project for bookmarks.

Encryption, password storage, antivirus, a program that needs admin privileges, etc.

Open projects work in the name of


Not a particularly interesting moment. It may come in handy for a regular work device, but we wanted to leave it, right?) In order to create a new or develop an existing open project, no track record is required.

The only thing, if you are a superstar Github, all your new projects automatically attract a lot of attention. But Github superstars do not need advice from this article.

Ways to burn out on a free project


Donations do NOT work.

- Yes, but my wonderful project ...
- NO.

Selling support for a free project does not work, or works very poorly. Objectively, few people need support: employees of companies just ask on the forum / in the mailing list / bug tracker how to do this and that, or describe the problem, and the authors of the project usually fix it in one way or another in free mode - do not ignore same "community" insolently. Consulting is the same: if the documentation is shit, the project is unlikely to even start to use, and if it is good, then consulting is not needed.

Most open source companies can’t sell But the cloud may be the key to revenue.


The only way to make money on a free project is to make an ordinary, “boring” business based on it .


The scheme is as follows:

  1. Technology supports your ordinary business.
  2. The technology benefits from its free (“synergistic effect” and / or confidence in openness).
  3. Business wins because technology wins.

And what if competitors also build their business on my technology?


What kind of business?


Business is not evil. Business improves the economy → improves the world.



There is money where there is an optimization of the economy, and not a free code on Github. Use the free software as a tool to optimize the economy.

Source: https://habr.com/ru/post/268845/


All Articles