Re: Making money on open source, if not by selling _support_, then how?



On 2006-04-16, Dmitry A. Kazakov <mailbox@xxxxxxxxxxxxxxxxx> wrote:

I can't conclude that without knowing the process. If I will not pay
my electricity bills, the fridge might stop cooling.

Of course. You have to understand a process before you can make
changes to it, which is why it's irrational to advocate extrinsic
rewards for developers without understanding why intrinsic motivation
has worked for the past 20 years. You have no reasonable basis to all
promote additional extrinsic rewards.

Death of open source is not my concern. Mine is sustainable growth,
which is the basis of our [western] civilisation. We observe what
happens if it just stops for a relatively short period of
time. Europe's two major countries Germany and France provide an
excellent case. A projection of the current state of software
development in the future implies everybody to become a
programmer. It is a far more serious problem than terrorism.

The meaning behind my use of the term "death" was lack of sustainable
growth. And as I've pointed out, your concern is unfounded. Simply
measuring the size of the sourceforge archives makes this evident.

The openness of the code *is* one of many components of quality.
Besides the quality built into the process of open source
development, you also have the benefit of potentially millions of
eyes looking at the product and discovering defects in the code.

This is a model of wasting human resources in first place.

Wasteful in what sense?

It is extensive, low productive, unsafe way. Million eyes is
millions of man hours spent.

To be wasteful is to have expense w/out return. Yet this is a reverse
case - getting a high return on little (if nothing) investment. The
consumer pays *zero*, not a single man hour, and in return receives a
product that is very thoroughly debugged.

The waste you're referring to is paid by closed source consumers, who
pay for the same functionality multiple times over, and receive
nothing in exchange for the excessive investment. Worse, because
effort is wasted on duplication, and resources within a single
controlling organization are limited, you don't receive products that
are thoroughly debugged. So effort is wasted needlessly, while
simultaneously not enough effort is allocated to quality. Most closed
source operations are lucky if they just get a couple reviewers
looking at a piece of code.

What is worse a community of dishwashers might spent trillion years
in building Perpetuum mobile, while one qualified physicist could
tell you in 1s, that it is rubbish.

OTOH, if these dishwashers are qualified physicists, such an effort
would never occur.

Secondly it effectively puts a limit to the complexity and quality
of the software.

Quite the opposit. It's the closed source model that limits
complexity as well as quality. You can be limited to the mental
capacity of those hired, or you can be limited to the mental
capacity of a subset of the world population, which can well exceed
the size of any one company.

It is a flawed argument. It is known as "brain amplifier", a concept
of gaining knowledge, recently bubbled again as genetic
algorithms. Each cubic meter of air contains encoded Britain
encyclopedia as well as the Great Theory of All. The problem with
it, is that there is no way to select the signal from
noise. Averaging world population gives you Britney Spears, if you
are very lucky, it does not give you Albert Einstein.

The benefit of brain quantity depends on the effort. If the effort is
a creative one, and the component is small enough, then sure, your
stance would be reasonable because too many producers would become
obsticles. But if the effort is to find software defects and report
them, then the benefit of signal / noise seperation is lost. All good
encryption algorithms are publicised for this very purpose of
leveraging what you're calling "brain amplification." You cannot
depend on one or even a handful of experts to find flaws in a complex
algorithm. As intelligent as they may be, flaws are still overlooked.
So to ensure the strength of an algorithm, you *publish* it to get the
masses looking at it. Among the masses, many who may fit your profile
of "Britney Spears" won't crack the algorithm (and in fact won't even
be looking at it), but they do nothing to stop the one who does find
the shortcut that cracks the puzzle (who may be an Einstein, but not
necessarily).

The open source community has the scalabilty to throttle "brain
amplification" to a level that serves the purpose, dividing large
creations into small pieces, or defect capturing en masse. Whereas
closed source efforts are inherently limited - and often fail to work
efficiently with the limited resources that they do have.

Millions of incompetent eyes cannot replace an educated one.

Who's to say "the educated one" is not an open source developer?

Because education is not for free. It is a huge investment on the
side of the society sponsoring it and on the side of people spending
their time in learning. It is a hard work, if you don't pay for it,
you will get nothing.

All true statements. However, such an investment does not prevent the
educated from creating GNU software.

I meant division of labor. Customer is somebody who is specialized
to produces something else.

Even that definition is unrealistic. Consumers are not necessarily
so specialized that they're incapable of tailoring tools that are
initially generic to help them do their job better.

It is so in software developing. The reason for that is an extremely
low technological level of. It is a transitional stage. Either it
becomes a normal engineering with clear division of labor and a very
moderate number of people involved in, or our civilization will
collapse. What you propose is similar to building pyramids by
ancient Egyptians.

Certainly not, because there are enough similarites between the
different software products that if someone is so specialized that
they cannot work on the tools they use, they are likely to be
inadequite for doing their own job. If you're so specialized in Ada
that you're incapable of using other languages, for example, then
you've failed as a developer to become enriched with concepts that
build on your area of specialization. Learning Ada will improve the C
skills of a specialist who has no direct use for Ada. As an Ada
developer, I often create non-ada tools to process the Ada code. For
example, I might write a sed script to make a global edit to all my
Ada code. If I were so specialized that I could not create my own
tools on the fly, or tailor my environment, I would not be as
productive. If you're specialized to such a degree, you're not only a
minority, but impractical. A good specialist *necessarily*
understands their tools.

Moreover, if you still insist on such a definition for "consumer", it
doesn't matter anyway because you've still failed to show that
consumers are hindered by having the extra ability to modify their
tools.

But even if they were, open source consumers still have the option
of hiring contractors to tailor their tools. Closed source
consumers are stuck with a black box, and must either modify the
way they work to adapt to the tool, or try to motivate the vendor
to modify it for them at a reasonable price, or hire someone to
build the tool from the ground up. So open source consumers have
all the same options that closed source consumer have, and then
some.

As I said above, the difference is marginal in my eyes. Remember the
time when each TV set, each audio system was shipped with printed
electronic circuit? How about the quality of those compared with the
quality of modern systems shipped with two page leaflet printed in
20 languages, explaining where is the button "on/off" on the remote
control? That's a technological difference.

This is a false cause fallacy. Modern products are developed from
more recent technological advances.

Reducing a consumers maintenance and modification options is not
necessarily better quality. In fact I would claim the contrary - if a
the design prevents consumers from customizing the product, the
product is lower quality due to reduced useability.

When I say that neither of existing systems works, I mean that this
selection does not happen. Firstly, there is no efficient mechanism
of selection.

Right, so you cannot be completely dependant on selection of talent
for quality products.

I must.

You conceded on imperfections in the selection process, then you said
you *must* limit your quality assurance solely to talent selection.
There is no tolerance in such a model for talent selection flaws, so
effectively you've put yourself at high risk for poor quality
production.

Secondly, there is no motivation for people to become
selected. Qualified programmers don't grow on trees.

Who's to prevent a qualified programmer from producing open source?

A lack of a system that rewards qualification.

How?

If the reward is to work 42 hours washing dishes and 30 contributing
at night to a GNU project, then I don't see why students should
spend 10+ years studying CS. They could become managers, advocates
instead.

The unusual dishwasher case you bring up is not likely to be the
lifestyle of someone with an extensive formal education.

What else have the community to offer?

Your position here is hinged on a false dilemma. Washing dishes and
closed source software are not the only options for a day job. There
are just too many jobs to list. Browse through listings at
monster.com if you want to see what's out there.

If you cannot sustain yourself by programming, you will do something
else. You might continue to program in your spare time. But the next
generation will drop the very idea of becoming a programmer.

Why?

--
PM instructions: do a C4esar Ciph3r on my address; retain punctuation.
.