The million dollar question
written by Miro Pomsar on January 10, 2018
You cannot ignore mobility. But can you afford custom development?
Let’s just take a quick look at key aspects to keep in mind if you set out to develop a mobile app for your business from scratch.
Data storage on iOS or Android is protected – but only by the user’s PIN. The standard application databases are NOT protected, and there are no secure storage APIs. However, user login and application configuration need to be protected. Again, this is not handled in a secure way on any mobile platform’s APIs.
Since user session (automatic logout after 10 minutes) and app-password protection APIs are missing or on a very low level, it all has to be developed from the ground up. This requires complex engineering with a high risk attached to even a smallest oversight.
Enterprises usually have very strict network policies. Multifactor authentication, certificate pinning, client certificates, active directory, domain-trusts – these are just a few of the ways your enterprise network resources are protected. There are no standardized high-level APIs a developer can use and support has to be developed for each platform separately.
While mobile device management solutions (MDM) might help with managing user devices, you will need app-level management. App usage monitoring is extremely important and the standard tools allow for anonymous error reporting only. Instead you will want error and usage logs, remote lock-out, remote wipe and powerful device security policy management. And let’s not forget about user activity and position monitoring.
There are a lot of features a halfway competent application has to support. From camera-integration, barcode scanning to chart and PDF report generation. While there are many desktop and server side components ready to tackle this job, there are very few in the mobile world. And even if you find a component for platform X, platform Y or Y.2 will not be supported.
The mobile world changes dramatically. Each mobile platform has a major OS update every year. Major release might bring a new font – completely breaking the app rendering because of it being slightly taller. Just recently Apple’s iOS update brought a completely new storage layer (filesystem). The Android platform is especially known for fragmentation with tens of devices running tens of OS versions.
Regardless of your platform choice, you are looking at supporting several OS version and hardware combinations. And always keeping updated on the latest beta versions. So that you can catch the inevitable upgrade bug, before users update their devices rendering your app unusable for days or weeks.
Rebuilding an app and pushing updates through app-stores is a time-consuming process. Depending on factors that are not in your hands, it might take a few hours to a few days to get a small fix or update to your users. Going back to your developers and going through the release process will slow down user acceptance and hinder the continuous process improvement. What if you need a slightly different set of features per department or user role? Are you ready to handle four or more apps going through the release cycle?
So the real question is…
Are you ready to build and manage an IT team that is able to jump through all of these hoops? Or are you willing to outsource your app to an external provider, and risk any changes taking weeks?
Forrester Vice President and Principal Analyst John Rymer notes: “If we rely solely on coding, we’re going to fail. It’s too slow. It’s too inflexible.” And a recent study by Standish Group showed that a whopping 94% of large IT projects either fail, over-shoot the budget and schedule, or deliver below expectations due to various factors.
We’re currently preparing a new rapid mobile app development (RMAD) solution bulit on the proven Resco technology – because we believe that building on a strong foundation is the right answer. And that any other answer is literally a million-dollar bet with very bad odds.