The simple aims that guide MobileCaddy

Justin Halfpenny
Only The Paranoid Apps Survive
4 min readJul 19, 2016

--

When building a product with such breadth and depth as MobileCaddy it is important to keep focused. To do that we have a few rules and simple phrases that help us guide us.

From the early days, pre-MobileCaddy, three guiding aims very quickly bubbled to the surface — this was when I was in the capacity of not just designing and deploying apps, but also facing issues post deployment. It is what focused our minds and became entrenched in everything we did.

No1 — Never lose any data

No2 — Never stop the mobile user from working

No3 — Record everything

To understand why we should even have to be worried about these is to understand why mobile is so different. I often use the diagram below to explain this. Not only is mobile such a volatile environment but to deal with the transient data connectivity requires and offline first approach which itself throws up a whole load of new issues to be dealt with.

I have written before about how volatile and unforgiving the mobile environment is. The speed of change, not just across technology, is a challenge for us all. But apps running on mobile devices seem to be singled out for special attention.

  1. Failure of connection (mid sync!)
  2. Changing and versioning mobile OSs (with no control and often no notice)
  3. OSs that can shut down our apps without so much as a notification
  4. Platforms that go down
  5. Users that work in such a different way — stopping half way through processes to read a text or whatever
  6. Platform configurations that alter (when of course we are offline!)
  7. Etc etc…

To tackle these issues requires a concerted effort with a single unifying architecture that is pulled together to build an app consistently.

This is where our simple aims come into play.

Never Lose any data.

We are always looking for failure. And then we ask ourselves if the proverbial hit the fan can we recover the data. Even if this means pulling out of JSON. Of course we build tools around making this much less tedious but if all else fails at least we have the data.

Why? Because data is valuable. Because data is often time sensitive. In a mobile world is often collected in places that either you cannot get back to or that would cost a tidy sum to get back to. And even if it is not that critical — it is downright embarrassing.

Never stop the mobile user from working.

No matter the state of the connection. No matter if the user is moving from cell tower to cell tower, through a tunnel or underground. No matter the state of the platform. The app should continue to work. The user should be unaware or at least not be interrupted. And when it comes to versioning up — build the process in such a way as it does not interrupt the flow (Windows upgrades anyone??).

Record everything.

When something does (and it will) go wrong the problem is most likely passed from app code to sync to platform or vice versa and through untold potential paths. To understand the issue we need context. We need to be able to replay what exactly went wrong. And then we can build in defences or change our design tools or whatever is needed. But without recording, whether it be logs or sessions or data dumps, the problem is likely to never be addressed as it will never be able to be able to be reproduced.

It is going to happen.

Only the paranoid apps survive.

You can see the above saying we have pulls these three together. But these aims have been hard won. And we are still learning and adding all the time. But as the whole of MobileCaddy was designed to allow for this, because we are always thinking about these three aims, we do have an easier time both learning and solving.

If organisations are going to extend the Salesforce platform to mobile users we need to hit a performance level that is akin to the platform itself — possibly even better. Get this all right and we can spend more time on app development, have more confidence to push ever more complex processes to the edge of the network and really reap the benefits of digital transformation.

If you enjoyed this read, please share the love by recommending.

I’m the CEO and cofounder of MobileCaddy. Always willing to chew the fat on DevOps, Mobile, SaaS, Salesforce — email justin@mobilecaddy.net

--

--