Garret Murray’s most recent post on his blog, the land where posts do not have titles, is about what happened last week with his (lovely) application, Ego. In it, he basically vents about being a single developer caught between a rock (customers angry that something stopped working) and a hard place (Apple’s arcane approvals process). His frustration is completely understandable with regards to Apple, but I think his larger concern is wrong. In the post, he says this:
This kind of thing continually reinforces something I’ve thought about a lot since the App store was released, which sounds horrible to say but it might be true: Apple is creating an ecosystem of the kind of customers I don’t want.
John Gruber thought it important enough to link to the post using that link as illustration, with the title “Are App Store Customers Good Customers?” This time, though, I think the question is already answered: No, not realy. But the App Store doesn’t create Good or Bad Customers, either. Sturgeon’s Law just as well here as anywhere. What the App Store does do is make it very easy for a user to complain when the mood strikes them.
It’s hard not be frustrated when you have to wait for something beyond your control, but the simple facts are these:
Garrett charged money for an application.
The amount of money is irrelevant.
The application sold Google Analytics support in the same breath as support for other applications that have solid developer APIs
In doing so created an expectation that GA support was “stable” and “not likely to break at the whims of Google with no warning.”
You cannot blame any customer for being angry when that happened.
Do I agree that the users leaving many of these comments are probably huge assholes? Yes. Could Apple do more to mitigate the costs for Developers when something goes wrong? Yes. But the frustration that made Mr. Murray write his blog post is the very same kind of frustration that made those customers, assholes or not, write their negative reviews.
More users means more sales means more assholes.
Adding features to applications is a constant trade-off between opposing forces. Sometimes adding to or changing software can be a hinderance both to the user and the developer in several ways.
Ego, Garrett Murray’s excellent iPhone application, was blocked by Google Analytics yesterday. Since support for GA is one of Ego’s advertised features, paying users are understandably upset. Garrett is a good developer, and I’ve been using his software for years (his application xPad was one of the first non-Apple bits of Mac software I ever purchased) but I think much of the user reaction to this issue was predictable and preventable.
Unlike many of the other stat-tracking widgets used in Ego, Google Analytics does not have an official API with which developers can retrieve data for use in applications. This means that to get the data at all, Ego has to use what I’d (not at all disdainfully) classify as a “hack”; Getting at useful information in an unsupported way. The problem with this is that the average user has no reason to suspect that Google Analytics portion of his $2 iPhone application may stop working without any prior warning. This is a case of the classic “stopped working for no reason” that developers hear all the time. There is a reason, and it’s a pretty simple one, but the user has no frame of reference for it. What’s more,the user has absolutely no reason to know the reason. It’s not their job. They just saw a feature list and clicked buy.
Here’s a screen shot of the features section of the Ego application page on the iTunes store:
You can see here that the Google Analytics feature is listed right next to services with officially supported APIs, such as Feedburner and Twitter.
What this says to the user is “these features are equal, and just as likely to work” which we now know isn’t the case. A lot of applications do things like this, and the intent isn’t malicious- the average user just genuinely doesn’t know and doesn’t need to know what an API is, or what has one and what doesn’t.
Since there is no “official” way to include Google Analytics data, the GA widget is a trade-off between feature set and usability. Unofficial means that it’s more likely to stop working “for no reason.” Unofficial means that Google can change whatever they like whenever they like, and you just have to eat it, like Garrett is doing now.
He’s is obviously a smart guy, and I’m sure he weighed the pros and cons of including support for Google Analytics in the first place, but I’m also pretty sure he’s second guessing that decision at least a little bit today. This isn’t to say that he made the wrong one- I don’t think he did- but that the way in which application features are presented to users create expectations for those features that may have unintended consequences for developers.