Skip to Main Content
Most software projects reuse components exposed through Application Programming Interfaces (APIs), which provide developers with access to implemented functionality. APIs have grown large and diverse, raising the question of how usable they really are. This article reports on a study of the obstacles professional developers at Microsoft faced when learning how to use APIs. The study was grounded in developers' experience, collected through a survey and interviews. The resulting data showed that resources for learning an API were critically important, and shed light on three API learning obstacles: The need discover the design and rationale of the API on a need-to-know basis, the challenge of finding credible usage API examples at the right level of complexity, and the challenge of understanding inexplicable API behavior. The article describes each of these challenges in detail, and discusses associated implications for API users and designers.