What Open Source Can Learn From Apple
Linux and open source have long struggled to gain acceptance from the wider (read: non-technical) audience. This has improved in recent years, but still has a long way to go. Columnist Matt Asay suggests that perhaps open source projects should attempt to emulate Apple's design philosophy, with whoever succeeds becoming the "winner" of the hearts and minds of the vast majority of users. "Some projects already accomplish this to some extent. The strength of Mozilla, for example, is that it has figured out how to enable 40 percent of its development to be done by outside contributors, as BusinessWeek recently wrote. The downside is that these contributors are techies, but the upside is that they're techies who add language packs, accessibility features, and other "niche" areas that Mozilla might otherwise struggle to deliver. This suggests a start: enable your open-source project to accept meaningful outside contributions that make the project reflective of a wider development community. But the real goldmine is broadening the definition of "developer" to include lay users of your software. The day that I, as a nontechnical software user, can meaningfully participate in an open-source project is the day that open source will truly have won."
I agree with the article that user involvement is key. However, users are clueless about what they really want and you can't possibly use them to write the specs of your product! On the other hand, developers tend to reject criticism from end-users because they lack technical expertise.
I can think of one approach that might work: build a really good analytics library that would measure various usability aspects. Applied to Firefox for instance, it could generate data on how the average user goes about finding a particular setting, how long it takes them to perform a given action, etc.
Developers would respect the hard, factual data that the analytics would generate. It would make it easier for the minority of usability engineers to argue against feature creep.
It's about standards. Apple's UI guidelines are very well written, and very well thought out. When developing your app, you don't need to spend a lot of time thinking about the proper place to put something, because it's generally obvious. This makes it so much more user friendly as a user can pick up on things in a very intuitive way. It also gives a general "feel" to the entire operating system.
When working with Objective-C/Cocoa in XCode, your almost forced to give your app a very Mac like feel to it. The same goes for the iPhone. Everything you'd want in your interface is already pre-built, so everybody's apps have a familiar feel. I know I've heard the exact opposite when developing for something like the Blackberry.
Having more people contribute with no clear guidance will just make things worse.
... only care about EXCLUSIVITY.
I want to make clear that I like Linux and free software; in fact I'm writing this from Mandriva Linux. But we have to accept the awful truth: many Linux users would be using Mac OS X if they weren't a misers. Why do I say that? Because even if it hurts to all of us, I have to say that the Linux community doesn't appreciate quality and freedom.
Normally, Linux software DOESN'T have the same quality that propietary software has. It's normal, it is not bad. After all, free software is free (as in speech) and the other one is costly... No one would use MS Project if GNOME Planner did have the same quality. Is good to have freeware software for things that are not serious, though.
The other reason why someone decides to use Linux is to read the source code, it is a good reason. But let's be serious, how many of you read the code of every update your apps recieve, and when you make sure everything's okay, you compile them and execute them? Nevertheless, I appreaciate the freedom to make modifications. Even myself have modify apps to see on the "About..." screen my own name.
And, the other reason, the reason I would walk on hot coals for it, is that at least 50% of Linux users, use Linux just for exclusivity.Just like Apple is the shit on usability, but more than 50% of Apple users use their products because of the "little apple" logo that appears on the notebook; most of the Linux users don't care about Linux advantages but EXCLUSIVITY.
I would make a difference between two exclusivity types: the miser version of the Macuser, that don't want to spend a buck and uses things like GNOME+Compiz or KDE 4; and the megafriki like Richard Stallman that sees movies with a MPEG-->ASCII converter, edits his web page with a text mode emacs, sees some web pages throught wget, and do everything throught a console while is eating snacks.
The first group don't care about dislocating their hands rotating a 3D cube, nor that KDE 4.2 only do half of the things KDE 3 can do using more time. The cool things is to have windows that bounce up and down like a good tits. Perhaps that is the closest thing to sex they will have. This kinds of users like Ubuntu, Debian, Mandriva... it doesn't matter. After all, they're people without prejudges, that with faith (sometimes thanks to the bad advise that the second group (I will talk about them later) gave them) run from Windows to the freeware Linux.
The second group searches for intellectual exclusivity (as if configure X.org with nano were considered intellectual by someone with a healthy sexual life). They are the typical guys who give you shit because you use MS Office or OpenOffice instead of Latex, the guys who believe they're awesome because they have to type thousands of sequences like "/isearch:qqvv!!" just to edit a text on Vi, the guys who see pages on Lynx and treat you like shit because you use Flash, the guys who think that desktop enviroments are a conspiracy from multinationals companies to force all of us to buy high cost PCs, and the guys who think that, if you use Ubuntu, you're a lammer.
All of them used distributions like Corel, Mandrake, etc. several years ago, distributions that were easy to use (much more easy than Debian or Caldera) and could use lightweight enviroments like IceWM, XFCE, ENlightment... That was enough for them to feel more important than their stupid friends that used Windows, friends that used PCs to do disgraceful things like play videogames, edit rich texts, use scanners or printers, surf on internet with a 56k modem...
With the popularization of distros like Ubuntu, their friends started to switch to Linux, just like they told them before. In fact, they never thought anyone would pay attention to them, and that's why they never thought about the possibility that someday they will not be "superior" to other people because they work for their PCs while everyone else drinks beer or has sex,
Gay people are a market, too !
This is a universal. Most software is delivered to nontechnical software users.
Even the specialized mrp and accounting and I bet even the most technical/scientific of software are delivered to nontechnical software users.
Most development approaches begin and end at the source code control systems, by people who don't ever and probably wouldn't want to get near their customer.
Successful development projects do not simply arise from people having the "fun" experience of development. To be successful you will have to do the "not fun" things of supporting your endusers and documentation and attention to the supporting infrastructure that delivers your running software into running systems.
Apple is very good at figuring out what users actually DO with the products - and that includes figuring it out BEFORE the product is released. This in contrast with giving people what they _say_ they want, which rarely satisfies them.
Can we get a "-1 Wrong" moderation option?
This is bullshit. Bad websites are built people who barely know how to use HTML and Javascript, but believe that the more HTML and Javascript you use, the better the website is. Slashdot, Digg, Gizmodo, Endgadget, Facebook, MySpace - they're all fucking horrible. People believe that because Google can pull it off, they can too. They believe that because they have very fast machines, everyone else does too. The believe that "moar interactive" == "awesome website", and that the more iframes you can pull into one page makes it a "mashup" and very "Web 2.0".
Do you see that kind of shit on the Apple website? Of course not! Apple doesn't succeed because of "design", they succeed because they have production values. They don't tolerate "good enough", they don't fixate on technology because it is new, they don't march to the beat of an ideological imperative. They believe in themselves, and they do what they want because they like it, on the assumption that their tastes are like everyone's tastes. Apple does not live by focus groups. Apple doesn't hold "design" over "technology", they hold "simple" over "complicated". The design wankers attach themselves to Apple's coattails because they can't differentiate between pretty technology and well executed technology. They don't understand technology, so they make a religion out of design so their priests can have something to lord over the unfashionable nerds.
Do you know why so much open source software sucks? It's because the programmers suck! They don't measure themselves against any standard of excellence. They stop when something works, ignoring the fact that it doesn't work well. It's plain old slob apathy. They're not getting paid for it, they can't be fired for failure, so what do they care?
What keeps Apple and Microsoft on top is marketing and momentum. We live in a society driven by mass media. For the most part open-source does not have a sufficient marketing budget. Most people do not even know about alternatives.
"The downside is that these contributors are techies..."
That's like saying the drawback to commercial aircraft is that they are designed by aeronautical engineers.
Soo, the author clearly has no idea what Apple's design philosophy is. Nothing in this article is even close to how Apple designs software. Users don't contribute to Apple's design. While Apple does solicit feedback regarding its current software, it strongly discourages (http://www.apple.com/legal/policies/ideas.html) idea submissions or other contributions to development. Steve Jobs once quoted Henry Ford regarding how they feel about what customers think they want: "If I'd asked my customers what they wanted, they'd have said a faster horse." Apple doesn't care about what users say they want, because users don't think about product development the way Apple does. Apple hires very smart people and pushes them very hard to develop what they do. They're very focused on what they want to achieve and usually dream much bigger than the typical user or outside developer.
Basically, Apple's design philosophy is completely backwards from open source design philosophy, and I believe that's one of Apple's true strengths in its design process and what allows them to bring to market the breakthrough types of products that they do. There are many other design and engineering principles that are also fundamental to Apple's success, but bringing that to the open source world seems like a poor match.
# Use zero modal dialogs. They force the user to act at the software's behest to continue doing what they want. Making the user your software's bitch.
Making
A modal dialog often has value, in that it focuses the user's attention on something that, generally, is necessary to actually do what the user wants. Take Visual Studio for example. If I click "run," and a file has changed since the last build, it'll ask me whether I want to build again before I run the application. You could assume they want to build again, but for some people that may not be what they want, so it asks. Of course, for many workflow options, this only needs to be exposed to the user once. Visual Studio asks me whether I want to build before running, but there's a checkbox that tells it not to ask me again. I check it, click "Yes," and it never bothers me again--but now it acts the way I want it to, every time.
There are many uses of modal dialog boxes that everyone gets wrong, however. No, I don't want to send user statistics ANYWHERE, and you should not be popping up a modal dialog and keeping me from doing what I want in your vain attempt to get me to do so.
Your other points, however, are right on the money. Great post.
"You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time."
I think you are right. Get marketing students or business students involved. Same goes for graphics designers and webmasters. Get the people who are experts to perform the right tasks.
Flexible bare-metal recovery for Linux/UNIX
The major problem is in fact that people who control a project can be incredibly hostile to doing things that improve usability, and will just not compromise because they see no reason to do so.
A relevant example: Linus's uncompromisingly negative attitude toward Unicode normalization of filenames. OS X's HFS+ filesystem guarantees that all names are stored in normalized UTF-8; Linux's ext3 apparently just lets you use whatever you want. This means that in a Linux system, you could search for a file called Martínez.txt (note the accent on the "i"), search for a file whose name contains the subtstring Martínez, and not get a match because the filename and the search string are using two different representations of the accented "i". Or, from the user point of view, you get a search term that doesn't match itself.
At any rate, you do seem to agree that getting project owners to accept usability contributions is an obstacle. What I want to point out is that very often the obstacle is just not practically surmountable, period.
Are you adequate?
I agree with you that a lot of projects could use better or more descriptive names, but you've gotta realize that 99% of the time these are people's personal projects that they are either working on because it has some utility to them or because they just want to get experience.
That's fine, and God Bless. Keeps 'em off the streets, and all that.
But every time someone criticizes Linux for not having an app that does what such-and-such closed source app does, the response is invariably, "Whaddya mean? KgnuSMEGMA is out of pre-Alpha and does EVERYTHING that program does, and once Joey gets home from camp he's going to be spending the rest of the summer building a killer GUI for all the lusers who don't like the CLI."
Personal project? Or alternative to proprietary commercial? You may choose one.
(so you submit a patch)...
At the bottom of the
1 out of 1(0) users know what they want and can express it.
5 out of 10 times they want something that can't be done.
4 out of 10 times they want something that can be done but shouldn't.
1 out of 10 times they want something both worthwhile and achievable.
The Truth About Commercial vs. Open Source ...is that in a commercial setting, there is dictatorial editorial control, and people are willing to work on things they wouldn't ordinarily work on for the joy of it, in trade for money.
Without that, there's no way to prioritize customer input ahead of developer desires, and there's no way to get a developer to work on something that they disagree with.
The closest the Open Source community has come to this are companies like Mozilla, RedHat, and Ubuntu, which are large participants in particular Open Source projects, but which internally exercise a single editorial philosophy over the product, and have paid engineers to work on the things that no one would work on at all, if it weren't for the money.
I have absolutely no idea (and I expect no one else does, either) how you would cause a bug report to be responded to in a timely fashion and get it resolved to the satisfaction of the person who filed it, in an Open Source project, unless the person who filed it wrote the fix, and the fix was acceptable to the some pigs who were more equal than others in the project. Most large changes to Open Source projects are arbitrated by a board of people who are self-selecting, who are there because of seniority, or nepotism, or as a result of a popularity contest. From such groups, you're going to get consensus. Anything that goes against that is going to get strong resistance, even if the consensus is basically what Frank Herbert called a "demopoll", which means you will always end up with the lowest common denominator.
Great products (and terrible ones) require an 800 pound gorilla to force its views on the participants, and for those participants to be willing to stick around despite the force.
-- Terry
(posting again because somehow my other post turned out all fucked up)
> If we live in a world where a good image manipulating application is overlooked
> because its name is GIMP, there is something wrong with the world.
No, actually it is overlooked because people balk at the terrible interface and go back to Photoshop.
Circumcision is child abuse.
Fuck marketing! Just give people the free and open truth.
Let me guess ... you're an engineer?
Seriously, I think the problem here is you are confusing marketing with spin. Marketing actually encompasses a LOT of useful things, not just spin - and most F/OSS projects could REALLY use them. The definition of marketing includes:
It's a common mistake among technical people to think that marketing only includes that last item. Just like many sales or marketing people misunderstand what "technical people" do...
"95% of all Slashdot
Two points:
Are you adequate?
Linux is NOT Microsoft Windows and it is NOT Apples OSX and it is NOT HP-UX or anything else.
The strength of linux (and with this I mean the whole opensource enviroment that you can find on a ubuntu CD) is that it is its own thing.
You have Ford and it produces cars that appeal to some people. You have Ferrari and those cars to appeal to some. But you also got people who build their own cars (possibly from kits) and that is a market too.
It would be absolutely silly to ask a kit-car to have the same build qualities as a porche or the same features as a mercedes.
The people who want linux to learn from either apple or MS are the same who would put a radio in a ferrari or an airbag on a buggati. Or for that matter require that a dune buggy has an airco.
Linux is what it is because it is what it is. That includes a thousand techies "designing" software to their own tastes. If you happen to like their taste, you are in luck. If you don't... well then you either become a techie or pay someone to be a techie for you OR buy Apple/MS.
What always amazes me in these type of stories is that non-linux users seems to thinkthey can demand unpaid linux developers to dance to their tunes, yet happily pay both MS and Apple to NOT listen to them. I told apple not to go to Intel and did they listen? I told MS to not do Vista DRM and did they listen?
Before you try to tell linux developers how to their their hobby, try telling the people you actually PAY how to do theirs. Get safari the way you want it if you want to bitch about the mozilla team not listening.
For that matter, if you want linux to listen to customers, then you need to talk to RedHat or Ubuntu or whatever. They are the ones who have customers. Linux does NOT have customers. It has developers and users. If the user does not like what the developer does he first has to become a customer. Good luck with that.