Look ma, I re-invented the wheel!

I love free and open source software, but there’s one characteristic of the FOSS community that is driving me mad: there are just too many me-too projects! Instead of cooperating and solving new problems, most seem to set out to solve the same problem again and again.

Case in point: It’s just too easy to make a Linux distribution these days–witness the top 100 distros at distrowatch. It seems every kid on the block is creating a distribution, with nothing original except it’s got their own my-name-ix. This has many problems:

  • Software vendors can’t support 100 Linux distributions, it’s just too much work
  • The package maintainance, system development, and support communities are fragmented, failing to reach critical mass on certain topis and problems
  • New users are confused with too much choice, too little direction, and may become very disillusioned if they happened to chose a distribution that has a dead end (very likely since many distributions are just one-person operations)

I’m not saying innovation isn’t good, but there are better ways to innovate so that FOSS is strengthened, not weakened. Let’s say you’re a Linux geek working in the insurance industry, and you’d like to improve Debian for people like yourself:

  • You might chose to create a Custom Debian Distributions (CDD) for the insurance industry. This is not a Debian fork (derived distribution) a la Ubuntu, but a meta package which specifies a set of packages, customizes them, and configures them to work together in a certain way. In this case, the “debian-insurance” CDD would probably select a few packages that might be good for insurance people and configure the applications menu with only relevant menu items. You should, of course, also create a community that allows other insurance people to participate in the continued definition and maintenance of this new CDD. This is as easy as creating a Source Forge project.
  • You might also chose to become the Debian maintainer for a few insurance-related packages that are not in Debian already, packages that aren’t duplicating functionality already available.
  • If you find some problems with packages you want to use, let’s say they can’t easily be configured the way you want them to be, you should provide patches and extensions to the upstream Debian package maintainers so that everyone can enjoy this new functionality or bug fix.

This has some wonderful benefits:

  • You’ve added value to the base Debian distribution, making FOSS and Debian stronger instead of weaker, as well as simplifying the choice of the end user.
  • You’ve minimized my own maintenance burden, since you can automatically benefit from upgrades of other packages, extensions to Debian, etc.

To summarize my plea to all FOSS activitists:

Don’t re-invent the wheel.
Don’t let shyness or laziness stop you from connecting with and joining other communities out there that are also focused on solving the problem you want to solve.
Forking is the last and worst option; it’ll increase your maintenance burden and weaken FOSS overall. You are in essence creating a competitor.

This me-too problem applies not only to distributions; it’s easy to see the same effect in, e.g., web application frameworks and language modules as well.

Share it on...
del.icio.us  Digg it  Netscape  Newsvine  reddit  StumbleUpon  Yahoo MyWeb  

One Response to “Look ma, I re-invented the wheel!”

  1. Bjørn Stabell 白熊 » Blog Archive » RFC: debian-lanserver Custom Debian Distribution Says:

    […] Bjørn Stabell 白熊 Sometimes when you fill a vacuum, it still sucks. « Look ma, I re-invented the wheel! […]

Leave a Reply


tracker