Previously on this blog I’ve posted a lot about Open Source Software Development.
I have determined that, while in many ways, while OSS has benefits, in general this is not what I liked about OSS. Primarily I used OSS to supplant an actual local team, formal Q/A, budget, and marketing at a certain OS vendor. If I had actually had those things available to me, that would be superior. (And, I bet, I’d have a lot better of an application).
OSS generally does well at producing at development tools — ultimately there are a lot of things OSS can’t create quite as well — multimedia applications (Lightroom, Hollywood animation packages), high end music production programs, best of breed CAD packages, desktop environments (OS X), really good games (many OS purists have consoles and don’t just play TuxRacer), iPads, motor vehicles. In many cases, going OSS for these things is product suicide — there’s no win giving it away (your competitor will just use it), and listening to too many voices at once is bad for you, just like multitasking too much it can make you stupid and not allow you to depth first dive into new territory. Further, you need paid employees and domain experts working on these things — there’s a huge cost to releasing really good software, and it’s not a hobby. Management software? I think there’s a good benefit still to being able to take patches, but there is no substitute for being able to fund developers to help you out. The idea that people just come together and hand you brilliance is not /totally/ the case. One thing I really do hate though is the idea of community Q/A’d or poorly Q/A’d software. This often makes OSS projects less reliable in many cases. Not a good thing. Is it good for operating systems and hardware support? Maybe… but I like OS X hardware just working and not having to fight ‘xrandr’ more than having freedom over the right to choose my monitor. But that’s just me.
I think another thing I liked was the BFDL position — in that vein, it’s fun to do everything and have your hands in all aspects of a project — it’s not found in many places unless you are employee #1 or so. It’s also a tremendous battery drain that haunts your dreams (how many dreams did I have about systems management? how do you keep the world happy?). So it’s good and bad. OSS communities aren’t all the same either — some are very very different. Lots of projects don’t have any community, and people get a lot of happiness out of the code. That’s fine. Lots of groups build things internally and then “throw the code over the wall”. If you have a local team, use it. That’s fine — going “really open” has a ton of cost. Trying to please everyone is not a good thing, for sure. OSS users can be very demanding for the levels that they give back (or don’t). In retrospect, as much as I enjoyed it, my level of community involvement could have better been applied to development in many cases… but I wouldn’t have as wide of a following, because you do win fans touring, so to speak. And by touring I mean “helping out on IRC”. Though I think that’s not the only way to market an application. (I am still wondering how much I could have made if Cobbler had gotten a commission off of each of the servers it deployed).
Anyway, I thought I should clarify my position just a bit, having had quite a while since I left Cobbler and associated projects. My advocacy earlier implied some other routes of development were less pure. This is wrong. My interest is really in creating things and collaborating. I think your frame of reference (working for a major open source OS vendor) it makes it easy to get caught up in the cause and quasi-religions of it sometimes, and when you see it from the outside, you see how the support model *mostly* depends on you having a codebase people are afraid of — like the kernel. If you have an end user app — it working too well cuts into your support.
Open & transparent government is a good cause. Open & free educational resources is a remarkable cause. Software? About as important to me (personally) as refrigerators being open. As I hinted on when I was searching for higher meaning in software — the legacy of OSS software will be on what /else/ it opens up. Open Source is fun, I’ve learned from it, but we can take lessons from proprietary applications as well — particularly in terms of how you can better organize a set of people all working towards a common cause, rather than 100 slightly different causes. I also enjoy talking more to people who are willing to pay for what they use and need — I find them to be much more reasonable.
I have believed in things for the wrong reasons basically. Had a certain OS vendor given me, say, staff, I wouldn’t have cared if they were Microsoft. I don’t hate Microsoft because they are closed, I do because they make really bad software that eats viruses for breakfast — and tends to go after other innovators. But for being closed source? Not at all anymore.
Huh. I can understand this stance but I don’t understand how Microsoft and Apple act differently
. Both are closed (which via your view isn’t much of an issue) but they both sue those who innovative, patent horde and produce very insecure software. In Apple’s case it is more to their extremely slow patching ability where an exploit will be known, everyone but Apple patches within a month and, over time Apple will catch up with the patch. So wouldn’t an iPad or using OS X be the same as using Windows when it comes to supporting organizations who would rather rule than collaborate?
I wasn’t really talking about that perspective, yeah.
Anyway, that all being said — it also would have been ridiculously easy to destroy a gazillion systems while I was in Fedora, just because there’s no QA on uploaded packages and “eyes on” doesn’t really mean I can’t do something subtle. There’s also a lot of very insecure OSS software used in rather prominent ways.
So, yeah, they have problems. So do all the Linux distros. It’s a different class of problem — and one that has, for the most part, not been successfully exploited to great end. Someday it will be and we’ll need to make sure code review happens on all of that. “Provenpackager” in Fedora would have been a tremendous exploit (and still is, because RPMs can do anything they want).