High usability is becoming increasingly important for a product to succeed. People want technology that is easy to learn and use: just a lot of functionalities are no more sufficient. Because the usability concepts are based on the human psychology, they can be applied to the design of all interfaces between humans and machines. In the recent years, the software engineering field has successfully adopted these concepts. One man who has highly contributed to the promotion of software usability is Jef Raskin. He has acknowledged the importance of usable software since a long time and has applied the usability concepts to design the first commercially successful computer to use a graphical user interface (GUI). Since then, usability research results have provided many hints to help software developers designing better GUI.
But the usability concepts have not to be limited to GUI design. The current trend on component development, addressing the lack of reuse in the software industry, has changed the day-to-day tasks of software developers. Now, developers must integrate third-party components in their applications and consequently, have to deal with several component interfaces (also named application programming interface or simply API). Clearly, an API can be considered as a human-machine interface and thus usability principles can be applied to ease the task of software developers. But curiously very few API design guidelines have been developed yet.
This article aims at deriving an API design checklist from the general usability principles. At Codeproject particularly, that checklist can be used to greatly improve the quality of the libraries and components available to the community. The article is divided in three sections. The first section presents a definition of usability and its fundamental principles. The second section applies the usability principles to the context of API design and gives concrete guidelines. Finally, the last section synthesizes the guidelines in a more checklist-oriented way, allowing it to be used in inspections, walkthroughs and reviews.