Gregor's Ramblings

Interface User

August 5, 2005

Gregor HohpeHi, I am Gregor Hohpe, co-author of the book Enterprise Integration Patterns. I like to work on and write about asynchronous messaging systems, service-oriented architectures, and all sorts of enterprise computing and architecture topics. I am also an Enterprise Strategist at AWS.
ALL RAMBLINGS  Architecture (12)  Cloud (10)  Conversations (8)  Design (26)  Events (27)  Gregor (4)  Integration (19)  Messaging (12)  Modeling (5)  Patterns (8)  Visualization (3)  WebServices (5)  Writing (12) 

My blog posts related to IT strategy, enterprise architecture, digital transformation, and cloud have moved to a new home:

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.

What Makes an Interface Usable?

A number of usability considerations match good common design guidelines for interfaces:

Other design aspects are more subtle and more directly related to usability:

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.


Follow:       Subscribe  SUBSCRIBE TO FEED


Gregor is an Enterprise Strategist with Amazon Web Services (AWS). He is a frequent speaker on asynchronous messaging, IT strategy, and cloud. He (co-)authored several books on architecture and architects.