There were two pieces from my colleagues over at ZDNet this week that really caught my attention (OK, I cheated… George Ou sent me a link to one of them). The first article deals with the demographics of the “typical” openSUSE desktop Linux user. The second article discusses a number of statistics regarding technological adoption rates. Are the two directly related? Absolutely not. Are the two articles discussing the same issue? Absolutely. What these two pieces are both touching on is the curve of user adoption of technology based upon the “hassle factor,” usability, accessibility, and other factors.
Let’s look at these numbers another way. How many non-technical people (by non-technical, I mean users of low technical knowledge, not just people who do not work in IT) do you know who use GNU/Linux or any other UNIX for that matter (not including Mac OS X)? With the exception of cashiers using *Nix-based register systems or other special purpose applications, I bet the answer is really close to “zero.” Out of the people you know with cell phones, digital cameras, digital music players, BlackBerrys, and other mobile gadgets, how many of those users use more than the basic features? Probably a decent number. I am sure that you have probably observed that it is rare for the average user to go beyond a few semi-basic functions.
GNU/Linux’s best point, in my opinion, is the amount of choice it offers the user at the desktop level. Have I used it much? Not really. I feel that on the low level stuff, the “big iron” *Nix’s and BSD are stronger. After all, things like ZFS, the BSD TCP/IP stack, Java, and so on tend to not come from the GNU/Linux camp. Maybe that is changing — I really do not know. But on the direct, desktop stuff, GNU/Linux is where it is at. Things like PC-BSD are fairly rare (my review of PC-BSD can be found here on TechRepublic). You see many similar projects like Kubuntu or Knoppix that are all GNU/Linux. Desktop user apps like Firefox, GAIM, GNOME, KDE (heck, the vast majority of the window managers) are all pretty closely linked to GNU/Linux. Typically, these projects get ported to other *Nix’s not from. Again, this is simply my perception.
With GNU/Linux, a desktop user has an overwhelming amount of choice. A GNU/Linux install can come with tens of thousands of different applications on the DVDs (if Windows is so much more bloated than *Nix, why does it not need multiple DVDs to install media?), many of which are extremely similar in nature. Indeed, because of the modularized nature of *Nix, many of these apps are code forks of the same common code base, or the core functionality wrapped in a different interface, and so on.
For the 8% of the users who are “omnivores,” this kind of choice is a great thing. These are the users for whom trying new technologies is fun; they don't roll their eyes and groan, “Great, another application I need to learn or gadget to weigh my belt down.” The openSUSE desktop Linux numbers show some interesting trends — most notably that 98% of its users are men. In a nutshell, the openSUSE desktop Linux community does not seem like a particularly diverse group of people. Is that a problem? Only if a large user base is your goal. If getting “average users” (those not in the 8% “omnivore” group, including many in the 49% of users of “few tech assets” and most of the “middle of the road” users), following the lead of GNU/Linux does not seem like such a hot idea.
So where does this take us developers? Well, it points us in a fairly good direction for how we spec, design, and build our apps. If we want to appeal to a very focused, tech savvy audience, let’s give them a ton of choices. Indeed, most passionate GNU/Linux users claim ultimate configurability as a selling point. Another win in their books is the number of similar applications in purpose (but different in code) available. So we can see that the level of configuration and choices that GNU/Linux provides are extremely desirable, albeit to a very narrow group of people.
On the other hand, if we want to write an application that cuts across many barriers, particularly tech expertise and gender lines, we are going to want to build something that is a little less open to tweaking or at least not as “in your face” about it.
People who enjoy tweaking are generally grouped under the “enthusiast” label, whether we are talking about guitar amps, automobiles, or computers. Enthusiasts are a great market to serve. They are much more tolerant of something not working perfectly, since they are going to play with it and tear it apart anyway. They are passionate about these products, so they get online and start they own communities without you having to spend time, energy, and money on some social networking, Web 2.0-ey “community driven” Web site. They give detailed feedback in your language (“You threw an exception on line 345 when I entered an 11 digit phone number”) and not the language of typical users (“It died when I clicked the grey button”).
But enthusiasts are a tough crowd to make money off of — particularly in the software industry. Are some companies making money with FOSS? Sure. Not too many of them are making money off of enthusiasts. How many of the desktop Linux users out there are paying Red Hat a subscription or support fee? Probably none, unless you count those who were given a computer with it installed by their employer. How many enthusiast users are giving MySQL some money for support? Again, probably none. And so on. The money in FOSS comes from support contracts, which are paid by companies that do not feel secure with unsupported software. It is that simple.
If you are going to aim your software towards enthusiasts with a “kitchen sink” feature set, high customization (in the software industry, we call that “an expensive integration”), and other things that appear on the GNU/Linux feature set, you need to have a strong sell to the enterprise as well (security, reliability, scalability, etc.). Otherwise, either make a product with mass appeal, or do not expect to make big bucks from it.
Never forget: One of the biggest selling “applications” of all time was a screensaver of flying toasters.
Justin James is an OutSystems MVP, architect, and developer with expertise in SaaS applications and enterprise applications.