From wa@almesberger.net Fri Jun 20 17:37:23 2003 Date: Fri, 20 Jun 2003 17:37:23 -0300 From: Werner Almesberger To: Larry McVoy , Stephan von Krawczynski , miquels@cistron-office.nl, linux-kernel@vger.kernel.org Subject: Re: [OT] Re: Troll Tech [was Re: Sco vs. IBM] Message-ID: <20030620173723.B1326@almesberger.net> References: <1056027789.3ef1b48d3ea2e@support.tuxbox.dk> <03061908145500.25179@tabby> <20030619141443.GR29247@fs.tum.de> <20030619165916.GA14404@work.bitmover.com> <20030620001217.G6248@almesberger.net> <20030620120910.3f2cb001.skraw@ithnet.com> <20030620142436.GB14404@work.bitmover.com> <20030620121834.A1418@almesberger.net> <20030620152447.GB17563@work.bitmover.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20030620152447.GB17563@work.bitmover.com>; from lm@bitmover.com on Fri, Jun 20, 2003 at 08:24:47AM -0700 Status: RO Content-Length: 10922 Lines: 293 Larry McVoy wrote: > The point I'm trying to make is could we please think about how create > a world that is sustainable and based completely on open source? Ah, I'm glad you asked :-) I won't go into the "classical" examples in detail, such as: - support - OSS as enabler for the "real" product - release software as OSS because the company/origanization developing it has no commercial use for it - advertizement etc. But maybe the time is ripe to think of a completely new scheme. Here's a wild plan: - let's assume that everybody benefitting from OSS is willing to pay for it, either as a form of "thank you", to encourage further development, or just because of peer pressure (the latter could also come in the form of taxes) - individual transfers (e.g. through services like PayPal) would be very cumbersome, and it would be next to impossible for an individual payer to figure out whom to pay what amount. So we need a redistribution center. Or, better, several such centers. Let's call this a "Linux Bank". (Or "OSS Bank", or whatever.) - the Linux Bank would collect contributions, which may be "in general", or targetted to specific projects, clusters of projects, or individuals. The Linux Bank would actively research development activities and define how payments for a specific area would be distributed. - payments could either be made directly to individuals, pooled for a group of individuals, or also be assigned to other recipients (e.g. if the person in question is not allowed to have this kind of income) Sounds nice, doesn't it ? Now, why don't we have this already ? - first of all, there is no infrastructure for this. Single-handedly implementing something like this would overwhelm most companies (and government agencies usually have some other constraints, more about this later). - since the model doesn't exist yet, there is no peer pressure for making this kind of payments. Classical chicken and egg situation. - unless this is implemented on a large enough scale, it is not very interesting for developers to consider as a supplement or even a replacement of a "regular" job. In the beginning of Linux, a few companies actually made some "paybacks", but the amounts involved were negligible. - the total size of the Linux market has grown only comparably recently, and we're just emerging from the .com burst, in which everybody was busy enough with day-to-day survival Now, what should such a payment be for ? It could be for past work or for future work. I think paying for past work would be the best solution, for the following reasons: - less pressure on the developers (but they're still encouraged to continue working on a project that pays well) - since inventors are frequently not so good maintainers, it's actually more like an investment into their next invention - also, if developers are not tied to their old projects, this makes it easier to hand projects over to more maintenance-oriented people - employed developers might find it difficult to negotiate a contracts in parallel to their present work Of course, this completely ignores the desire of most managers to control where development is going, how it is done, and when it will finish. Given that the GPL pill is slowly being swallowed, we might be able to force also this down their throats ;-) Now, on the selection process. I think it would be best if most of the initial research and decisions are made by that Linux Bank, in order to: - ensure some consistency and fairness - avoid that developers have to spend a lot of time to advertize their feats to potential payers and/or banks - avoid that developers have to make allocations among themselves. First of all, they may simply be overwhelmed by the question. Second, no matter how things are split, there will always be some unfairness. And it's better if the Linux Bank can be blamed for this, than to see hostility among the developers. The proposal for a split should of course be presented to the developers, so that they can point out any gross inadequacies. By working this way, such a Linux Bank will also acquire an excellent overview of the entire development scene. So they can also help to direct attention to overlooked projects. Now we come to the first set of proplems: unfairness. - a project may get overlooked, or be overshadowed by a well-advertized related project - the wrong people or projects may get credited for some important work - there may be huge differences in payments. E.g. a small project supplying a vital component for servers from IBM and HP is likely to get a lot more money than some huge project that is mainly interesting for the government of Bolivia. - developers with other employment might get paid twice for their work - a project may need to purchase expensive infrastructure, which lowers the effective revenue Of course, nothing in life is ever entirely fair. So I wouldn't worry about these problems too much at the beginning. Later on, corrective procedures could be devised, or one could just pump more money into the system :-) I mentioned parallel employment. Of course, the existence of a functioning Linux Bank would of course also change the employment situation for developers: - first, if their employment terms limit secondary income, they may not be able to obtain all the compensation they're entitled to. - availability of a significant secondary income stream may encourage developers to leave their present employers - likewise, there is less encouragement for actually leaving self-employment While this may sound like just the great freedom everybody has been hungering for, a world of little self-employed penguins also has its drawbacks: - loss of social contacts at workplace - loss of contact to co-workers for technical discourse - more administrative burdens (taxes, pension plan, etc.) - self-employment exposes to higher economic risk - relocation to foreign countries frequently requires an employer at the destination - lack of management may hamper coordination and opportunities for cooperation may get overlooked These issues are quite serious, and may well present the biggest problems in the whole scenario. One possible solution may be the creation of "Linux Technology Parks". They could provide the following facilities: - basic infrastructure (office space, meeting rooms, power, Internet) - maybe help staff (technical, administrative) - administrative help (taxes, social security, visas, etc.) - legal assistence (eventually the IP sharks will get hungry enough to start caring about small fish) Of course, such things would only make sense in areas where there are enough Linux developers. But it could be scaled down, and may just take the form of occasional LUG-style meetings. Now, let's work our way back up to the payment process. One issue is dependent work. E.g. - if I do OSS project for company X, and this creates revenue through the Linux Bank, it seems only fair if that company is entitled to some of that revenue - similarly, I might act as an umbrella for other people. E.g. if somebody gave me a lot of money for tcng (traffic control configuration), I might decide to hire some people to work on mathematical problems I'm not qualified to solve. So in the end, my personal income would be lower than it seems. One possible approach for making money flows more transparent is to just document them publicly. Now I hear everyone groan :-) And yes, this would certainly be a controverisal issue. Pro: - control of what the Linux Bank does - useful to generate peer pressure on companies (e.g. if HAL posts a Linux-based revenue of USD 5 bn and contributes 1 bn to the Linux Bank, it would look shabby if IQ only paid a few thousands with a revenue of 3 bn) - can also be used to balance payments, e.g. if a project is receiving money from virtually everyone, one may decide to help a promising competitor instead Contra: - excellent source for all kinds of conflicts - I may just not want the thugs in town to know exactly how rich a picking I might be - sometimes people just feel uncomfortable about revealing their income (e.g. if it's lower than one would expect) - also payers may not wish to reveal just where their interests lie, and how much they're making Anyway, back to the high level. There should be many Linux Banks instead of just a single one. Some reasons: - one may not agree with distribution patterns/policies of a given bank - competition keeps them honest - avoids system from being affected by national constraints (restrictions, economic instability, etc.) - it's always good not to put too much power in a single hand - in particular governments may have very specific constraints, and may prefer to run their own bank Speaking of governments, I think an "Open Software tax" may be a useful idea, because the peer pressure principle doesn't work too well at the individual level, interacting individually with millions of contributors would just be an administrative horror, and most people wouldn't want to worry about the details anyway. For those who prefer to exercise more control, voluntary payments could be deducted from the software tax. One drawback of having many banks would be a reduction of transparency. Okay, I'm almost done. A few more things that could go wrong: - in some countries, such a scheme may appear like a clever plan for tax/social security evasion - there may also be anti-competitiveness or subsidarization issues. So clearly, such a system would have to be carefully examined by legal experts. - the prospect of monetary compensation may attract people who join a project, and contribute some useless stuff, just to be on the payroll - likewise, people may aim to gain unjustified visibility for their projects (e.g. by pestering Linus to put their harebrained hack into the kernel) And, last but not least: is there actually enough money ? This is hard to tell, but since work is being done that would otherwise have to be paid for in a more traditional manner, at least at large, the resources should be there. Well, I hope I've covered enough ground that everyone will find something to demonstrate why such a model is impossible ;-) > Is this going to just > be like the 60's flower children that grow up and turn into their parents > after all? Heaven, no ! ;-) - Werner -- _________________________________________________________________________ / Werner Almesberger, Buenos Aires, Argentina wa@almesberger.net / /_http://www.almesberger.net/____________________________________________/