When it comes to traditional enterprise applications, the average release cycle of a web or desktop application can often be 12-18 months (and sometimes even longer), and its lifespan can be well over 15 years. With regards to functionality, these applications are often bloated, to the point of becoming unusable. What’s worse, we actually only use 20% of the total functionality.
With these applications, long planning cycles were needed to ensure all the new features for each and every corner case could be crammed into an already large, archaic and outdated application – not to mention the periodic architectural refactoring that often needs to occur.
With the advent of agile development, some thought it would help to rectify this situation. However in most cases agile has merely served as a catalyst to add to the ever-growing code base at a faster rate. This has led to more features, reduced usability and a code base that is even more complex and difficult to manage.
With enterprise mobile applications, we have a very different dynamic. These apps cannot take a “one size fits all” approach; their evolution is inherently iterative, the lifecycle is dependent on succinct user requirements, and the developers must have a maniacal focus on the end user experience. By their nature, mobile enterprise apps need to be focused on a small feature set targeted around a specific set of needs. You’re in trouble if you’re looking to create the “Microsoft Word” of mobile applications. Such behemoth apps simply won’t be used on mobile devices and any organization that thinks that all they have to do is “port” their enterprise applications to mobile devices are on a sure path to failure.
Your customers/users have a new set of expectations when it comes to mobile apps. Neither the iPhone nor iPad come with a user manual, and people expect to use the apps instantly and without any documentation or training. They also expect to have a pleasing user experience, with an intuitive and dynamic UI. Their expectations for the enterprise apps are driven by their experiences as consumers. They will continue to use their personal mobile devices and expect to access the enterprise data with the same user experience as their consumer apps.
Mobile devices are changing on an almost daily basis, with the addition of a wide range of new capabilities such as Near Field Communication (NFC), GPS, high-resolution cameras, credit card readers, and mobile coupons. These changes force companies to modify their applications to leverage these features. Since mobile applications are activity focused, adapting them is not as daunting of a task as it was for the old beasts of yesteryear. Jerry R. Geisler III, Senior Director in Information Systems Security Operations at Wal-Mart Stores, Inc. agrees, “Mobile apps have a much shorter lifespan than other enterprise applications.” In fact from our own research across hundreds of enterprises, it appears to be a mere 14 months before an enterprise mobile app gets rewritten, and during that time at least 3-4 updates of that app will be produced.
So what does this mean? Enterprises should plan for the future of their mobile applications, but develop them for today. Traditionally the building of enterprise applications would be done in a way that would allow for expansion and modification for the very long-term (i.e., years ahead). This inevitably increased the development time. Yet, in the majority of cases, when the code was modified this future-proofing was actually a hindrance to the changes.
Develop and plan your mobile apps for what is needed today. Sure you should build in modularity to facilitate reuse. But don’t handicap your apps by trying to develop for a future that is completely unknown. We just can’t predict which platforms and architectures will be dominant in the future, so the best approach is to write apps that your users want and need right now. Most likely these apps won’t live more than a year or two. As such, you should make sure your mobile platform not only provides for rapid cross-platform app development, but also that it facilitates a modular approach to enable component reuse for future apps.
“Carpe Diem!” or perhaps “Codex Diem!” (“Code for today!”), because the only things in the future that are certain are death, taxes and a short mobile application lifespan.