In life, a second chance is rare. In the mobile space, it's becoming the norm. The reason for this is the pace of technological evolution. Emerging technologies produce gains in productivity that make existing systems obsolete. As a consequence, the life cycle of systems is decreasing rapidly. In fact, over the last four years my team has completely overhauled our mobility infrastructure, twice.
The first time, four years ago, was due to obsolescence. In 2007, we had over 30 enterprise apps on doomed PalmOS smartphones. At the time, Windows Mobile was the only game in town, but by the time we had ported everything to Windows Mobile and purchased thousands of phones, the manufacturer announced the phone's end-of-life. We had to find a device-independent solution that could grow with our applications.
The second time occurred when we took advantage of the iPhone and iPad revolution. Like other companies, our users were driving device choice, and we were determined to get ahead of the trend. Along the way, we've learned a few lessons about the pace of change in the mobile space and about designing enterprise architecture that can grow with it.
Plan to change
Competition is driving innovation at a furious pace, and the mobile industry is changing too fast to depend on vendor-specific enterprise solutions. It's better to adopt an open architecture that is adaptable and accessible to the greatest number of clients. For example, no one can predict the outcome of the Android vs. iPhone war, but you can recognize that both platforms support open standards like HTML 5. So build your solutions to the common standards that are driving these devices and enjoy the ride.
Get out of the phone business
Company-provisioned phones disappoint everybody. After the focus groups, the compromises, and the bulk purchase, most users hate the one you gave them and buy a second device anyway. Smartphones have a market life of about six to nine months, resulting in higher costs and making support difficult. Better to let the user choose the phone and make sure your applications and infrastructure are compatible.
Decouple your enterprise architecture
We adopted industry best practices where we could, starting with a decoupled architecture. Decoupling means no layer in your architecture is dependent upon another. Each layer should be more focused and should interact with adjacent layers in a standard way. This drives reuse, saves money, and makes the system easier to maintain over time.
In my experience, open architectures based on open standards are a better value than most vendor solutions. They are more stable, more maintainable, and cost less. A good example is middleware. In the past, we synchronized data between back-end and remote databases. The advantage was delta synchronization, which made sense five years ago when bandwidth was expensive and slow. But in the last five years, we have seen a revolution in bandwidth (more for less) that echoes the revolution in storage a decade ago. Unfortunately, synchronization is prone to failure, especially in a disconnected scenario, and requires a heavier client. We dropped synchronization and built RESTful Web services, which allow for a lightweight client. Now all the heavy lifting is done on the server. The REST paradigm exposes the data in a more convenient and predictable way and supports access from systems across the Enterprise.
Optimize data for performance
To maximize data throughput and optimize performance, we created an optimized, de-normalized data layer on top of our data store. Implemented as a set of materialized views, this layer is optimized to work with the Web services design.
Some of the most exciting developments in mobility are around Multi-Platform Enterprise Applications (MEAP) solutions, which can leverage your application development and support user choice in regard to clients. We designed our client software so that users could switch between platforms as they needed to. For example, we allowed users to start some functions on their iPad while doing business with a client, and then finish them later on their laptop.
Apps drive adoption
Business users are buying iPads in droves because the device delivers a superior experience. That includes business applications of all kinds. The advantages of sales force automation are well known, but IT hasn't always delivered on the automation part. iOS apps have raised the bar for business applications. Users now expect business apps to be as responsive and intuitive as the best commercial applications. That's a challenge for some entrenched IT interests, but it also represents a strategic opportunity to increase workplace productivity within the enterprise and gain competitive advantage across industries.