вторник, 16 ноября 2010 г.

Collective funding of free software development

This is a translation of my previous post in case we need to contact someone in the english-speaking part of the world.

Free software is slowly gaining popularity. At the same time users are often dissatisfied with the quality. A vivid example for me is desktop software.

I am sure that everyone has faced the following situation – there is some popular and useful program but despite requests there are no necessary features in it and bugs migrate from version to version for years. You may find such examples at bugs.debian.org, bugs.launchpad.net and bugs.kde.org. Bug reports that are two-three years old are not uncommon there, you may even find bugs that are five-seven years old.

I think the reason for it is quite obvious – although the copying of free software is free of charge, its creation and support cost a lot of money. We need a reliable mechanism for users to pay money for the development activity they need; or the situation will not change.

Why market does not pay for free software?

Unfortunately the usual market mechanisms become inefficient when we speak about free software. Support, advertising, commercial development based on open source software can be profitable, but the software development itself is another story, especially when developing programs for the end-user. It’s a pity, but there is a reasonable explanation for all this.

By its nature, free software is close to the concept of “public good”. The products from this category are subject to the problem of the so-called “free-rider” – we all like to consume them, but there are strong economic inducements not to finance their development. The result is underfunding and consequently the decrease of their production. That’s why users do not get the needed changes in such programs.

We do not know how solve this problem so far. But sometimes the situation may be a little bit different as there are such phenomena as altruism, public good, open source software and so on, that do not exist in market economy. So we may hope that the problem will be solved one day.

Size does matter…

I think an important factor for solving the problem of "free-rider" is the size. It is known that small groups cope with it well. The fact of “free ride” is soon found out when a close contact exists. When the "free-rider" is identified, he is quickly punished or expelled from the group. No one wants to feed parasites. A small group encourages individuals to cooperate and destroys parasites itself.

Another important point is the amount of personal contribution to the cause. The more you contribute, the more you doubt that your efforts will be repaid; the less money you risk, the higher the probability that the principle: "If you try, success is not guaranteed, and if nothing is done, it will only get worse" will work.

Unfortunately, when the group is small and the contribution of each member is not big, only very limited resources can be used. To solve more important problems, it is necessary to recruit more people, maintaining the effectiveness of a small group and low expenses for each participant.

Perhaps the solution will be social networks. Close environment of an individual in a social network can act as a small group, and at the same time a social network can cover a large number of individuals. The example of the inner circle influence is discussed in the article by Yudanova A.Y. and Becker E.G. "A free-rider or a counterfeiter" (I'm sorry in Russian only). Similar principles can be applied to the financing of free software.

Non-transparent social network is used for financing. Non-transparency means that members of the network work with their adjacent nodes only ignoring other nodes of the network. A person who gets the money to solve the problem is always liable to those from whom he got the money even if he is not the performer and will send the money further. This encourages cross-checking at all levels and distributes expenses among all the nodes of the network.

Under the liability one must understand first of all the risk of worsening of one’s reputation. There is no need in financial responsibility, as while transferring the money by means of a network the difference between the amount of money getting into the node and out of it is small. Each node contributes only a small amount of money, which it is willing to sacrifice.

Besides, the node may withdraw funds from a cash flow to cover its own expenses. However, uncontrolled withdrawal is limited by the fact that in this case the effectiveness of solving the problem will be in danger. This will be found out by adjacent nodes and they will stop contributing money using this way. They will find another more effective node.

Example

Let’s take a small social network for example: (Peter, Vasya, Katya, Andrew, Denis, Igor, Ira, Natasha, Gosha)

Let’s imagine that there is an annoying bug in some program that is used by all nodes of this network. Everyone is ready to pay some money to fix the bug. But each node may spend $5 at most, which is not enough to fix it.

Gosha is a programmer and is ready to fix the bug if he is paid at least $20. He informs his friends Igor and Natasha that if each of them pays him $15, he will solve the problem. The price is overstated as he knows that his friends are unreliable and sometimes do not carry out their obligations. Besides if one of the friends doesn’t give the money, Gosha will add his own $5 and solve the problem.

But it’s clear that $15 is too much for Natasha and Igor, that’s why they ask their friends to help them. Igor asks Denis, Vasya and Katya for $5. Denis doesn’t know Igor well enough and doesn’t give the money. But Igor adds his own $5 and gives Gosha $15.

Natasha asks Denis and Ira for $10.

Ira can give $5 and she also gets $5 from Andrew.

Denis gives $5 too and asks Andrew for $5 more. But Andrew has already given his money to Ira, that’s why he asks Peter for $5. Peter agrees and Andrew gives the needed sum of money to Denis.

So Natasha gets $20 and gives Gosha $15 leaving herself extra $5. Let it be on her conscience.

Gosh getting $ 30 instead of the required $ 20 fixes the bug and sends the corrected program to Igor and Natasha, who send it further. He celebrates the successful completion of the work using the remaining $10.

If some failure occurs, for example, Dennis does not send a fixed program to Andrew, it will have a bad influence on his reputation. In the future, Andrew will not deal with Dennis preferring Ira or Peter to him.

Conclusion

I think the described system is quite viable. It can avoid the nodes that do not work properly and that’s why it is quite stable. Redundancy enables end performers and mediator to get a profit and thus it stimulates for the improvement of positive reputation.

The fact that each node of the network pays a small amount of money and deals with his reliable acquaintances only reduces the expenses of each participant. Entry requirements can be really low, that’s why not only corporations but ordinary people can participate.

At last the principle advantage of this system to my mind is the following. To begin one needs social networks only. We all know how to do it when there is a necessity and that means that a spontaneous process may develop at a social viruses rate appearing and developing independently in different parts of the community. There is no need in a trusteed center, sophisticated software and so on. It will all appear later, all you need is just to start from scratch.

It’s clear that one should start with unimportant problems, checking his environment, getting experience. In the course of time, with the establishment of strong, reliable connections and with the expansion of networks, large-scale projects will be possible.

I suggest that we should start with ourselves. Search for friends. Establish connections. Try to finance small-scale problems. Share experience. Being alone we can only dream of what we can do together.

Комментариев нет:

Отправить комментарий