I enjoy the Kindle platform, but man the Kindle for Mac product is weak. It feels like it is written using Tcl/Tk bindings or some weird cross platform solution.
I recently got into a strange flow around updating to a new version of the Mac client, and then had to giggle when I saw the following:
I kept picturing the product engineering team sitting around having the following discussion:
Igor: “I really want to be able to turn off support for v1.2.3 of the client”
Jonathan: “Why can’t we force them to upgrade?”
Igor: “A lot of our users didn’t get the app from the Mac App Store and don’t check for updates”
Jonathan: “Isn’t there a way for us to nag the user?”
Igor: “Hmm, not really. We don’t have the client talking to us in a way that lets us send a nag message”
Emily: “Wait, I think there is a way. What do we have is a client that asks for the list of books that the user owns, and 93% of them sort based on new-ness. So….. can we create a fake book called “Kindle update required” that has contents showing the user how to upgrade to the latest version?
Jonathan: “Huh. That is damn ugly but….”
Igor: “Ship it!”
Bian: “UPDATE books SET … WHERE clientVersion < 1.3*
The Configuration Service
How often have you seen folks, especially those who have grown up in the Web world where you can change a lot in real time, forgetting to put in the switches and services to enable you to tell your mobile app what to do.
If you don’t have a clear path to talk back to the apps that your customers install then you will run into an “oh crap” moment. Your launch check list should cover the three legged stool that is: analytics, A/B testing, and confirmation management. Feature flag all the things and give yourself the ability to slowly role out a feature to your user base.
For those moments where you really want to get people upgrading you can start the clock with a nag option that pesters them to upgrade by telling them what they will get for the trouble.
Ideally you will never have too, but you should also always have the nuclear option at the ready. The ability to basically turn the app at a particular version to just tell the user to upgrade. If you ever have to use this option it is an epic fail, but that doesn’t mean you shouldn’t have it at the ready.
You don’t want to be sitting in that room discussing how to desperately get a message to your users on getting them to update, like Kindle for Mac!