Over the past couple of years I have nibbled about enterprise mobility issues on this blog. Over same time I have talked to multiple enterprises about adopting mobile solutions. These experiences allowed me to compile many questions which I believe have easy answers. However, many require the enterprise expand its limits to develop line of business solutions.
I am not talking about bring your own device or mobile device management I am talking about how enterprise line of business client applications are architected. After talking and interacting with various IT Descision makers, architects and developers a pretty unanimous issue is client development and application management.
Enterprises already possess a back-end infrastructure such as data stores, queues, work flow etc. Many already have a solid API foundation for client applications to interact with their existing back-ends. Most enterprises are examining cloud infrastructures, but cloud or no cloud the back of the house infrastructure has very little impact on a mobile facing enterprise. The cloud is where the engine behind the API is located. A securely accessible API is the important piece. The back-end exists no matter what sort of client experience you support. The API gives you the flexibility to create the best client experience you can with the lowest cost of ownership.
That client is where most enterprises are struggling when it comes to mobility because users expect a rich, mobile, touch-first experiences. If you have been to one of my SPA or modern web architecture presentations you might remember the hour glass diagram. This diagram illustrates a rich client, heavy back-end and a very thin API and web serving layer in the middle.
Paraphrasing the common request I hear over and over, "we have the backend but are struggling to build mobile clients". What they are really trying to say is we realize the way we build client applications the past 2 decades will not work going forward. These client applications are either a classic web site or WinForm application model designed for mouse and keyboard inputs and fixed screen sizes. Not only are classic battleship gray applications loosing favor the mass adoption of touch enabled devices forces everyone to design user interfaces differently.
Touch changes everything, you cannot ignore the current trend. Ordering a computer without touch is becoming harder and harder. Laptops and tablets are converging. A majority of the US owns at least one touch capable device today. Companies designing client software today and ignore designing for touch are choosing to either redesign their application next year or simply get beat by their competition. I think this issue transcends the enterprise to consumer application design. If you survey mobile (and I include tablets and desktops in this category) applications most still do not incorporate good mobile, touch first principles. We still try to implement classical design principles made with a mouse first, desktop approach. Interfaces a cluttered with all sorts of menus, buttons and accouterments.
Touch implies mobile, which many still consider to be a SmartPhone. The reality is mobile is a poor description of today's client machine state. An enterprise might be able to constrain its employees to use company issued devices today, but those days are seriously numbered. More and more employees are using their personal machines to access line of business applications. If they can't they want the ability to work from where they are comfortable. Obvious challenges face IT administrators struggling to enforce security but it also creates a new burden on development teams. Client experiences must incorporate responsive design principles to succeed with higher adoption rates and lower cost of ownership. Responsive design enables developers to create a client experience that reaches every possible client experience for a much lower cost.
HTML5 is the proper platform for enterprises and consumer applications as the most cost effectively way to reach every device, platform and usage context. The web is the only way to reach everyone with a single code base, reducing development and administrative overhead. Native solutions are expensive and do not scale across devices. Look at Netflix's distribution overhead as an example. I enjoy Netflix on my Surface, iPad, XBox, Android tablets, iPhone and Windows Phone. Every single one has a different client experience. Each platform has a dedicated native application. They all update at a different pace. I still cannot select individual profiles on Android, a feature available on other platforms for so long I forgot what life was like before they enabled the feature. They have a good web experience, in fact in Internet Explorer the web client utilizes DRM and the HTML5 Video element. By having different client applications on all these different platforms their client development costs are much higher than an application focused on rich HTML5 experience, scalable across all platforms.
Apply the cost associated with your line of business application multiplying by the number of platforms and form factors you wish to support to get an accurate cost of ownership. Can you justify that sort of expense? Modern web application development is more expensive than classic, but not by much. Architectures, techniques and tooling are starting to catch up. Soon parity will happen between classic and modern. In my opinion parity has already happened, but I pressed the approach earlier than most.
Modern user interface design should focus more on the data at hand with just enough navigational features to help the user in that view. The data itself should be interactive. Typography, not images and other accouterments should be emphasized. Modern web development is a radical shift, it's cleaner and forces you to rethink the way interface design. For developers like me it is a godsend because modern, touch first design reduces the need to be a designer. However, our need to understand user experience is enhanced. Once you step into this methodology you will soon see why this is the better, more natural approach.
Secure data access and communications are extremely important to enterprise mobility. Those problems must be met, but the client experience cannot be overlooked. This means creating rich, decoupled client and back-end experiences connected by a solid API. HTML5 is the natural platform to build rich client experiences, especially in the enterprise, because it reaches all platforms right now without app store friction. Responsive design enables the enterprise to create applications that not only reach all devices, but enable an application with a much longer life-span.