Mobile apps: Hope for the best, prepare for the worst
One of the primary benefits of a comprehensive solution such as MobileCaddy – which doesn’t just focus on the development of its apps up until the deployment, but also has an equal focus on post-deployment support – is that a built-in monitoring system is working around the clock to identify issues or problems which may affect anyone using our apps. The point of this? So we can either prevent these issues, or fix them as quickly as possible, of course!
We were recently alerted that one of our clients, with an app deployed throughout a large team of field sales workers, had two users experiencing a problem with the synchronisation of their records to the Salesforce platform. The users in question noticed that certain records were repeatedly getting stuck in their outboxes when all other data was being synced as expected. Within the MobileCaddy system, Mobile Logs and Connection Sessions are kept stored to allow the administrators to have visibility into these kind of issues, and to provide our technical team with the best chance of resolving them.
“When dealing with enterprise mobile apps, always hope for the best and prepare for the worst”Click to tweet
This particular case was passed on to our CTO, Paul Tarpey, and our Lead Product Engineer, Frank Hart, who were able to attend to the client on-site, acting quickly before the data was compromised or any real impact on the business could occur. Paul and Frank were aware that two users had data stuck on their devices, so of course the first concern was to extract that data to allow the workers to continue doing their jobs. Then they would need to recover any Mobile Logs which would help fix the issue, and restore them back to working condition.
To guide this, we have an internal recovery process here at MobileCaddy (which, thankfully, rarely has to be used!), designed to resolve problems of this nature as quickly and as pain-free as possible.
Step 1: Interview the users to gain context and understand the records
It’s important to remember that, for all of us working within this highly volatile mobile space, the apps are simply tools to help people do their work better and faster. The most important thing about technology is the people using it, so starting by talking to the users can often provide a great deal of useful insight.
Understanding what data they’re expecting to see following a recovery is very important to ensure you know if you’ve been successful, as is understanding exactly what they were doing on their device when the issue arose. Additionally, it’s worth asking if they’ve recently upgraded their OS, or performed any similar actions which may have affected the app or its connection to the platform.
Step 2: Collect metadata to help diagnose the issue
It’s also important to collect any useful metadata about the device and the apps to help diagnose the issue. For example, once all the available information has been collected about the affected technology, it could become clear that the issue in question is only occuring on iPhones running a particular version of iOS, for example, making the fix a quicker and easier process.
Step 3: Extract the data (starting with the least invasive method)
It’s essential to be as careful as possible in the actual recovery process to ensure no critical data is lost. If there’s an easy way to access the non-syncing data, such as viewing the order history stored in the app, then the team will just screenshot that and extract it via email.
Beyond that, the recovery process will tend to access an alternate part of the app the users won’t ever see, which can be launched in emergencies. Again, the less invasive steps are taken first in this mode, but it’s vital that the data is recovered, so there are a number of other possible methods to try out.
In this case, Frank was able to eventually sync all the data with what is known as a ‘forced sync’ within the app, because the users were missing a type of record which was required for the standard sync process to be completed. While the forced sync was taking place, Paul monitored the platform, and verified with the users that the data was all valid and as they expected. The records were verified and the apps were successfully restored to a working state, allowing the workers to return to their jobs with minimal disruption after a very timely, effective recovery.
Treat software as a constant learning process
Frank was then able to de-brief the wider MobileCaddy team so that the issue can be fully understood, and any opportunities for the recovery process to be improved upon can be noted and taken accordingly. This particular case only took an hour to solve, and the client was very satisfied with the problem-solving abilities of the team.
So what had gone wrong this time? Well, it appeared that a missing record was disrupting the users’ sync process within the Connection Session. Normally, these Connection Sessions act as a means to help keep the devices and the platform synchronised at all times, so this was a strange case, which is why the forced sync needed to be used instead.
Our primary focus at MobileCaddy has always been on the protection of customer data. So alongside our tried and trusted monitoring engine, which records all mobile device/platform interactions, we’ve also built MobileCaddy Recovery into our seed, shell, and custom apps. This means that even if a catastrophic failure were to prevent a user’s app from functioning correctly – like a hardware issue or an OS upgrade – it won’t mean that local data is stuck on the device. MobileCaddy Recovery allows your administrator to access the data on the device, and recover it, which just adds to the confidence we pride ourselves on instilling in all our customers and partners – Paul Tarpey, CTO, MobileCaddy
It’s important to remember that when working with software as complex as an offline-first mobile app, there will always be errors, bugs, and issues which arise, especially with such large amounts of data in use. This is inevitable, but what’s crucial is that those responsible have taken the appropriate measures to catch them quickly, fix them effectively, and then do whatever it takes to ensure they don’t happen again.
This is where trust and confidence in a solution come into play, and it’s an absolute priority that all MobileCaddy customers and partners are aware that this is an inherent part of our product, and our service.
Anyone using alternative solutions for running mobile apps on Salesforce, be sure to approach any similar issues cautiously and methodically to protect your data, leaving the most invasive and potentially damaging recovery methods until they’re absolutely necessary.