In a perfect world, mobile application development would be like a car assembly line. You have different makes and models, some with better fuel efficiency than others. They look distinctive but more or less do the same thing. Some are luxury vehicles, some are SUV’s, while others are economy class. All are built from different parts all working well together, and all will get you where you’re going.
Alas, it’s not a perfect world, at least when it comes to mobile apps. When a company develops a mobile app they tend to focus on one part rather than all. They focus on the “domain” problem – providing customers with an app that represents their core offerings and answers a particular need. For example, financial apps like those provided by eTrade and Chase bank are there to help users with online trading and transactions. Or, to use an internal example, a company might develop its own app to help its sales team better keep track of client engagements and accounts.
This approach tends to favor a focus on features, user experience, and just getting the app to work so it provides what the user wants. It’s important, and it’s the part of development that receives the most attention. It also calls for significant time, money and resources…so much so that it’s often only later (sometimes too late!) that developers realize they have neglected several key components that will make the app a truly worthwhile investment. We’re talking about infrastructure here, including analytics, security, configuration, and deployment – the engines that keep the app running well.
This is unfortunate because focusing on building a solid core infrastructure is just as important as building a great user experience and solving the domain problem. It’s the infrastructure that ultimately provides a company with the data needed to make sure an app is performing as expected and the understanding of how the app is being used. It’s the infrastructure that will help manage deployments and make future updates seamless. And it’s the infrastructure that will help measure the overall return on investment.
Still, that’s not to say that organizations should be focusing their development resources on app support and infrastructure. Hardly. Internal resources should be focused on solving the domain problem. That’s where their expertise lies, not necessarily in building their own complex analytics, logging or configuration programs. That’s time-consuming and a potential waste of resources; in fact, it’s probably a big reason why the infrastructure development gets deprioritized. Instead, organizations should turn to external resources whose main competency is to provide app infrastructure development, management and support. These resources can save organizations time and money while increasing R&D productivity.
Think of it this way: the person who designs the interior of a car is not necessarily the same one who builds the engine. They’re both done in tandem to create the best possible product – one that meets customers’ needs and expectations yet continues running for a very long time. The same approach should be taken in regards to enterprise mobile applications. Different teams, each with their own expertise, can work simultaneously on both infrastructure and domain challenges to create an app that provides the user with what they need – and runs smoothly while doing so.