I got up this morning around 6:30 to furnish my bladder with the satisfaction of release and respite from its constant job of helping me to not constantly wet myself.
While engaging in the act, I was thinking about open source software. I don't know why it was on my mind at a time when I could hardly focus or walk straight, but it was. Maybe I had been dreaming about it earlier. I don't know.
Anyway, foremost on my thoughts was what I've often referred to as "that digital graveyard of forgotten software called 'SourceForge'." Running through my mind were past experiences with the open source community, and where I found the experiences to fall short.
For one thing, I think I've probably spent about 900 hours of my life combing through the projects on SourceForge, following interesting links, and getting my hopes up about cool ideas. The reality, though, was that the vast majority of projects I encountered had either been abandoned, only had one developer, or were probably going to be abandoned before too long.
I thought about the handful of times I ever looked into joining projects. The one I was most excited about was helping to code an IDE for Chipmunk BASIC in Java.
The message in which I asked to join was met with a very curt response, and I was basically told that it wasn't happening. I couldn't quite understand what the person was talking about, but whatever. Oh, well. At least I tried.
Spending more and more time on the site, I began to think about something else. It was something that had ricocheted off my neurons a few times, but which I had never articulated.
This morning, while relieving my bladderial pressure, it all dawned on me: A huge portion of open source software development is simply about two things:
1) Getting excited about the project and patting oneself on the back for engaging in OSS work.
2) Choosing the license.
Number 2 is what gets me the most. I can understand number 1, having been there myself.
But number 2 is the one that irks me. It's the one that's most heavily laden with self-importance. It's the one that makes the process sound much larger than it is. It's the one for which major announcements are made: "For release 0.0.0.0.0.2, we decided to switch to the Apache license [insert long drawn-out "why we switched" speech here]."
This is part of what has, for me, been the Great OSS Disappointment.
It's such a fine example of people wanting to organize, do things that sound really official, sign important documents, and then sit on their asses. It's like when you were a kid, and you appointed a treasurer for your street's bicycle club. You never did anything important with the distinction of "treasurer," but damn, it made you feel important.
I think that's useful, and it's nice to feel needed, but I think it draws attention away from what's really important. Instead of staking out new territory and beating the holy crap out of the next street's bicycle club, which is what you should be doing, you're sitting around and pontificating about the importance of your position as the treasurer of the bicycle club (which is to say nothing about what an ass the president is going to be).
Likewise, on a project that you feel is extremely important, you might find yourself spending more time discussing the licensing and the positions than you will coding. As a matter of fact, from the looks of the status of many SourceForge projects, very few ever even get beyond the stage of choosing the license. Sure, there might be a release of some undocumented code that won't compile, but in my book that doesn't really count as "progress."
It reminds me of a Simpsons episode that I saw a couple days ago.
Lisa was watching the news when she learned of an oil tanker disaster at the coast. The broadcast showed celebrities cleaning the muck off baby seals, and Lisa got excited. After seeing the process, the importance, and the glory of the job, she decided that she wanted to take part in it.
So, she dragged her mom (Marge, for those of you unfamiliar with the show) to the beach.
Upon their arrival, the cleanup coordinator approached them and said that they could get started cleaning the rocks that were covered in oil. Lisa protested, saying that she wanted to work on the animals. The coordinator countered that the animals were being reserved for celebrities, but that there were "thousands and thousands" of rocks to be cleaned. He handed Lisa and Marge toothbrushes, and off they went - to clean the oil from thousands of rocks.
A little while into it, they were already wishing they had never begun.
How does this fit in with OSS?
The animals (the real glory of the cleanup) were assigned to celebrities. In the OSS world, the animals would be the big projects: The Linux kernel, anything Apache, various Java app servers, and so on. The celebrities would be the Big Names heading up these projects.
Lisa would be the average developer, looking to get involved - probably filled with ideas about how great it's going to be, and about all the glory that will be earned from volunteering on some fine piece of OSS.
The rocks are the "real" projects on SourceForge - the thousands and thousands of abandoned and semi-abandoned projects that won't ever go anywhere, and that nobody wants to deal with.
I don't really have an argument to make about any of this stuff. It's just the "Ah-hah!" experience I had while peeing this morning, and I thought I'd share it with you. I apologize if I've disturbed anybody.