Tuesday, September 30, 2014

Commarch Report

For our Commarch Report we decided to analyze the great media player VLC by VideoLAN

If you're looking for our slides you can find them here.

Here we have links to:

    1. The project's IRC Channel
    2. Source Code repository
    3. Mail list archive
    4. Documentation
    5. Forum
    6. Project Website


A. Describe software project, its purpose and goals.

    VLC is, to put it simply, a media player to end all media players. It supports nearly every video codec, audio codec, metadata/tag type, subtitle format etc. It’s not designed to organized your media, but play anything you throw at it.

B.  Give brief history of the project. When was the Initial Commit? The latest commit?

    VideoLAN was started in 1996 as part of a school project by students of École Centrale Paris. The original goal was for the students to watch television on their PCs. They began writing VLS(VideoLAN Server) and VLC(VideoLAN Client) to stream and run MPEG2 images. In 2001, the school’s director agreed to change it to the GPL License and developers from around the world started working on the project. VideoLAN hosts Dev Days once a year, which they call a technical “unconference”. The last meeting was September 19th-21st, 2014

C.  Who approves patches? How many people?

    All patches are submitted to the mailing list, which has four admins: Konstantin Pavlov, adminvideolan (an unidentifiable person), Jean-Baptiste Kempf, and Felix Paul Kühne.

D.  Who has commit access, or has had patches accepted?  How many total?

    Rafaël Carré is in charge of the GitHub repository currently. They don't identify who else has commit access. Over 800 contributors have had patches accepted. List: https://github.com/videolan/vlc/blob/master/AUTHORS

E.  Who has the highest amounts of "Unique Knowledge?" (As per your "Git-by-a-bus" report. If there is a tie, list each contributor, with links if possible)

F.  What is your project's "Calloway Coefficient of Fail?"

    We calculated the Callaway Coefficient of Fail for VLC and the project scored a solid 40

G.  Has there been any turnover in the Core Team? (i.e. has the same top 20% of contributors stayed the same over time? If not, how has it changed?)

    Many of the top 20% of contributors have only joined the project since the last few years. The initial contributor, according to GitHub, Jean-Paul Saman, is still on the project but has not contributed as much in recent years.

H.  Does the project have a BDFL, or Lead Developer? (BDFL == Benevolent Dictator for Life)

    Jean-Baptiste Kempf is the President of VideoLAN, the non-profit organization that started VLC.

I.  Are the front and back end developers the same people? What is the proportion of each?

    The backend and the frontend are mostly separate. LibVLC has one set of contributors, and each platform's frontend (iOS, android, OSX, etc) each seem to have their own core developer(s).

J.  What have been some of the major bugs/problems/issues that have arisen during development? Who is responsible for quality control and bug repair?

    Feature Implementation:
   
    There are tons of on-going projects and features that people are implementing. Each feature has its own page and wiki, with pull requests being decided by developers of the current project. The wiki page for mini projects contains dozens of small projects sorted by “short”, “normal”, and “long”. One warning that the wiki page contains is Be careful, some projects may be unrelated, or deprecated, because of fast evolving software! Ask before you attempt! This lets people get involved in the community, and to be assorted rank.
   
    Bug Fixes:
   
    VLC has a rather in-depth bug tracker. This bug tracker is for issues specifically with the software and bugs, not for support, where there is a seperate forum named VideoLAN forum. There are detailed instructions on how to submit bugs. A warning suggests "Keep in mind that abuse of “high” and “highest” priorities will only attract ill will".

K.  How is the project's participation trending and why?

    Participation seems to generally be linear. The project is active and a stroll down the git log will find many commits to various parts of the project from the core devs every week.

L.  In your opinion, does the project pass "The Raptor Test?" (i.e. Would the project survive if the BDFL, or most active contributor were eaten by a Velociraptor?) Why or why not?

    Definitely, the development on VLC is very active from a wide range of contributors. And there are a few "Core" developers so if any one of them died, there would be other people to take over.

M.  In your opinion, would the project survive if the core team, or most active 20% of contributors, were hit by a bus? Why or why not?

    Yes and no. By far the most active 20% of contributors have a large percentage of the commits and know the code the best, however VLC has been around for a long time and has a large following and community around it. It seems like the kind of project that the community would try to support and continue development on if the core dev team got wiped out.

N.  Does the project have an official "on-boarding" process in place? (new contributor guides, quickstarts, communication leads who focus specifically on newbies, etc...)

    The onboarding process for VLC is quite detailed and helpful. There are several links in the Developer’s Corner on their wiki for things such as Get started at coding on VLC, the source code and lists of projects. There is also a hacker’s guide as well as extensive information on the different types of documentation. They also heavily suggest you join the mailing list to become involved with the community. In short, if you want to become involved in the community, it is more than possible and even easy.

 O.  Does the project have Documentation available? Is it extensive? Does it include code examples?

    Yes, the documentation for VLC is quite extensive. It uses DOXY generated styling, so most documentation is code generated, as opposed to a wiki.

P.  If you were going to contribute to this project, but ran into trouble or hit blockers, who would you contact, and how?

    The Mailing list and the IRC seem to be the places to be for VLC development. I would probably check the mailing list to see if anyone is having a similar issue and then jump into the IRC channel and ask if anyone is familiar with the project.

Q.  Based on these answers, how would you describe the decision making structure/process of this group?  Is it hierarchical, consensus building, ruled by a small group, barely contained chaos, or ruled by a single or pair of individuals?

    VideoLAN is a massive community, and there are tons of developers and contributers. That being said, the most active 20% of contributers seem to be in charge and generally work in a community census. That being said, the term “controlled choas” would also be an accurate representation of the VLC process. These guys really believe in open source and it completely a community driven product. There are thousands of people that contribute, even though it seems the original students that designed VideoLAN in the first place still regularly contribute. Final decisions for each merge to master are usually designated by the leaders of a specific project.

R.  Is this the kind of structure you would enjoy working in? Why, or  why not?

    I think it would be pretty interesting to work in. It’s definitely structured well and there’s a clear set of project leaders. VLC is well known and has been in development for a very long time so I imagine that the structure has to have been supporting that kind of growth.

No comments:

Post a Comment