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,
This suggests a start: enable your open-source project to accept meaningful outside contributions that make the project reflective of a wider development community.
Isn't that already the case with most of the free software anyway? I mean not many people might be contributing to every project, but I don't think that is because the core team wouldn't accept outside contributions. In fact, what the hell does "outsider" mean in this context? I suppose anyone is usually free to start contributing to any project they like; usually it is hard to get accepted as part of the team but that is mostly because you can't expect to just get up one morning and figure out everything about an already existing project or convince everyone that what you want to add is in fact a desirable feature.
Seriously, with every Jack writing a piece of "analysis" these days, I am reminded of the saying: "Opinions are like assholes, everybody's got one".
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 spends a lot of money implementing their design philosophies. Lets face it. It's not cheap to design user friendly high quality UI. Most companies that build open source products aren't serving the Desktop; they're serving the server market. The few that actually are (Ubuntu) are taking Linux and the open source desktop to a higher level.
I am very thankful for Mark Shuttleworth and what he is doing for the Linux Desktop. Everyone knows Redhat flip-flops on the Desktop subject all the time and never actually get much done for it.
"Linux and open source have long struggled to gain acceptance from the wider (read, non-technical) audience"
Do they really? Consensus on Slashdot seems to be "If they can't figure it out, screw 'em".
Laws are rules for the court, but merely a bottom bar to hit for life. Think beyond laws in your actions always.
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.
They're not impressed nor amused by app names like gtkWTF, IAMRECURSIVERECURSIVEIAM, and, especially, The GIMP. Also, stop talking about programs being "stable." Isotopes are "stable." Programs either run well, or are buggy.
People mock Microsoft, but I tell ya... I've worked with people who have no idea what Silverlight is or does, but they want it cuz it sounds cool and has something to do with the Web. It's almost as if Linux developers go out of their way to be non-MS in everything -- including creating marketable names for their wares.
The problem, of course, is that the same guys doing the codewriting are the same guys doing the naming and marketing ("...because, after all, I've written the code, and that's the tough part that really matters, right? And if people don't get the Linus/Stallman/Montypython joke upon which I've based the app's name, then fuck 'em, who needs 'em, I'm only doing it for love anyway...").
Why isn't there any open-source marketing? Maybe some of the bigger projects could reach out to some university business and marketing students who could take on the work in much the same way they attract coders?
Spend time on the UI.
Make sure that your software is the user's bitch, not the other way around.
To elaborate, here are some tips:
Question everything
is actually better than a chaotic/bazaar mess that spins it wheels for 15 years? No shit!? Man, I mean while everyone blabs on and on about the bazaar and how great the chaotic development is, it isn't good enough for that central part: The Kernel. So why in the hell we keep fighting a cohesive and directed effort to build at least a baseline for the entire OS is beyond me.
This is why I gave up on Linux for all but my servers. One day it will happen, or Google/Ubuntu will do it first. At this point I don't even care, just that it happens.
http://teasphere.wordpress.com - A little spot of tea
Polish.
Love many, trust a few, do harm to none.
Apple is one man's dream, and it will die with that man.
Open Source will outlive any particular person.
(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.
I call BS.
bash is UNIX2003 standards compliant because of Apple contributions back to bash.
vim is UNIX2003 standards compliant because of Apple contributions back to vim.
I could repeat sentences of this format for about 80 different Open Source versions of UNIX command line commands.
Apple just doesn't make a press release every time it contributes a patch back to an Open Source project.
-- Terry
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
e17.
If there was ever an example of a "closed" open source project...
e16 was damn cool window manager. And then e17 happened.
Two points:
Are you adequate?
Is that you Michael Dell?
Apple is an open source success story. OS X and WebKit are massive open source successes. The iPod is as good an Internet citizen as BSD Unix. The Mac is the easiest to use computer yet gets no viruses. The Web was created on an early OS X and ported easily to open source Unix as a result.
The people who should be learning from Apple are not open source coders who work on the many successful projects. Open source is at least 1 step further into behind-the-scenes than the consumer. It's HP, Dell, Sony, possibly Google and Microsoft, and maybe other manufacturers of consumer technology like car makers who should be studying Apple very closely. Not only to notice Apple's design chops, but also to notice their very successful engineering, including open source efforts.
You only have to say "What Microsoft can Learn from Apple" and contemplate how much better Windows XP would have been if the core OS was BSD-compatible. No viruses. No botnets. All of the engineering efforts that went into the failed Windows 2004 could have been used more productively in the user-facing features. All of the engineering efforts to redo that for Vista could have been used more productively. The typical Windows user installs more patches than apps, and the patches are for stuff they never see or use. Microsoft could be platform-independent through open source, so they could choose to run Windows on ARM right now, which they are not at all prepared for. If they had done their browser engine a la Gecko and WebKit, then they wouldn't have 4 wholly incompatible engines running in great numbers on the Web right now, which they analogized to puke in a recent ad and they were the last ones to admit it. Apple has none of these problems. Apple runs the same kernel on iPod, iPhone, Mac, and XServe and no crashes or viruses anywhere.
On the other hand, with Palm, in the Pre you have a Linux kernel and WebKit browser engine replacing Windows Mobile and IE Mobile from the Treo. Because of Apple. That is Palm learning from Apple about open source.
So it's Apple's competition that needs to learn both from Apple and from open source. Apple and open source are both very successful.