Surely you know about the licenses of MIT, GPL, BSD, Apache and the like. I assume that the overwhelming majority of readers of this article are ardent supporters of Open Source and hate proprietary. True, some people do not particularly distinguish between the concepts of "open" and "free" software, but not the essence. I propose to discuss the pros and cons of current approaches, and to reflect on the device of a more efficient ecosystem of developing complex software products by the community of independent developers.

Skip the image to attract attention
Licensing and monetization today
Why do we need open source? Open source is needed to intensify the development of world technologies. And this is the main point. Open source allows you to connect the ideas of different people and create new projects with small teams. Yes, hell, these programs are not perfect, but products are created in a shorter period of time and at a lower cost than if you do everything from scratch. We did it, checked it in practice, got feedback from the user and excellent, we are working further. The open code allows, if anything happens, to pick up the dropped banner and carry it on.
')
Now about licenses. Extreme poles are the GPL, which in every way prevents the programmer from defending his developments, and proprietary software, with closed source code and in the appendage with the legal and administrative apparatus. The rest of the licensing models are hanging around epsilon-surroundings. It seems to me that the truth is somewhere in the middle.
Why invent something new, you say, well, they say, look how cool things are in Linux. The system is developing, everything is good, companies revolve around the operating system, grandmas earn, some even excelled. But if you take a closer look, you will see that the major contributions are made by large corporations Intel, Red Hat, Samsung, IBM, etc. In addition, Red Hat sells its Enterpise, as if it didn’t sound veiled: you buy a package of services, but if you don’t like it, then take other distributions because, all of a sudden, the Red Hat corporate agreement supplements the GNU General Public License.
If we consider the open CMS market, the situation will be aggravated, on the one hand, by a decrease in scale, and on the other hand, by a large variation of functions. For these reasons, major players do not even consider such markets. Projects of this kind live on donations and major payments come from companies whose business is based on the use of this product. For the founders, such a project is only interesting if there is a related business based on the same technologies. The contribution of third-party developers to the code can be significant, but not decisive.
I will quote the words of Sergey Golubev:
“The open model promotes the involvement of free assistants in the development, but does not guarantee the project profit. Closed - helps to get money, but excludes the creation of a community. Both are ineffective, so realities require finding a balance of interests. ”
As an example, consider the situation with Drupal: the presence of thousands of ready-made modules for all occasions is declared, but only a hundred or two are being actively developed, the rest are abandoned, because developers are not motivated to support them and, often, modules are written for some particular task, and laid out simply because of the heightened sense of self-importance.
Another question: why do web studio managers often use paid CMS when they can use free ones? Maybe because it is easier for them to organize sales and recoup the salary of the seller already at the stage of selling the box, and maybe he really gets the best quality product?
Device market
For example, take the well-known site building market. Client studios are managed by web studios and rightly keep for themselves the main part of the cake:

And from this pie, the developers get a tiny part or nothing at all if it is an open and free software :(
How do free software manufacturers get out:
- The most obvious: themselves are engaged in the creation of sites;
- Provide a free solution in the cloud. Clients: private owners and small business. You can survive only due to the mass.
- Other crumbs are picked up from the table, for example, themes. It’s not particularly stable, it’s still reworking for a specific project and therefore it’s easier to tear off the idea than to pay.
- Training, consulting. In Russia, this is somewhat more complicated.
- Providing paid versions of the free program. There are problems with licensing and anti-theft protection. The code is open.
- Paid tools for working with free software, for example, development environment.
- Well, for the completeness of the model: the sale of iron, advertising and data (not a code)
Most open licenses do not prohibit the sale, but do not help the author of the program to make money on this sale. Everything is complicated by the fact that there can be many authors. Thus, there is a certain contradiction: it is important for the global community to have open projects, but the financial mechanism for involving the broad masses of developers has not been implemented.
It becomes clear that there is no ideal licensing system for all occasions. And paid-closed does not satisfy us, and free-open does not allow us to realize ourselves.
The ecosystem of an open community of the future
Let's get to the specifics. For example, let's take the development of a certain framework for multifunctional business systems. It may include commerce, business process management and employees, community building, etc. Moreover, not separate pieces of the type of CMS, CRM, but a system united by a single logic (operating environment for business applications).
How to create conditions for developers to give their work to the open market and know that each use will bring them a certain income, but at the same time, development costs should be minimal? A viable option could be the idea that the core of the framework should be completely free, and the solutions and modules should be paid.
In real life, there are the following processes:
- Development of framework architecture and basic solutions.
- Development of modules and solutions.
- Distribution (sale) code.
- Code updates.
- Hosting.
- Cloud services.
- Monitoring compliance with the conditions of licenses (copyright, theft).
- Implementation, consulting, training, related services, for example, design sales.
- Exploitation.
We will have to create a whole ecosystem where many players will effectively interact with each other, but the architecture and the core of the system must be created centrally.
The framework itself should be made free to increase market coverage. Basic solutions with minimal functionality should be developed, free and conditionally paid (absolutely inexpensive). Developers can create modules for solutions and their alternative solutions (not builds). Distribution and sale of solutions and updates is centralized. Income is distributed among all participants in the process.
Finance Allocation Scheme
To begin with, you should introduce such a thing as the owner of the module, even free. Authors and co-authors - by itself, but there should be information about a person or organization that takes responsibility for the support and development of the functional. By default, the author is the owner, but he can give up ownership if he is not ready to continue investing his efforts. Other developers can make changes to the module, and the owner is engaged in moderation, promotion and income generation, but sharing with others will be at its discretion.
Development
Developers create separate modules for their own or others' decisions, assign prices to them. The natural mechanism of price regulation will be competition from other developers. The price should be such that it is more profitable for the developer of a solution or assembly and to include another module in the delivery more quickly than to write one’s own. It might look like this:

the module owner receives 60% of the proceeds minus discounts and taxes.
solution developer gets 10% of sales of specialized modules created for this solution by other developers.
The community (non-profit organization) gets the rest.
Implementers (salespeople). For professional market players, there are special conditions (discount) for which they sell solutions to end users. Thus, they get the benefit already at the stage of sale, similar to sales of commercial products.
Cloud services. Some (licensed) organizations will provide services in the cloud. They will also need special conditions.
A nonprofit organization spends money on marketing, managing the community, paying for the work of programmers who create core and basic solutions, and can also encourage other developers to a limited extent.
Support
Most of the functionality needs to be updated and developed. Sales revenue motivates keeping the code in good condition, but these streams can be uneven, and users who install the module always want improvements. A situation may arise when the developer is not interested in supporting the modules. In this case, regular payments for updates are applied to equalize cash flows.
Additionally, it is necessary to introduce a new type of service that will allow sellers (for example, cloud workers) to give more or less decent SLAs. Those. the developer does not just make a module and tries to earn money on it in the old fashioned way, but promises a second support option, which is more difficult, but allows you to earn more.
Thoughts on the organization
A system with many independent actors is very complex. There are still a number of questions about the organization of a fair process for assessing the contribution of each community member. To manage it, it is necessary to create a strong institution that guards the rules that ensure this model. Such systems have the genetic code that their creators asked. The problem is that these same creators continue to determine the development of the platform, but time is running out and the market is changing, and the person is no longer as “hungry” as it once was.
We need a non-profit organization whose goal is to ensure the sustainable development of the project and maximum accessibility for consumers with sufficient resource support. Such an organization should be extremely open to its members. You can make a number of decisions by online voting. At the same time, the system still needs a personality, which through its energy ensures the development of the platform. The question is how to ensure the nomination of the best people to the leading positions, to avoid stupidity, abuse, imitation of activity and useless politicking?
I believe that one should not be afraid to try to create balanced organizations that combine the current interests of society and the vision of the leaders, in which open source software normally coexists with paid add-ons and services. Do you agree that it is possible to create a more efficient open source development and licensing model?
Who is ready to do something in this direction? What exactly?