Wednesday, December 12, 2007

Applying a Proprietary Paradigm to an Open System

I would like to start off by saying I am a big fan of the open development model for almost all software. Over the past several months however I have seen a lot of users, many of them long term FOSS users, try to apply the proprietary paradigm to open projects. This is most obvious with KDE 4.0, but I have seen it in a less dramatic way with other projects. The specific paradigm I speak of is the x.0 product ready for the masses paradigm. Everything I have seen of KDE 4.0 tells me that it will not be ready for the masses. That is not to say it won't be a good product, but it won't be ready for the masses. Even the people within the KDE development community have been saying on forums and in blog posts that they recommend people wait till 4.1 for a really complete user experience, and recommend distributions wait until 4.1 to include the code base. This hasn't stopped Kubuntu from including KDE 4.0 code before KDE is even released.

At issue is the need for community feedback. I have heard this from several developers, if they don't release something *.0 they don't get enough users to really find all the bugs and fix them. In a proprietary company there are large scale structured betas, and people who are paid specifically to try and break the software. In high school I was one of those people. I got a delightful $6.50 an hour back in the 90's to try and break an online curriculum for elementary school kids and do detailed bug reports. The problem we run into with FOSS software is that it's made by developers, and while we are starting to get "end users" with all the good and bad stigma that holds in our community, they are not the ones running betas. Mostly developers and hard core geeks are running betas, especially of products like KDE which if you run are going to take over your entire GUI experience. Developers and hard core geeks are by and large going to be more similar to the people who wrote the software than your average end user, and the whole point of a beta is to get a very different set of eyes on the software. This is still a problem with proprietary models, but it seems to be less so because so many people want the status of getting that early release of windows or office. I have met these people, they make no sense to me at all.

I do not know how to fix this problem. It's tied into a well established way people think about alphas and betas and RCs and the entire version numbering system and what certain number combinations mean. These preconceptions were established when proprietary software ruled all, and not all of those pre conceptions apply to FOSS. I do think we need to begin to move away from that numbering system in some way. Before we can get to that though is the real crux of what I wanted to talk about (sorry that first paragraph was setup). People in the community need to understand the dynamics of how FOSS is developed and that a *.0 for a community FOSS project isn't going to be the same thing as a *.0 proprietary or even corporate FOSS project. I have seen so many people frustrated and disappointed by what they are seeing in KDE 4.0. Many of them have been very "vocal" about this in forums. Some of them in constructive ways, some of them in flaming "KDE SUCKS SEE I TOLD YOU GNOME WAS BETTER" way. I have also seen KDE developers over and over talk about how they are accomplishing pretty much everything they want with 4.0. They wanted to do a complete overhaul of dead code, and attempt to make system which will prevent them from becoming dependent on specific technologies. They have established a wonderful working system that can be much more easily built on and developed from this point forward. They have not made a great desktop yet. It's not there, and more importantly that wasn't the point for 4.0. The point was to make it easier to move towards developing a great desktop. This dynamic is true for many large community open source projects, especially when they do a major overhaul like KDE has needed to, and it is important for those of use who promote FOSS to try to keep these dynamics in mind when discussing these projects.

I think this same problem is mirrored in many of the complaints about Ubuntu and their rapid release cycles. Their release cycles have caused them to move forward with usability features much faster than any other desktop. They develop at a rate which boggles the mind in many cases. It has also caused an incredible number of bugs. I have an HP dv6000z laptop. I installed Edgy Eft on it. I had a ACPI problem that was easily enough fixed by turning ACPI off at boot. Not a huge issue, but it needed to be addressed eventually. The headphone jack didn't work. Again a minor nuisance thatneeds to be addressed eventually. Finally it had a broadcom wireless card. Enough said about the wireless. So I figured based on experience with previous distros that within a couple releases I would be fairly good to go. A couple releases later I can't get Ubuntu to run at all. Feisty had a sound glitch that locked the whole system up as the first bit of the startup sound repeated over and over and over. I tried to recompile ALSA, I tried various fixes, all to no avail. Feedback about my laptop became harder and harder to find. That told me more and more people were just giving up on it. When the good fight is happening forum posts happen. If a laptop is trash for Linux you cease to hear about it. So Gutsy comes along, and the sound repeat is still there, and I can't get rid of it, no matter how much I re-compile ALSA, but it no longer locks up all of the X system. Also my desktop system where my wireless card worked perfectly with Feisty had to be moved to a different room so it could be plugged into my router to run Gutsy. I think everyone has heart about Gutsy's wireless woes. Ubuntu is the only system I know of that has these kinds of regressions. These are the sorts of regressions that are supposed to happen as you add new features to developer releases, and alpha/betas. Not when holding finished products up next to each other. Many non Ubuntu fan boys scream about these issues and point to them as why Ubuntu is filth and polluting the purity of linux. Here's the thing, these are not LTR editions. If you look at how long Apple and Microsoft take to release an OS, it is not every 6 months. Apple is closer than Microsoft, but they still don't release at that harried rate. It all comes back to getting eyes on the software because FOSS projects don't have the money to put into testing that Apple or Microsoft do. So they make releases. If Ubuntu takes the time to make sure their LTR cycle products have the kind of quality that a commercial release gets, and moves forward with the bleeding edge on their short term products then I have no complaints.

At issue is a matter of mind share and marketing. These are the largest issues for FOSS. No one is spending the money on marketing that they should be. We see the occasional linux ad from IBM or Novell, but when is the last time you saw a really good Red Hat ad. I never have. I've never even seen a really bad Red Hat ad. I've never seen an Ubuntu ad, or a Mandrake ad, or a Linspire Ad. It's time to start thinking about how people view our software, and to send messages that clearly communicate what we intend each release to be. Microsoft and Apple spend billions of dollars on this process. Unfortunately a lot of it is spin, smoke and mirrors. I would hope that FOSS organizations would take a more honest approach, but even something in the mold of the same old same old would be better than everyone just making assumptions based on ingrained paradigms that don't apply.

As a final disclaimer to the people who will inevitably flame me about Ubuntu good or bad. I don't know that Ubuntu is doing what I suggested. Their upcoming LTR release might be as flakey and slow and unfortunate as their in-between releases. I just want to give them the benefit of the doubt. For the fan boys, even with the flakeyness I still use Ubuntu because I love the interface and features.