Last month I wrote about the future, what might be ahead for SOA and beyond, focusing significantly on user interfaces. This month I'm still thinking about user interfaces and the impact they have on the final judge of any SOA project - the end user.
If you've read my editorials over the past few years, you're aware I'm an absolute opponent of the browser as a means of delivering applications. I think it's terrific at what it's made for - delivering content - and has been extended in ways that make it something its original inventors never dreamed of, but at the end of the day, it falls down horribly for delivering applications.
Now content is a big part of Internet usage, so I know the browser isn't going away, and I really don't want it to. What I think needs to happen are for new paradigms to emerge for application distribution.
The main reason people choose a browser for delivering applications is ease of distribution. You don't have to do an install on 10,000 desktops, you don't have to worry about some paranoid IT department's draconian security policies, and you don't have to send out countless updates when you patch a bug in the application. The advantages of zero footprint applications are clear and undisputed. But so are the disadvantages. Whether it's lag time for screen refreshes after each dialog choice, network latency issues, or the inability to work offline effectively, we all know that the browser is the least common denominator approach to application design.
When you think of all the bridges and obstacles SOA has already surmounted in providing vendor-agnostic, machine-agnostic, ubiquitous computing as a service, you have to ask yourself: "Why can't they do the same thing for my user interface?"
Now that's not a trivial question, I admit. And let's be clear - to be successful, we have to handle not just the desktop, but the palmtop, the laptop, the iPod, the GPS, and even the automobile. We can't focus on Windows anymore and assume that's good enough - that's the same thinking that gave birth to SOA in the first place.
We're already seeing novel approaches to this problem in the form of Web 2.0 technologies and mashups. One of the characteristics of this new user experience needs to be flexibility and individualization. Allowing users to work in a fashion that seems the most logical to them will result in higher productivity and application adoption among end users. Being able to pull disparate sources of information together and correlate them will make great strides in improving the quality of work of the average knowledge worker.
We're no longer a work force that's confined to our desks. This is a key learning that needs to be internalized into the IT world. Our users are eclectic - some are very traditional, but others are new users who grew up with technology and who've never owned a land line and consider text messaging a natural means of expression. We have a more mobile and technology-savvy community of users and it's up to us to stop doing business as usual and adapt to the changing times.
To do this we need to focus our attention and energies on how we deliver applications. We need to reform our very definition of what an application is and concentrate on removing the obstacles that stand in the way of the delivery of an application regardless of platform. As I said last month, I don't really care where the application runs - it can be on my laptop, my iPod, my GPS, or some future technology that doesn't exist right now. The point is I want to be able to use it regardless of how I am connected, what I'm doing, and where I am. When we have that down pat, we will definitely have achieved the last mile in SOA - taming the user interface.