Application programming interfaces (APIs) are the interfaces to existing code structures, such as widgets, frameworks, or toolkits. Therefore, they very much do have an impact on the quality of the resulting system. So ensuring that developers can make the most out of them is an important challenge. However standard usability evaluation methods as known from HCI have limitations in grasping the interaction between developer and API -the GUI, which makes this interaction obvious, is missing. In this paper we present a longitudinal approach using concept maps and a question diary to make this interaction visible and study the usability of an API over time.
KeywordsAPI usability, longitudinal evaluation, concept maps.
ACM Classification Keywords
H5.2. [Information Interfaces and Presentation]: UserInterfaces.
General TermsExperimentation, Human Factors.
IntroductionDeveloping a software system nowadays hardly means programming everything from scratch. Instead, developers can often rely on existing widgets, Copyright is held by the author/owner(s). harald.reiterer@uni-konstanz.de frameworks, libraries, or software development toolkits that provide existing code structure for reuse. To access these, application programming interfaces are provided (APIs) and while there may be many different kinds of APIs they all serve the same purpose, as Daughtry et al. [4] described it: "they each provide a programmatic user-interface to a module of code". As with any kind of interface, some of them are more usable than others and so in recent years, the study of the usability of APIs has been emphasized by more and more researchers [e.g. 4,5]. We can identify two main goals in such studies. One is to analyze the usage of APIs on a more general level in order to derive design principles for the creation of new APIs or the modification of existing ones. The second is to evaluate the usability of one specific API, preferably during its development process as part of a user-centered iterative lifecycle. In this paper we will primarily focus on the latter part by presenting a longitudinal evaluation method that can be used to assess the barriers developers come across when trying to use an API as well as their evolution over time.
Challenges for the Evaluation of an APIEvaluating an API is quite different from standard usability evaluation. The most important aspect is the missing GUI, so using and interacting with an API is much more subtle than using a standard software application and therefore more difficult to observe and analyze. Accordingly, it is not straight forward to define wrong doings or errors during the observation of users since there are many ways to reach a goal. From a methodological point of view, the most common approaches are lab based usability tests in combination with thinking aloud. So for example Klemmer et al. [10] presented such a usability study with seven participants using the Papier-Mâché Toolkit for developing tangible user interfaces. Participants were first introduced to the toolkit and th...