Originally Published: Wednesday, 13 September 2000 Author: Serge Egelman
Published to: featured_articles/Featured Articles Page: 1/1 - [Std View]

Is the OSS Model Failing?

The OSS model is working for bigger projects such as the Linux kernel and other major applications like Apache, BIND, etc. However, it's failing with newer projects. With more people getting involved with writing OSS software, individual applications result without people willing to contribute to other people's work. They seem to want to write everything themselves from scratch.

Let's imagine a major software company, one employing developers to write its software package. They're getting paid each day to come in and write code. The majority of these developers have a strictly professional relationship with the company. At 5 pm. they get to go home to do their own recreational activities.

Image your average geek who likes to code. He goes home after work to write his own applications. Since he doesn't really intend on making money from his hobby, he releases the source code to the rest of the world. Imagine another geek who's looking for an application that does a certain thing. Instead of writing his own, he notices this application already been written by the first geek. Although he wants a few more features, the source code is freely available and he also knows how to code. So he starts working on this project and adds his new code to the main sources. Therefore, one project is getting worked on by multiple people on their own free time because coding is a hobby of theirs. This second system should produce far better software than the first company. Someone who's doing something as a hobby should be more involved than someone who's working merely for money.

This is how Open Source Software (OSS) is meant to work. Not only is the software being written as a hobby, but it's also freely available to use and freely available to modify. If only this were the case in real life.

The OSS model is working for bigger projects such as the Linux kernel and other major applications like Apache, BIND, etc. However, it's failing with newer projects. With more people getting involved with writing OSS software, individual applications result without people willing to contribute to other people's work. They seem to want to write everything themselves from scratch. This is how software development works on the commercial level, which is exactly the opposite of what the OSS movement is trying to accomplish.

As an example, say Joe Schmoe seeks a text editor with a feature no other text editors have. Joe decides to write a text editor from scratch and add this new feature. This is silly, since Joe should find an existing text editor. Since it's open source, he can add the existing code to put his new feature into it. This saves both time, and makes for a single application with more features than two separate applications that do two different things. This is how the OSS model is supposed to work. It doesn't.

Instead of contributing to existing applications lacking a particular feature or with a certain bug, we're getting hundreds of coders starting brand new projects that differ only slightly from existing ones. I'm beginning to think that this is something like the "first post" syndrome. People are writing software that has the same functionality as existing software just so that they can see their names on the big OSS sites (i.e. freshmeat, sourceforge, etc.) Currently at freshmeat.net, there are 179 console-based text editing utilities. How many do we really need? Can't all of the functionality of the 179 be combined into say, half a dozen? This problem isn't getting any better either. With all the new coders coming into the game, this number of "duplicate" apps is only getting bigger. We need to start encouraging people to work on other projects, rather than write everything from scratch.

Today people are unwilling to accept help with such projects even though they're released under the GPL and other such licenses. I've personally had a few such experiences where I've submitted diffs for a program that someone else has written. A response comes back form the lead developer saying something along the lines of, "Thanks, but I've been planning on implementing these features on my own in a few months." The question remains, if no external help will be accepted, why bother even releasing the code under an open source license? The answer is, that although it might have had good intentions, "open source", "GPL", and the like have all become merely buzzwords to the newcomers of the open source community.

Frightening and saddening at the same time, we can't do much about. This phase will eventually die out. I think that soon people will start realizing what's going on. The only way for this revolution to continue is by contributing to it rather than creating separate paths.

Views expressed herein are my own and not necessarily supported by linux.com. My opinions on are based on actual observation.