Usability and SOA
Many pundits have compared the adoption of SOA to the adoption of object-oriented programming or other development technologies. One of the things that I don’t like about this is that these comparison are rooted in the technology side of things. While I enjoy new technology as much as the next engineer, I tend not to get excited over technology for technology’s sake.
My friends and colleagues know that I have a background in human-computer interaction, usability, and user interface design. The application of technology to the problems facing the end users has always interested me. It is precisely this interest that makes SOA so appealing to me. If I had to compare adoption of SOA to something, I’d compare it to an adoption of user-centered design and usability techniques based upon the work of Jakob Nielsen, Larry Constantine, and others. I was originally introduced to these concepts in 1994, and it’s somewhat disappointing that it never achieved the hype that SOA currently has.
As I see it, in the application focused world that we’re migrating from, a key differentiator is the ability of the user interface of those applications to meet the needs of the end user in a manner that was intuitive. This means that the context of the application needed to match the context of the business process being executed. Hmm… that sounds vaguely familiar. With SOA, we’re now extending that concept to the business tier. The truly successful service providers will differentiate themselves by providing business services that meet the needs of the service consumers. While usability techniques aren’t needed to do this, the concepts embodied in user-centered design will. The key to successful user interface design is the involvement of the user. Likewise, the key to successful service interface design will be the involvement of the service consumer.
Just as I felt that usability and user-centered design created an opportunity for companies to leap frog their competitors, I think SOA creates that same opportunity. They both have the common thread of trying to make our technology better match the needs of the end users- the business. The better understanding of the business, and the better we’re able to incorporate that knowledge into the design process, the more successful the SOA adoption will be.