Defending a plurality of software practice(s)

Posted 3 Sep 2002 at 18:02 UTC by exa Share This

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.

centrists can be righteous too, posted 3 Sep 2002 at 19:29 UTC by sej » (Master)

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.

Adjust your comparisons, posted 3 Sep 2002 at 20:35 UTC by AlanShutko » (Journeyer)

It is interesting to note precisely how profitable most small game companies are. (Ie, not very.)

Small game companies, posted 3 Sep 2002 at 23:07 UTC by exa » (Master)

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.

Small game companies, posted 3 Sep 2002 at 23:07 UTC by exa » (Master)

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.

Independece is choice, choice is free, posted 4 Sep 2002 at 00:50 UTC by mglazer » (Journeyer)

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.

Advocating the status quo, posted 4 Sep 2002 at 04:49 UTC by atai » (Journeyer)

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)

Monopolies and profitability, posted 4 Sep 2002 at 07:55 UTC by abraham » (Master)

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.

What are you talking about?, posted 4 Sep 2002 at 09:11 UTC by neil » (Master)

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.

What are you talking about?, posted 4 Sep 2002 at 09:11 UTC by neil » (Master)

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.

Is Free Software just a license model?, posted 4 Sep 2002 at 12:50 UTC by exa » (Master)

<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 is about licensing, not methodology or practice, posted 4 Sep 2002 at 15:42 UTC by redi » (Master)

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?

It's mainly about the human factor, posted 5 Sep 2002 at 23:19 UTC by exa » (Master)

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 recognized you Bruce :-P, posted 6 Sep 2002 at 00:46 UTC by jul » (Master)

For the next few days (until 09/04/2002) this URL will be fine :
Open-Source Government Free-software guru Bruce Perens has a new information-technology solution
quite in the same mood.

Re: This is about licensing..., posted 6 Sep 2002 at 01:28 UTC by exa » (Master)

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.

Approaches can produce different things, posted 6 Sep 2002 at 13:07 UTC by neil » (Master)

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.

"Free market" is a euphemism, posted 10 Sep 2002 at 17:35 UTC by mslicker » (Journeyer)

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.

software complexity beyond most open source programmers, posted 15 Sep 2002 at 22:09 UTC by lkcl » (Master)

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.

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!

Share this page