Sunday, December 2, 2012

The Perils Of Publishing A Bad Update (AKA Why Test?)

Mea Culpa - my apologies to the entire community that uses and relies on GSam Battery Monitor.   This bad update (version 2.23) should have never gone out the door!  The latest version on Google Play (version 2.24) fixes the force close issue.

Yesterday (Sat Dec 1) I worked on a few updates and bug fixes to GSam Battery Monitor.  I got them all working and tested on my various test devices, and I was ready to publish.

Publishing is a pain.  I have 6 different builds to run.  2 for Google Play (free & paid), 2 for Amazon Appstore, and 2 for the Nook Store.  I do each one manually - yes, I know...I should have automated this a long time ago).   Once built, I will test install one of the builds onto a phone - make sure it installs and do a very basic test (I've already done my full code tests before the formal build).  Then I have to go into each 'store' and upload them.  It's easy enough when there are no screenshot changes - but it still takes about 5 minutes per item per store.

I published version 2.23 into all 3 stores, and then went out for the evening.   Once the update went live (takes about 2 hours on Google Play), my inbox started filling up - and fast.  With over 100K active users, you can imagine how quickly.   The free version on Google Play was completely broken - nothing worked.  It force closed immediately.  Yikes!  How did I let that happen?

Turns out, my manual export/build didn't include all of my layout and style XML files.  The code wasn't bad, it was just a bad build (argh - why the android export claimed success I don't know).  And it only affected the free version on google play (I had tested/verified the paid version).

Lessons Learned
  1. Test install and sniff every single build output.  Just validating 1 of the six simply is not good enough.
  2. Move over to an automated build.  Not sure that would have helped here, but it will at least speed things up, making me less likely to mess up.
  3. Admit your mistake and get a fix published ASAP.  Fortunately I was able to get an update out there within a few hours.

How this affects the Brand and the apps reputation


Needless to say, an apps reputation is what makes or breaks it.  There are hundreds of battery monitors out there.  There are a few that even perform very similar function to GSam.    Reputation is based on word of mouth and forum postings - and a huge update failure like this doesn't help!  

I'm posting this the day after - so I don't have much data yet, but here are some interesting stats:
  • App Rating:  4.653 before the update to 4.633 afterwards.   That may not seem like a huge drop, but it is.  Went from 37 1 star ratings to 62 in just a few hours.  That's going to leave a mark!
  • Active Installs:  This usually increases around 500 a day, and instead dropped 472.  This is the number of installs - number of uninstalls.   Hopefully that trend doesn't continue!
  • Forum Postings:  A quick google shows a few forum postings warning folks to stay clear of the update (and rightly so).  Those things stick around - so 2 months from now folks may stumble across them and think there is still a problem.
  • Paid App Installs:  So far, there hasn't been any affect to the number of sales.  Most of the sales come from folks who have used the free version, and like it.  Hard to convert folks over from free to paid when the free version doesn't work!   Hopefully this continues (the paid version didn't break after all), however I'm not holding my breath.
I am heartened however by the number of folks who have written in thanking me for getting a fix out so quickly.  There are only so many 'Epic Fail' emails you can read - even though they are deserved :)

Samsung GSII Issues

The GSII makes up about 9% of my install base.  I had 3 users write in saying that the force closes were effectively putting their phones into a constant reboot cycle.  With just one user, I would say it was a pure coincidence, but with 3 folks writing in, something strange is going on!   First off:
Samsung - how in the world do you allow a user-space app without much in the way of special permissions crash your phone?   This completely breaks the whole concept of app isolation that Android provides.   I can understand having a bug that allows a malicious app cause harm, but trust me - there is nothing malicious in this app!   Googling around shows me lots of incidences of this happening...
As of this writing, here are where things stand:
  1. One user was able to get in and uninstall the app before the phone rebooted again (took him many many tries).  After that, the phone went back to normal.
  2. One user tried an ODIN flash maintaining his data.  He then was able to finally get in like the person above and uninstall the app.  Unfortunately, he is still seeing a boot-loop.   Let's hope it can be resolved without a factory reset.
  3. One user ended up factory resetting.  When all else fails - but yikes.