Disclaimer: This is going to be a nerdy rant so unless you’re into iOS development and/or server maintenance, feel free to ignore 🙂
Last week I discovered that one of our web services had gone down. It was not a critical incident, but I realized (something I’d known for long but kept ignoring) that now that we work 100% on TJD3, we tend to pay very little attention to the well-being of chapters 1 and 2. So in an effort to monitor the health of our existing apps and services, I set out to automate a couple of things.
First off, I set up an Uptime Robot account and configured a simple keyword monitor that makes 5 min periodic checks to the web service that broke down the other day. If my service breaks down again (or gives a weird response), Uptime Robot will notify us instantly on email and on Slack.
The other web service we have is used to store tokens for iOS push notifications. Whenever someone gets a “TJD would like to send you notifications”-popup and accepts, a token is stored on our server so that we can send that user a push notification later. This is really important to us, because it’s pretty much the only way we can contact existing iOS customers to let them know the next chapter is out.
So to make sure the subscriptions are working properly, I asked veteran SkyGoblin Markus to setup a little cron job to deliver daily subscription stats directly to Slack. Now, if the subscription stats stop or stagnate, we’ll know something’s wrong.
What’s this Slack then? It’s a super nifty tool for team communication and I love it with all my heart.
Then I went on to set up a Crittercism account and integrated their SDK (one line of code) with our iOS apps. Crittercism offers a pretty smart way to automate symbolication for crash reports using post-build events in xCode. Now we can properly monitor and investigate iOS crashes during beta and production. (iTunes Connect already supports some crash reporting but it’s very limited.)
Last, I finally got off my ass and setup a proper bug tracker! Up until now I have collected bug reports for TJD in scattered email conversations, twitter messages, paper notes and excel documents. Mostly, issue tracking has been kept in my own head and lord knows that’s not a safe way to store business critical data. With multiple versions of multiple products on multiple platforms, that simply isn’t sustainable.
After reading up and trying out a couple of trackers I decided to go for Lean Testing, mostly because it is.. well, lean. You create an account, set up a project and invite testers – then anyone can read, create and comment on bug reports for that project.
Some people prefer more enterprise-like solutions like Jira (and I’m sure it’s awesome for larger teams) but that’s way more bulky than what I need. Rule of thumb: if your support & maintenance systems require support & maintenance, you may be wasting time.
On a final note, each of these monitoring services are super easy to setup, a matter of minutes literally. And they’re all free (for my purposes anyhow, costs may vary). What took me a few days was to read up and decide which services to use. Got a better suggestion? Please write a comment and let me know!