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.

Friday, October 12, 2007

Why Linux is Ready, Not Ready for the Desktop and Why we Care in the Wrong Way.

Ok, for starters, I'm not going to enumerate on linux's weaknesses and strengths and talk about why it is or is not ready for the desktop. I know, I know my title would make it seem like that was going to be my focus, but it is not. Instead I'm going to talk about the community's idiotic (yeah you heard me bring the flames, go ahead my e-mail is ciggychan@gmail.com) treatment of this subject. Too many other people have talked about what the problems are, and why they do or do not matter, to discuss that would be a waste of my time. I'm going to discuss why those people are all focusing on the WRONG thing.

The Linux Isn't Ready Argument and the Flame Responses

We've all read these articles, and most of us have written angry responses. Listing flaws that either we all know about, or flaws we have no control over. These articles get it wrong because Linux is indeed ready for OUR desktops, and obviously ready for the desktops of certain professional developers, and public library and education stations. Well you know why it's ready for those desktops? Because either they are being maintained by someone who is doing hardware research and only purchasing hardware that will just work when plugged in, or it's in the hands of techies who care enough to look up tutorials and dig into the terminal and hack away at ndiswrapper to get things to work. I am one of those people. Linux is ready more or less for my desktop, and it is totally ready for many other people's desktop. Every time there is an improvement in a new release it becomes ready for a few more desktops. Now here is the point that all the responses miss. We should be leveraging Linux at these people. Do we see marketing campaigns? Well do we? NO, we don't. There is no bloody marketing, except for the occasional ad for major server linux products from IBM, and I haven't even seen that in a while. Because the one flaw we have very little control over, third party app development and hardware support is best changed through getting a larger audience. We should be pushing Linux hard at the people it's ready for. Which also means ACCEPTING WHO IT'S NOT READY FOR!

2 The Linux is Too Ready Articles and Flame Responses

Now come the responses that make me even more crazy that the ignorarant Linux isn't ready articles. They miss the point in an even more painful way because they are from people inside the community. Linux isn't perfect people. It has flaws, just like Windows and Mac. We need to be adult enough to look at those flaws and see what we can do to change them. We cannot stick our heads in the ground. Again I'm not going to waste my time listing those flaws many other people have done that for me. Linux is not ready for the desktop of your average facebook obsessed, web camming, newest version of Photoshop/Flash/proprietary Cannon printer using gaming consumer. The same way Windows isn't ready for our desktop. That's right Windows isn't READY for our desktop. If we can look at those flaws, and ask ourselves, what can we do to fix that. Can we push the big distributors towards collaborating more closely with the LSB to get a more stably API to make development easier. Can we really talk at these various distro developer conferences about usability issues, and working webcam support into Pidgin, and working on the JRE so it works more similarly to the Windows and Mac version. We need to stand up and work on making the product better. Accept our responsibility, while calling people to task who claim Linux is "Not Ready" instead of just writing off their criticism.

There are some good signs, GIMP is accepting major usability suggestions from the community for the next version (THANK GOD). Pidgin is finally moving forward after all that stupid legal bog down. Ubuntu is introducing all sorts of usability advancements. They could use some speed and performance help, but there is still good innovation happening there. We need to push those innovations forward, while taking criticism professionally. That is productive. If we can start doing that, we can begin to significantly increase how many desktops we are ready for. Linux will never be ready for everyone. We are a community that embraces choice, and choice means someone will want something different. That's OK, the joy of distros is we can have one distro for the hard core tech and one distro where you never see the terminal. I am all for this. I approve of it. We have gotten our choice, we got it a while ago. It's time to give the average consumer their choice, and that means making the desktop ready for them to help them. Not to shove Microsoft off their throne. Because when we start doing things for positive instead of negative reasons we will be a lot more willing to actually listen to the needs of the people who's desktop Linux isn't ready for.