|Home • Patterns • Ramblings • Articles • Talks • Download • Links • Books • Contact|
August 5, 2005
|DDD - Diagram Driven Design|
|What Does It Mean to Use Messaging?|
|A Chapter a Day...|
|Clouds and Integration Patterns at JavaOne|
|My First Google Wave Robot|
|Into the Clouds on New Acid|
|Design Patterns: More than meets the eye|
|Reflecting on Enterprise Integration Patterns|
|Google Gears Live From Japan|
|Double-Dipping: OOPSLA and Colorado Software Summit|
|Enterprise Mashup Summit|
|Facebook Developer Garage|
|Mashups Tools Market|
|Mashups == EAI 2.0?|
We often consider user interface design to be related to graphical or text-based interfaces where users enter data, select from menu items and drop-down lists, or click hyperlinks. There are many good books on user interface design, both in terms of the aesthetic aspects as well the process of usability studies and task analysis.
One user group that is all too often forgotten from the usability effort, however, are other programmers. Programmers are clearly users of code: they code against your classes or interfaces or might access your Web services remotely. And all too often they struggle with the same issues end user do: which function to execute first, confusion over unclear error messages, uncertainty over the meaning of a specific field, mismatches between the users mental model and the (user) interface model just to name a few.
Just as I was thinking of rambling on this topic of programming interface usability I discovered Ken Arnold's excellent article Programmer's are people, Too in ACM Queue Magazine (unfortunately, the full version requires ACM on-line library access). Alas, it turns out that his interest in this topic is by no means recent -- I just never happened to stumble on his work. He actually shared a number of the same thoughts in an Interview on Artima quite a while ago. So I won't plagiarize his work here but just give some of the highlights and add my personal views on the topic.
Why is this topic worth highlighting on a blog about enterprise integration? Programming interface usability issues are often minor as long as the "programmer user" is on the same team (or even the same person) as the creator of the code and the number of potential users is small. However, if you are developing a code library or a published service, your users might be far away or might want to access functions even after the original developer might have left the company. With the increasing popularity of Web services a lot more programming interfaces of sorts are being exposed to an ever-increasing number of developers. This naturally increases the concerns of usability.
A number of usability considerations match good common design guidelines for interfaces:
OpStart, and so on. If you want to make your interface users happy, choose one style and use it consistently.
Other design aspects are more subtle and more directly related to usability:
ints then it is hard to guess what should happen in what order.
There is a lot to be said about the usability of programming interfaces. For an entertaining and enlightening insight into the world of usability I highly recommend Don Norman's Design of Everyday Things. And thanks again to Ken Arnold for inspiring me to finally write this up.
MORE RAMBLINGS SUBSCRIBE TO GREGOR'S RAMBLINGS
Gregor is a software architect with Google. He is a frequent speaker on asynchronous messaging and service-oriented architectures and co-authored Enterprise Integration Patterns (Addison-Wesley). His mission is to make integration and distributed system development easier by harvesting common patterns and best practices from many different technologies.
|© 2010 • All rights reserved.|