Integration technology has been on a journey that has radically improved agility and reduced TCO. It has moved from a manual craft to something more modular, reusable and business focused:
• Hiding complexity behind well defined and open interfaces that encourage reuse and sharing
• Replacing point to point with many to many
• Minimising the custom coding required for any particular solution
• Abstracting away complexity, becoming more model driven and “business technology” focused
• Adding management capabilities to monitor and improve usage
As a result, integration at the data and process levels have been transformed, and the enabling integration technologies have become widely adopted. This explains the popularity of approaches such as BPM.
However, these approaches still leave users stranded with too many applications on their desktops, including major enterprise applications that are complex and difficult to use because they are not dedicated to the task at hand. This is primarily because they do not extend to delivering the simple, intuitive, flexible UI required to make people more efficient and to reduce the cost of building and maintaining applications for people. If I want to create an integrated (composite) application for users in my business that spans several functional domains (such as billing, CRM and order management) then:
• I have to custom code the UI for all the functional domains and how they are to be combined, or i have to take a packaged application like CRM and begin to develop new screens that lock functionality from other domains into its code
• I have to do this each time I need a new solution
• There is no equivalent of a “process model” that lets me involve the business and make changes rapidly, and there’s no reuse or sharing at the UI level
• I’m on my own when it comes to measuring and monitoring usage
In other words integration for people has missed out on the principles above. Applications for users are still crafted individually, rather than being assembled. It’s only been economical to build / buy applications for the largest user groups or to deliver specific functional applications which the user must “swivel” between. Users and processes become inefficient, and as more and more point solutions build up on the desktop, developing and integration solution becomes harder, as functionality is baked into these applications. The success of SAAS applications actually re-inforce the proliferation of applications on the desktop with yet a new generation of applications.
The answer though is simple enough: extend the same principle applied to data and process integration all the way to the user interface and the building of user facing applications:
• Service enable ui : create UI services, well defined and open interfaces that encourage reuse and sharing rather than point to point integration
• Develop business friendly mode to orchestrate the UI services
• Provide management capabilities to monitor and improve usage
This is what enterprise mashups really ought to focus on: addressing the last mile of integration to make people more efficient.
Labels: application development, architecture, business alignment, contact centre, CRM application, customer experience, Lean Software, mashup, SOA, user experience, Web services