Methods towards API Usability: A Structural Analysis of Usability Problem Categories

The usability of Application Programming Interfaces (APIs) is one of the main factors defining the success of a software based framework. Research in the area of human computer interaction (HCI) currently mainly focuses on end-user usability and only little research has been done regarding the usability of APIs. In this paper, we present a methodology on how to use and combine HCI methods with the goal to evaluate the usability of APIs. The methodology consist of three phases - a heuristic evaluation, a developer workshop and interviews. We setup a case-study according to the methodology, in which we are evaluating the usability of a service-oriented framework API. The goal was to explore different HCI methods and compare the applicability of such methods to find usability problems in an API. The case-study combined qualitative and quantitative methods in order to investigate the usability and intuitiveness of the API itself. It allowed us to identify relevant problem areas for usability related issues that could be mapped to specific types of HCI methods. Examples for this are e.g. structural problems, which are identified mainly in inspection methods, while problems regarding errors and exception handling are mainly identified during the hands-on example part of the developer workshops conducted. The resulting problem areas allow us to develop a first classification of API related usability problems that are making the relevancy of usability issues for APIs more explicit and applicable.

[1]  Paul Vixie DNS Complexity , 2007, ACM Queue.

[2]  Jeffrey Stylos,et al.  A case study of API redesign for improved usability , 2008, 2008 IEEE Symposium on Visual Languages and Human-Centric Computing.

[3]  Jeffrey Stylos,et al.  Informing API Design through Usability Studies of API Design Choices: A Research Abstract , 2006, Visual Languages and Human-Centric Computing (VL/HCC'06).

[4]  Michi Henning,et al.  API design matters , 2009, CACM.

[5]  Sae Young Jeong,et al.  Usability challenges for enterprise service-oriented architecture APIs , 2008, 2008 IEEE Symposium on Visual Languages and Human-Centric Computing.

[6]  Brad A. Myers,et al.  Usability evaluation for enterprise SOA APIs , 2008, SDSOA '08.

[7]  C. Bore,et al.  Profiling software API usability for consumer electronics , 2005, 2005 Digest of Technical Papers. International Conference on Consumer Electronics, 2005. ICCE..

[8]  Sae Young Jeong,et al.  Improving Documentation for eSOA APIs through User Studies , 2009, IS-EUD.

[9]  Berner Fachhochschule,et al.  The Abstract Factory Pattern , 2008 .

[10]  Jakob Nielsen,et al.  Heuristic evaluation of user interfaces , 1990, CHI '90.

[11]  Steven Clarke,et al.  What Makes APIs Difficult to Use ? , 2008 .

[12]  Umer Farooq,et al.  API peer reviews: a method for evaluating usability of application programming interfaces , 2010, CSCW '10.

[13]  Robert B. Watson Improving software API usability through text analysis: A case study , 2009, 2009 IEEE International Professional Communication Conference.

[14]  Chanchal Kumar Roy,et al.  Useful, But Usable? Factors Affecting the Usability of APIs , 2011, 2011 18th Working Conference on Reverse Engineering.

[15]  Clay Spinuzzi,et al.  Building More Usable APIs , 1998, IEEE Softw..

[16]  Cleidson R. B. de Souza,et al.  Automatic evaluation of API usability using complexity metrics and visualizations , 2009, 2009 31st International Conference on Software Engineering - Companion Volume.

[17]  Marian Petre,et al.  Usability Analysis of Visual Programming Environments: A 'Cognitive Dimensions' Framework , 1996, J. Vis. Lang. Comput..

[18]  Brian Ellis,et al.  The Factory Pattern in API Design: A Usability Evaluation , 2007, 29th International Conference on Software Engineering (ICSE'07).

[19]  Brad A. Myers,et al.  The implications of method placement on API learnability , 2008, SIGSOFT '08/FSE-16.

[20]  Martin P. Robillard,et al.  What Makes APIs Hard to Learn? Answers from Developers , 2009, IEEE Software.

[21]  Thomas R. G. Green,et al.  Cognitive dimensions of notations , 1990 .

[22]  Christopher Scaffidi,et al.  Why are APIs difficult to learn and use? , 2006, CROS.

[23]  Joshua J. Bloch How to design a good API and why it matters , 2006, OOPSLA '06.

[24]  Gilbert Cockton,et al.  Sale must end: should discount methods be cleared off HCI's shelves? , 2002, INTR.