"He who rides a tiger can never get off or the tiger will devour him."

Software developers know the truth of this Chinese proverb. We ourselves have created an environment that forces us to cope with ever-increasing complexity. Twenty-five years as a software developer, manager and architect has taught me that every day has something to teach me. Here's what I'm learning now in the hope that it helps someone somewhere stay in the saddle and off the menu.

Friday, February 18, 2011

Weaponizing Mobile Web Apps

At the outbreak of World War I, airplanes were a novelty. By its close, the military uses of aircraft had progressed to the essence of their modern form. In just four years, a chain of innovations opened a new strategic front of warfare which was to be decisive in the next world war and in many conflicts since.

For combat pilots on both sides, the Great War was a dangerous time to be behind the times. At the start of the war, Ronald Garrous was already a pioneer in the field of aviation, having been the first pilot to fly across the Mediterranean Sea. After joining the French army, Garrous helped to develop one of the first mechanisms to allow machine guns to fire through a propeller. This innovation transformed the role of warplanes from reconnaissance to offence. He achieved another first when he used this system to down an enemy aircraft. Shortly thereafter, he was forced down behind German lines and taken prisoner. After almost three years and only months before the end of the war, he escaped and rejoined the air service. In the meantime, fighter aircraft and the doctrines of air combat had changed dramatically. A little more than a month after his return to duty, Garros was shot down and killed.

Not all of us in the field of Information Technology are familiar with the tragedy of Roland Garros, but we have all seen the same story unfold many times. A company pioneers a technology, exploits this leadership to dominate its market and then, sometimes inexplicably, sits out on subsequent innovations that are exploited by competitors. The resulting crashes are only metaphorical, but are no less final for all of that.

The same effect can be seen on a larger scale on those occasions when a disruptive innovation affects the entire IT ecosystem. Those of us who have been around a few years have seen this at least twice -- first in the ascent of personal computers and later in the rise of the Internet. Both of these movements profoundly changed the way IT develops and delivers applications. Yet, both had conscientious objectors among IT leadership, staff and vendors. In many organizations, these forces held innovation captive until the tactical situation was impossible to ignore and desperate manoeuvre was the only option. Some escaped, but others were blown out of the skies.

The rise of mobile devices, tablets in particular, is shaping up to present another such time of opportunity and challenge. As before, detractors focus on the limits of the disruptive technology and miss its real impact -- the ways in which it changes the expectations of users. Admittedly, PCs were slow, expensive, insecure and difficult to manage, but they allowed business users to produce and analyze data for themselves. Granted, the Internet was slow, expensive, insecure and difficult to manage, but it has allowed users to present and access information within communities of interest that span the globe. Mobile devices are likewise slow, expensive, insecure and difficult to manage, but they allow users to produce, present and consume information wherever they are, whenever they care to. Moreover, multi-touch tablets lead users to expect that they can do this from whatever device they're looking at with high standards of usability.

At some point along the growth curve of a disruptive technology, its inevitability becomes apparent. Resistance gives way to an urgent sense of necessity -- adopt or perish. This happened with PCs and the Internet, just as it did with military aircraft. It is happening today with mobile technology. At such times, there is both opportunity and peril to the pioneers. Having benefitted from the advantages of a new technology to score easy victories, early adopters often overcommit to its initial implementation and become prey themselves as others adopt advanced techniques and processes.

Over the last few years, many IT organizations have joined the rush to build mobile applications. As with previous rushes, these organizations have generally chosen the most readily-available implementation of the new technology - in this case, native mobile applications. However, the mobile computing revolution has now entered its next phase, in which several major (and mutually incompatible) platforms have risen to challenge the early leaders. Technologists spend a great deal of energy arguing about which of these platorms will dominate, but this is missing the point. Users expect that applications will be available whereever they are from whatever device they're using. That's an expensive expectation to satisfy with a native application for each platform that can only be updated through a third-party application store.

Fortunately, the need to adapt to this multi-platform environment has revitalized innovation in web application development technologies. HTML5, CSS3 and JavaScript provide a capable base that mobile web browsers such as those based on WebKit extend to provide access to native platform features such as multi-touch input and spatial awareness. Because mobile devices are aggressively upgraded, legacy brower support is largely a non-issue. Popular JavaScript libraries such as jQuery have been enhanced (through extensions such as jQuery Mobile) to support these capabilities across mobile browsers using progressive enhancement. Most significantly, encapsulation of these libraries in web application development frameworks such as Java Server Faces 2.0, Grails and .NET has made these advances accessible to application developers who are not necessarily specialists in low-level web technologies.

Just as development of a reliable interrupter gear for forward-firing machine guns enabled the mass weaponization of airplanes, integrated support for rich, cross-platform mobile web applications in mainstream development frameworks enables compelling advantages over the hand-crafting of native applications for each mobile platform. Application developers and quality assurance analysts can concentrate on delivering value and quality in the business domain, rather than on the esoterica of UI widgetry or redundant efforts on each platform. Operations staff can deploy updates that are immediately available to users, instead of waiting days or weeks for vetting in an application store. With attention to architecture and design, it is even possible for the same web application to be delivered to the desktop and mobile devices of different form factors - with a user experience that is almost identical to that of a native application on each. These are the same advantages that led to the dominance of web technologies in line-of-business applications over the last decade. Early adopters of mobile technology who stay stuck in native application development may find themselves in the unenviable position of Roland Garros, a first ace with a swarm of upgraded foes on his tail.

No comments:

Post a Comment