Defending a plurality of software practice(s)
Posted 3 Sep 2002 at 18:02 UTC by exa
It may be too painful for some of us to face the fact that
free software alone may not be the ultimate standard of excellence
for software development. In this short essay, I outline some reasons
why we need a plurality of methodologies rather than a single ideal. I point out the drawbacks in free software practice and point out that alternative approaches must be maintained to overcome these problems rather than ignore them as we are doing.
The reality distortion fields around RMS and ESR continue to function in their full capacity; if they had wielded that much of charisma in the past they could have been mighty generals or political leaders. However, charm alone does not help settle a point. In the world of computing, we always want to see some output instead of merely sweet talk.
Although the philosophical motivations for free software and open source are different they employ the same kind of legal weaponry: copyrights drafted in a way to keep the source code available to any person who wishes to. In RMS's world, he upholds a set of basic software freedoms, and in ESR's utopia open development becomes the most effective means for the software pragmatist. That far we all understand.
Unfortunately, there is a horde of human factors that we rationalize away when we talk of software development, the life standard of the programmer, his (mostly corrupt) mental and health conditions, relations with the opposite sex, local traditions, workplace, etc. Programming is a complex human endeavor just like the arts or sciences that is not independent of cultural and historical aspects of our societies. Being the positivists we are, we like to pretend that Internet protocols makes us all even.
The free software community, which we are proud of, also seems to be forgetful of developments where there is no success. The great words of media that promote our movement rests on a tiny group of self sacrificing programmers. The number of such programmers is presumably much smaller than the crowd in a certain campus near Redmond. Yet, we expect their software to surpass Redmond's software in every respect, such as support for file formats invented there (consciously, to stifle competition).
Let us now remember the failures of ESR's theory. I vividly remember myself looking for a suitable programming job when sourceexchange and
cosource was first founded. These sites, in my understanding, were perfect realizations of the Bazaar, although ESR would say otherwise (This is an important point!) They were both shut down, they did not work. Nobody was willing to pay enough for things and no programmer would take horribly complicated tasks for small fees. In the subconscious of everybody including our community open source meant "cheap". Now, RMS often says that business and free software are not in conflict. That may sound true in theory. However it still is very hard to find a software house whose sole product is free software; it started to become "We will clean your house, by the way our firmware is free software!". Gigantic corporations like IBM and Sun did find ways to make use of free software in a financially sensible way, but not everybody has the opportunities and infrastructure they have to do so. RMS's typical example was the infamous Ada Core Technologies that maintain the GNU ADA95 compiler. But can they be as profitable as a small game company? That is the question programmers want to ask, and the answer would be a slowly murmured 'no'.
Speaking of entertainment, the rise and fall of free software gaming showed us something else. Game development is a very costly and notoriously difficult enterprise (much more difficult than 'web development') that will need lots of extremely talented people who should be closed in a hackers' quarters for several months. Most of these people are not programmers, hence they will not be content with living on the boundary of poorness.
It should be noted that there are several areas of productivity like game development such as military, high profile scientific research, banking, industrial automation, etc. An obvious drawback of free software is that it is hard to find specialized people contributing their expertise (such as "accessibility" in UI) This may seem like a moot point, but it should be apparent that specialized people will be working for companies or institutions that pay them to do their job, leaving very little voluntary workpower in these special subjects unless their employer is fond of free software. This means we need more instutitions supporting free software, or we should find other ways to work on these special subjects.
In fact, people who seem to benefit most from free software turn out to be the ones who do not contribute back much. Using a GNU/Linux system is of course much more popular than writing code. You can also exploit the licenses to give you an advantage in things like web servers/distributed systems or embedded systems! The BSD license even allows you to do that on normal systems, Microsoft did that and then came the accusing. I think we should not accuse Microsoft for doing that. (Well BSD license is more open source than free software as you know)
But then again remember how RMS said that the goal of free software is "generally useful software" such as the kernel or desktop environment (and it is written so in the GNU Manifesto which we have all read with sheer excitement). That makes a lot of sense, and it is one of the undervalued statements of RMS. What the free software community would like is a software commons, and the linux desktop is the brightest success in that respect. I do not need to cling on to a company's idea of right software just to launch a web browser any more. However, people wrote free software in all kinds of settings outside generally useful software. And if you listen to RMS, he does seem to think that all software should be free software. Without the necessary social change, that is impossible and this contradiction is what I am arguing against.
Enforcing a single ideal is always fascistic, even if it rests on socialism. The "information socialism" proved its point, and it has raised a movement among programmers. Still, we cannot expect this to be the "true" way to develop software. (or " information liberalism") Every methodology, be it free software, open source code or "commercial" closed source software, has its shortcomings. My thesis should be slowly appearing by now: let everyone code the way they want.
The aim of software development is crafting software. There are all kinds of software, and no single methodology is capable of producing all of these programs. Therefore, we should avoid a blindfold allegiance to any philosophy, methodology or license when it comes to software practice. We are first programmers when we are in front of our consoles.
At any rate, we cannot neglect the importance of an intellectual commons. We should be thankful for the timely response to complete "capitalisation" of software, as that represents another form of fascism in computing. We would not want the cold corporate brutality in W. Gibson's novels to enslave the art of programming. A single approach will not suffice, we always need a plurality of development methodologies in software practice. It will be an increasingly more important skill to deploy the most beneficial development method in the future. Maybe, we will be devising new development models appropriate for our next programming project.
A captivating aspect of software extremists of either persuasion is a
tendency to argue for their viewpoint in absolute terms that cast moral
aspersions on any who would formulate their stance from different
assumptions. The above is a valuable article which shows moderates can
argue for their views from absolute moral principles as well. A
worthwhile reminder.
It is interesting to note precisely how profitable most small game
companies are. (Ie, not very.)
I'm an outsider to the game scene, so AlanShutko's
criticism could be true. Still judging from where I stand, games seem
to make quite a wealth if not a fortune.
I'm an outsider to the game scene, so AlanShutko's
criticism could be true. Still judging from where I stand, games seem
to make quite a wealth if not a fortune.
I agree 100% wholeheartedly.
Every smart adult of maturity understands the need for choices and
balance in everything.
One way or the highway never helps anyone.
We have in law the freedom of religion (in most countries).
So does it make sense to tell a Christian pastor, "do not preach to me
because everyone should decide their beliefs on their own?"
Not that there is anything wrong with religious freedom, but the freedom
of religion does not justify the claim that what the pastor is doing is
wrong.
In reality, no one can force you to develop software in any particular
way. RMS, ESR, or Bill Gates cannot force you. What you
advocate is the status quo. So what is the point?
There is nothing wrong if the Free (libre) Software community creates software that fulfills every type of applications, so people do not need to use proprietary software. In that state, people can still write proprietary software, and other people can still buy them. No one can force proprietary software to disappear as long as there are people doing it.
(Re: Bill Gates--in principle, he cannot force you; in reality, he may
be able to do that to some degree, but that's off topic)
A monopoly is always more profitable than a working in a free market.
Since a free software company essentially give up the state granted
monopoly on distribution, development and support of their software,
they will never be as profitable as the most profitable non-free
software companies.
Whether one consider this is a bug or a feature depend on whether one
prefer a monopoly over a free market, which again depend on whether one
think the goal of the economy is to maximize profit, or to deliver goods
at low prices.
Intelligent customers in general prefer the later, which is why free
software comnpanies have a chance in the marketplace. A monopoly on
service and upgrades doesn't do you much good if people don't buy the
product in the first place.
Most modern games are more like movies than like software, nobody
(despite "directors cuts") really care about service and upgrades for
movies, the money is on distribution. So giving up the monopoly on
service and upgrades don't buy you a competitive advantage in the eyes
of the customers. Which mean free games will stay in the realm of
hobbyist rather than professionals. Where it has a fine niche, thank
you, Nethack tend to score high on online surveys despite it not
existing in the game marketplace.
Free software is a license model, not a development model. You can
develop free software any way you want, as long as you slap on one of
the right licenses when you release.
Free software is a license model, not a development model. You can
develop free software any way you want, as long as you slap on one of
the right licenses when you release.
<person>neil</neil> says it is just a license model, but apparently
the license is the messenger of a world view. So in fact, there
is development model or models associated with what FSF
endorses as free software.
Nevertheless, my use of the phrase "development model" would be
misleading because I should refer to the complete "software practice"
which includes other activities than that of development. Thanks
<person>neil</neil>
BTW, in reality you don't decide what the license is going to be at
the last moment.
Status quo?, posted 4 Sep 2002 at 13:09 UTC by exa »
(Master)
I am not defending the status quo, in reply to atai.
I am not talking about the law, either. I am saying that we
should be aware that no single methodology will suffice for software
practice. None of the existing or future methodologies. The
correct conclusion to draw from the article would be that we may need
to invent new kinds of software practices where others don't apply and
that one of the existing methodologies will not be a one-size-fits-all
solution.
There are already different kinds of practices within the free
software community, for instance many "free software" academic
projects use different methods than KDE project.
What I'm saying is, there are shortcomings of free software.
We are ignoring these shortcomings, and we are advocating blindly.
That is wrong. We, as programmers, must be aware that there are
problems, and these problems need solutions. That solution might not
lie in forcing the rest of the world accept our view of software.
Maybe it lies in inventing new forms of social organizations,
institutions, religious sects and whatnot. But definitely not in
preaching free software as we know it to every single human.
This article's whole premise seems confused to me. It starts by claiming to "outline some reasons why we need a plurality of methodologies rather than a single ideal" but goes on to show that we currently have this, rather than proving we need it, and ends up saying that enforcing one thing is bad and freedom and choice are good. This is RMS's whole point - and he believes enforcing the GPL leads to greater choice.
As neil touched on, this article is mainly about
licensing, not development methodology or software practice. You can use
eXtreme Programming methodologies with Free licenses, or proprietary
EULAs with bazaar-style practices; imagine a huge shop like MS using an
internal bazaar model, where all code is available to all employees and
they can jump in an contribute to other projects (for example if a Word
developer finds a bug in the kernel's mouse-handling and fixes it
himself rather than wait for the mouse team to triage the bug and fix
it). This may not be a likely scenario, or even a good idea, but it's
theoretically possible. Doesn't affect the licence on the code, nor does
it affect non-employees' right to see (let alone change) the code. MySQL is (as far as I know) developed in
an almost cathedral-style way, but is GPL'd. There is a lot of
communication between users and developers, but as I understand it most
of the actual development is done in-house by developers who are
well-versed in the complexities of the system (individual wizards or small bands of mages, as ESR calls them). The InnoDB code is
developed by one group, the BDB stuff by another, and the core MySQL
stuff by the MySQL A.B. employees, without much user-input (please
correct me if I'm wrong here.)
What are you proposing should be a matter of choice? Licensing? I think you'll find a lot of agreement, very few people hold views as extreme as those of RMS (the chief proponent of a philosophy should be pretty fervent about it!) Methodology? You don't have to accept patches from strangers or people who don't follow your methodology, you can retain full control - if your project has an Open Source licence you might find you're replaced by a more popular/successful fork using a different methodology, but that's market economics. Support models? You don't have to let your users talk to you via newsgroups or mailing lists, you could make them submit bug reports only through officially-appointed sales reps. But again, if it's Open Source a fork that does interact with users might replace you.
ESR may advocate bazaar-style methodologies, but RMS preaches about licences. Does he care how I develop my software as long as I slap the GPL on it?
I think the GPL tends to encourage the bazaar model, but doesn't enforce any particular practice - what it does do is allow anyone else to choose another practice and compete with you on a level playing field.
When I advocate Free Software, I do so because I believe the licences give greater freedom. I don't do so because I believe that Gnome's software practice should be used to develop mission-critical apps. Come up with whatever new software practices you like, just make sure you license as Open Source!
Extremity, posted 5 Sep 2002 at 02:46 UTC by neil »
(Master)
redi: Is Microsoft "extreme" for using only proprietary licenses and
actively attacking the GNU GPL? Why do you only insist on labelling
Richard Stallman so?
I don't know how consistent Stallman's rhetoric is, but in practice
he's one of the most fervent *defenders* of copyright around. When
free software developers see copyright infringement, where do they
turn for advice? The FSF. When free software developers want to see
an example of copyright transfers, where do they turn to look? The
FSF.
Stallman in theory may be opposed to developer choice, but in practice
the FSF has only stood for *user* choice of licenses. Users have no
less freedom than developers. This means that users can be as
demanding as they want, insisting upon all their necessary freedoms
all the time.
And what's wrong with that?
Extremism..., posted 5 Sep 2002 at 11:54 UTC by tk »
(Observer)
(neil: Yes, Microsoft is extreme. And what has the rest of
the points got to do with extremism, or the lack thereof?)
Regarding the relationship between licensing and methodology, though closed
methodologies can be used with open-source software, it seems more difficult
to apply open methodologies to proprietary software. Besides the (abstract)
argument that using the world as a developer base means that you have a lot
more fingers and eyes than a single company (all other conditions being
equal...), another reason seems to be something mentioned in the article,
namely the human factor. Who's going to work on a piece of proprietary
software if he envisages that it'll be exploited by another company? Even if
you pay everyone who works on the software, how should the payment be
distributed? How should a company encourage people to contribute more?
As tk says, one of the main ideas in the article is
the human factor which the free software community tends to ignore. I
intentionally say "RMS's world" and "ESR's utopia" because they do not
necessarily correspond to the real world. They are fantasies
just like Microsoft's fantasy to dominate the whole freaking world. We
won't let that happen. They can't possibly do us for all eternity. :P
It looks like redi has already bought RMS's fantasy,
but let me once again claim that the practice is not
independent of philosophy, license, etc. behind the project. A project
curtails a whole software practice, and the elements of practice have
to make the whole, or there is no software in the end. As I
implied before there are some methodologies consistent with a license
(say GPL) and others that are not. You should not decide your
license when you finish the project, that will be only a foolish step
to take.
Let's take it this way. Programming is engineering and design mostly.
So the practice must take the engineers/designers into
account. Without them there is nothing. You cannot trust the
(non-programmer) user crowd, it does not work like that.
Let me bring you a working model of free software: KDE project. In KDE
project only a handful of people make money from coding. There aren't
many active programmers, there is at most 100 or 200 developers, maybe
even less. And why on earth are this few people responsible for the
incredibly awful amount of work? The answer is because KDE is what
they use and like, that's how free software works for them.
Another way goes like this: in academia your professor tells you to do
something, you ask him "can we make this free software?" if he says
"all right as long as releasing it like that will not corrupt our
research" (it may, in which case it doesn't get released as free
software) An alternative egoist way is to write free software to
promote yourself so that you will be hired by a good company.
Money, money, money. That's one hell of a human factor that we love to
ignore. Face it, human beings can't live without money in NWO. It's
impossible, I've tried it, it doesn't work. So, we either have to sell
our souls to the savage corporate world or come up with
something that works in that respect. What I said went something like:
neither free software nor open source can make good money, so what are
we supposed to do?
Software can be more than a hobby.
I think I can support the idea that we need a plurality of approaches.
I show that no single philosophy/model/practice at present can produce
all kinds of software. I do this by explicitly showing what free/open
software can not do. This can be done for other modes of programming.
Maybe it is not a proof, but I believe my argument is
persuasive.
I definitely don't think we have all possible kinds of
models/licensing/practice at present. In particular, I think free
software licenses are inadequate for scientific research (See my prior
article on this site), believe it or not.
Therefore, I do think that we should be seeking alternative licenses,
methodologies, approaches constantly because what we cannot accomplish
will remain undone if we are barred from changing our minds.
A few thoughts I omitted from this article: I think we may need to
fine-tune licenses for software. For specific domains/applications.
Lessig's creative commons might be a good place to start. I think we
will be needing new kinds of "private law" to claim our cause.
We will also be needing social change, if not as dramatic as RMS would
like. I think we need to coerce the governments to support open-ness.
Bruce Perens' "Sincere Choice" is a positive movement in that
direction! Good engineering demands open-ness! What I have in mind is
governments giving credence to us programmers, funding us like they
fund university research. All they have to recognize is that mindful
anarchy can work better than monarchy. (naive anarchy creates mere
chaos, or punk rock)
Meanwhile, we will need to develop new ways to transform money coming
from these "alternative" sources to software. Possibly making use of
cyberspace. I have no idea how this will happen, but this will be
something akin to the 2nd software revolution (the first revolution
being free software!).
I think the solution is not in companies like TheKompany or Ximian. I
have observed that these companies tend to lose the advantages of free
software on which they are based. I haven't made an analysis of the
reasons so I don't label them as failures of any sort, but in my
opinion they haven't made the shock waves they were expecting to
generate. One thing that did surprise me was that TheKompany can
afford to pay only very little to their programmers.
reply, posted 6 Sep 2002 at 05:46 UTC by mslicker »
(Journeyer)
You critisize RMS for holding an ideal, yet this essay just expresses
another ideal. This ideal rests on the present state of things, as if
things didn't change. That capitalism is a fact of human society rather
than a current state of human society. What if production was organized
around social need, rather than private profit? Do you think this would
at all effect our perspective as to the "true" nature of software
development? RMS sees free software as "true" state of software in
capitalist society. As you point out, there are obvious contradictions
in this. Capitalist society is in its nature competitive, controling
software codes can clearly lead to a competitive advantage in the
capitalist market. Additionally, controlling the software codes of a product used by others can lead to enormous profit, as demonstrated Microsoft and others.
You rightly point out the main premise of the Open Source scam, cheap labor. Open Source has probably been the most damaging to individual developers and hope for any kind professional development among free software developers. In the Open Source model the majority of resposibility rests on volunteer developers, this benefits the corporation in having the software "develop itself" so to speak.
exa: You say free software licensing will not allow some kinds of
software? Fine, I counter and say that proprietary software cannot
produce reliable software without vendor lock-in. The inherent
conflict of interest means that either the vendor will abuse the
customer, or will be beaten in the marketplace by someone who does
abuse the customer.
FREE, posted 9 Sep 2002 at 16:41 UTC by mglazer »
(Journeyer)
The answer is always:
Let free people, in free markets, freely decide what they want.
Free Markets, posted 10 Sep 2002 at 14:00 UTC by redi »
(Master)
Free market theory assumes an informed marketplace. Most users of
software are not completely informed, they have been misled with FUD
from MS, FUD from anti-virus vendors, spiel from marketing depts etc.
This gives a competitive advantage to certain products / methodologies, / licensing models / software practices etc. that is not in line with free market theory, but that's a different discussion.
Don't take the "free" literally.
This is a highley controlled market. It does not exist in a vacum, but it
is highley integrated with the government apparatus. A precise description
is beyond my current knowledge, but global capitalism would be a good start.
In a true free market, which has never existed, Microsoft would not
exist. They sell bits of information, which can be copied indefinitely
for almost no cost. Microsoft's whole business requires the concept of
intellectual property, which is enforced by the state.
fitting within the framework of the cathedral and the bazaar - certain
kinds of software - necessary, desirable software according to ESR's
definitions - are simply too complex to be correctly implemented or
be implemented at all by casual [bazaar] open source methodologies.
examples: distributed file systems; SMB file system; dce/rpc; windows
2000 domain environment; office applications; internet browsers.
some of these projects started out as successful, proprietary
projects that got so complex and so costly that in a last-ditch
attempt to save them, they were released as open source (soffice
by sun; netscape by netscape; corba by olivetti research labs).
an attempt to release dce/rpc as open source was made eighteen
months ago: the opportunity was destroyed, unbelievably, by
gary gerchak - IBM's Open Group committee member.
everyone can see that having an open source compatible version of
windows 2000 domains is necessary, because it will allow business people
[the majority of computer users are windows users - fact. get used to it].
but the pieces of the puzzle are way, _way_ beyond the ability of
most programmers on the planet to even _comprehend_, let alone implement.
"surely it doesn't need to be as complicated as all that".
well, yes it bloody well does, so shut up.
conclusion: for certain kinds of projects, open source is a failure.
comlex software, posted 16 Sep 2002 at 16:21 UTC by abraham »
(Master)
The canonical examples of projects that was too complex for free
software used to include compilers and OS kernels. Later audio
compression and desktops gained the title. Apparently, we have a new
contender.
Just an observation from an old fart.
Failures, posted 19 Sep 2002 at 23:21 UTC by neil »
(Master)
lkcl: Yes, free software fails to interoperate with propreitary
software, when the owners of the propreitary software actively oppose
interoperability. When you conspire with your propreitary idols to
guarantee failure like that, it shouldn't surprise anyone.
Proprietary software causes compatibility problems, vendor lock-in,
bugginess (have to leave reasons to upgrade), and security problems.
So anyone in the real world with a brain won't trust it. Get used to
it.