Garrett Murray, developer of Ego, an iPhone web stats aggregator, recently posted a difficult support experience he had. (Via Tim Burks on Twitter):
In summary, Ego’s Google Analytics access stopped working because Google felt too much traffic was coming from Ego’s server and blocked the IP address. Is this the customers’ fault? No.
Several users voiced their problems on a 3rd party support site called Get Satisfaction. Murray responded, on Get Satisfaction, that the problem had been resolved with Google, an update had been submitted to the App Store and was awaiting approval. Crucially Murray marked the issue as “solved”, before the update had been approved by Apple.
Murray initially complains about the length of the approval process, which, given that it’s been over a week since he submitted the update, is probably valid. Is this the customers’ fault? No.
However Murray then goes on to highlight the complaints of one user, who was unsatisfied with his response on Get Satisfaction, and created a negative review on the App Store. The App Store does not allow developers to respond to reviews, which again is a fair criticism. Is this the customers’ fault? No.
The user’s review on the App Store was:
I bought this because it claimed to support GA. It worked for me one time the day I bought it and hasn’t worked since. I posted to their support forum and was berated for not reading this long and confusing thread about how it is supposed to be working, or it will work again soon, or something. I feel like the software developer did a poor job building and testing this, and now they’re willing to blame the users for their own mistakes.
Which given the Murray’s own blog post and the situation in the Get Satisfaction thread is exactly correct. Pointing users at a separate thread, as if to say “You should have looked first” is rude and obnoxious. If your software is broken, apologise, explain and apologise again.
Murray defends setting the issue as resolved by saying:
Apparently they didn’t understand that “solved” was a relative term. Yes, sure, it’s not solved for you right now, but my resolution was pretty clear—it’s solved in the version Apple is looking at. JUST HOLD TIGHT. I thought this was enough. But no.
This is just plain ridiculous. “Solved is a relative term” is utter rubbish and a completely idiotic stance to take with your paying customers. With software there is only ONE definition of “Solved”; when the issue is solved for the customer who has paid good money for the product. . Until the fix is in the users’ hands, the problem is OPEN.
It highlights the stereotypical blinkered developer attitude that once a problem is “fixed” in code, that is the end of the matter.
I have multiple examples in my support log, where I have sent a user a response, asked them to contact me if it does not solve the problem and never heard anything back. In my support system I often wait months before marking these issues as resolved. Unless I hear from the user that the problem is fixed, then as far as I am concerned, it is not.
Murray goes on to say that:
Apple is creating an ecosystem of the kind of customers I don’t want
Well Garrett, if you don’t want them, I’ll quite happily take them off your hands.
John Gruber describes the user as an “asshole” on his heavily read Daring Fireball blog.
This is completely outrageous. Ego’s users have paid good money for the product and rightly expect the product to work as advertised. The issues with Google are not the customers’ fault. Even if everyone has done the best they can, the customer is the one least at fault, having paid for a product that DOES NOT WORK.
As for Gruber’s incendiary remarks, I personally would sue for defamation if I was described in that way.
So often as developers we fail to put ourselves in our customers’ shoes. The user had a faulty piece of software, went to the support site (many wouldn’t go that far), filed a complaint (fewer still), saw a response that belittled him and told him that the problem was solved, when it clearly was not. What other recourse does the user have other than to write a negative review?
There are several lessons to be had from this:
- Program Defensively: the product should respond sensibly when the Google API did not work, rather then report “0 Visitors”
- Program Defensively: provide a support link from within the application
- Respond to every customer complaint individually. If it is a known issue, state that it is, but do not expect the customer to know that. Apologise, explain, apologise again.
- Treat your customers with respect. A customer who has paid you money owes you nothing, whereas you owe him your livelihood.