Monday, December 8, 2014

Standards Committee's in Open Source Software

Throughout the semester we have seen a lot of committees. All the ones we have sen have been from standards institutions. Let's look at a community ran one!

Debian advertises itself as the universal operating system. This is because they aim for everything to work well out of the box, and to be easily extendible. Since Debian is the [basis of so many distortions][deb-fork], it can be seen as a standard setting body. It is also one of the most bureaucratic, but in a good way. Unlike many other free software projects, the Debian project is guided by a well structured [constitution][deb-cont]. This constitution guides how all of the decision making processes are made within an organization.

The Debian project is headed by a Project Leader (PL). Their roles and responsibilities are mainly discussed in §5. The PL serves in one year terms, and is voted in by the Debian developers. Each term does not have to last the full year if a developer puts forward a resolution to remove the PL. They appoint members of technical committees, make urgent decisions, or make decisions that no one else has the authority to make. I have not listed all of their responsibilities, but the PL is the main organizational unit, and all committees end up reporting to them.

Another unit is the Technical Committee (TC). TC is the group that makes the finial decisions on technical problems. They also help to mediate technical decisions between developers, if they are unable to. The main other goal of the TC is to offer general technical advice. Any developer can ask the TC about it's views on any matter.

To be honest, I find their voting system pretty wonky. The rules for voting can be found in §A.6. Quorum is based on the min(5, log(number\_devs)/2).
Then depending on the type of vote, there are a few different ways to progress. For simple yes no votes, they are simply tallied up. For votes that require a series of options to be listed, a [Schwartz set][schwartz] is used. Honestly, the Schwartz set is pretty complicated math, but the end result is that each item in a list of options is weighted differently. It would be useful in a situation where no one can decide on a first option, so then the second option would be counted.

Although this is a very brief introduction to Debian's structure, it should start to show how it is organized. It is possible to go into much deeper detail on this topic, but that is for another day. Compared to many other community ran open source project, Debian's is probably the most well structured. One of the cool thinks about this structure is that it is freely copyable. Even though any group could copy Debian's rules, without the proper people taking responsibilities, the rules won't matter too much.

[deb-fork]:  https://www.debian.org/misc/children-distros "Debian Forks"
[deb-const]: https://www.debian.org/devel/constitution    "Debian Constitution"
[schwartz]:  https://en.wikipedia.org/wiki/Schwartz_set   "Schwartz Set"

No comments:

Post a Comment