Where Does The Apple Stop And The Worm Begin?

Chris and Phil both take a dump on Apple. Why? Because the new version of OS X will ship with features that make several independent third-party products redundant.

This isn’t a new complaint, of course. It’s arisen with the last few OS X releases, and before that Microsoft was the bad guy for feeding on its developers. I think that Chris and Phil have the wrong end of this one, though. They paint a picture of an unimaginative Apple, gleefully turning to VersionTracker to figure out which new features to add to OS X this year. What rubbish! Anyone who’s been in software for more than a month can see two blindingly obvious facts: (1) all ideas are derivative, so consequently (2) the half-life of a feature’s value is as long as it takes a competitor to reimplement it. Let’s take them one at a time.

All Ideas Are Derivative

This is the point of Creative Commons: that culture is accumulated, it doesn’t emerge ex nihilo. Science is full of statements like Newton’s “if I have seen further than others, then it is because I have stood on the shoulders of giants.” Technologists very rarely create something new. C was inspired by BCPL, Unix was inspired by MULTICS, Linux by MINIX, XML by SGML, web services by traditional binary APIs, …. This is the problem with patents: the magic that gets patented often ends up being something as questionably worthy as “the right ingredients that we already had” or “this old solution applied to this new problem”.

You can tell there’s no such thing as an original idea in the desktop software market just by looking at the lists of applications that Phil and Chris rattle off: there are multiple virtual desktop managers, multiple chat clients with tabs, multiple application launchers. The desktop managers use hooks that Apple themselves built into the operating system, greatly undermining any claim to primacy they had even if somehow they managed to survive the very long line of virtual desktop managers from the X Windows world. And tabs aren’t a brilliant innovation plucked from the mind of the Chax developer, as he’ll be the first to tell you. Nobody can expect a lifelong boarding pass for the gravy train because they added tabs to anything.

R&D success is not mainstream success, and the two rarely happen in the same company for the same concept. There were hard disk MP3 players before the iPod. TiVo still struggles for a market. Google’s a rarity: the grad students who developed the complex algorithms built the company and run it to this day–generally the young people who develop cool new things do so as employees of someone else. The companies you see at the Emerging Technology Conference all want to be like the Google founders and see the mainstream success of the new product they’ve built, but the odds are against it. They’re the ones inventing the future, but invention and distribution are very different skills. This is a challenge for every company, and is why R&D groups struggle. I think this is a consequence of the smallness of most “inventions”.

A parallel point here is that product developers have roadmaps and wishlists for features. It’s highly likely that many of these features were planned long before third-party developers showed there was a market for them. Not every feature is ripped from VersionTracker: Apple’s adding a time travelling file system (“show me this file as it was at 3pm yesterday”) which third party developers hadn’t been working on. Of course, Apple’s not the first to have this: I was reading papers in the early 1990s from ATT on their “3d file system” that was exactly this, and NetApp’s servers have been providing this functionality to the data center for more than a decade. And it’s likely that many of those new features that do come from VersionTracker were already on a roadmap in some locked Cupertino office.

Features are Short-Lived

It should be obvious that features don’t ensure survival for very long. Business isn’t a single hand of poker, it’s an endless deck. If you make something clever, I can copy it. If I can copy it, what’s your advantage? It’s in being first in to build name, it’s in customer service, it’s in marketing, it’s in customer allegiance or lock-in, it’s in the overall strength of your product. And, most critically, it’s in the lead that you have built. While I’m copying your feature, you should be building the next one. A brilliant Perl friend of mine, Jarkko Hietaniemi, has as his .sig a quote from Jack Cohen: “There is this special biologist word we use for ‘stable’. It is ‘dead’.” This could just as equally apply to the software business.

The only exception to this rule of feature half-life is when your engineering or operations make your feature uncopyable. Do you store more data than anyone else? Do you have so many servers that uptime and scale isn’t a problem? Do you have the storage and CPU to do machine learning so that the system grows better with every user that joins and so users won’t want to leave? Can you solve the complex equations faster than anyone else because you’ve got some very clever hard-core PhDs that would be a very difficult team for anyone else to duplicate? Yes, these are the competitive advantages of Google and Yahoo!. But it’s rare to see them doing anything that exploits these advantages. Side note: I feel that Google’s presence in a market doesn’t spell the end of that market unless they’re taking advantage of their strengths. If they play by the competition’s rules, it’s like watching Andre the Giant audition for the ballet.

So What Can I Be Pissed About?!

The real question here is whether a platform developer has obligations to its developer community. Platforms grow: to do otherwise is to die. At what point should Apple have stopped adding features to its operating system? 10.4? 10.1? System 7? I know people only want Apple to add Big Features that third-party developers aren’t working on, which it does, but to ignore the Small Stuff is to leave your product full of holes and very shoddy indeed. Who in their right mind would want that operating system? (Note to commentators: save the jokes against Windows and Linux for someone who couldn’t see them coming)

These situations will always arise in every platform. Google Maps is bound to add a “save my locations” feature–should it buy Platial? Should it pay off Platial? Does it, in fact, owe Platial anything? People build add-on utilities for Google Calendar and Google Maps all the time (sync to iCal, bulk import, etc.). Should Google buy them when those perfectly reasonble features are added to the Google platform? If Flock’s successful, people will build Flock-specific extensions. Does Flock then owe it to these developers to buy them or otherwise appropriately compensate should Flock add that functionality into the core product? And who decides what’s an appropriate level of compensation?

More specifically, should Apple have bought Watson? Should Apple have hired the developer of Watson? What about the developer(s) of Desktop Manager? What about the developer of the app that added tabs to iChat? If Apple doesn’t owe employment to the developers (Apple should monotonically increase in size with every OS X release?), does it owe them the “purchase” of the product? How do you negotiate that when, ultimately, Apple’s just being nice and could implement the feature for less money than will be consumed by lawyers fees let alone the purchase price? I don’t see a right answer here.

My take on it is that everyone has to assume that their features are up for grab. Whether you’ve written a great virtual desktop manager like Desktop Manager, a great metasearch application like Watson, or a great launchbar like Quicksilver, you’ve got to acknowledge that your reward for becoming an indispensable part of users’ lives is to have your product’s features integrated into the platform. If you’re small fry, you have to play to your strengths: speed of development, agility, and the fact that you’re not tied to 12-24 month release cycles. It’s not comforting to realize that you’re alone in the big wide world and nobody owes you a living, but I think it’s time to accept that fact and move on.

That’s not to let Apple, Microsoft, Google, Yahoo!, Amazon, and other platform vendors off the hook. Third party developers are your flock: they’re fleece and flesh. You want to shear far more often than you slaughter. That’s enlightened self-interest, not ethics though. Ethical behaviour would be to establish a policy that rewards developers who create features you hadn’t thought of, and then stick to it even when you don’t want to.

Open Source

It’s interesting to compare the commercial software space with that of open source. Distros add packages all the time, and it’s seen as a positive thing. The current trend is for companies to give their closed source products to the open source world to be bundled with distros, the complete opposite of the Apple situation, so obviously there’s a different dynamic in open source.

Part of the difference is probably that open source coders can maintain “control” of their work even after it’s added to a distro. The rest of the difference is probably that because of the nature of open source, few people are making money from the software itself. That doesn’t mean that the same type of disputes don’t arise, however: Linus discarded BitKeeper and wrote git amidst “I thought we were partners” kerfuffle, and don’t forget the “GNU/Linux” (Linux distributions are built on FSF software so should have “GNU” in their name). But these are direct analogues; there doesn’t seem to be the same kind of “hey, I was making money from that!” objections to new Linux distro features.

Open source does eat away at profits from commercial software, forcing innovation to occur elsewhere. That was a thesis of Tim’s Open Source Paradigm Shift essay: profits remain to be made, just elsewhere on the stack. This is just a specific case of the effect of competition: any competition will force you to add new features and differentiate. Whether it’s competition from open source, competition from peers, or competition from the platform provider, you’ve got to keep working to earn your money.