Application Programming Interface Documentation: What Do Software Developers Want?

First Published July 26, 2017 Research Article

Authors

1
 
Merseburg University of Applied Sciences, Germany
by this author
, 1
 
Merseburg University of Applied Sciences, Germany
by this author
, 1
 
Merseburg University of Applied Sciences, Germany
by this author
First Published Online: July 26, 2017

The success of an application programming interface (API) crucially depends on how well its documentation meets the information needs of software developers. Previous research suggests that these information needs have not been sufficiently understood. This article presents the results of a series of semistructured interviews and a follow-up questionnaire conducted to explore the learning goals and learning strategies of software developers, the information resources they turn to and the quality criteria they apply to API documentation. Our results show that developers initially try to form a global understanding regarding the overall purpose and main features of an API, but then adopt either a concepts-oriented or a code-oriented learning strategy that API documentation both needs to address. Our results also show that general quality criteria such as completeness and clarity are relevant to API documentation as well. Developing and maintaining API documentation therefore need to involve the expertise of communication professionals.

Alexander, K. P. (2013) The usability of print and online video instructions. Technical Communication Quarterly 22(3): 237259.
Google Scholar | Crossref
Bogner, A., Littig, B., Menz, W. (2009) Interviewing experts (Research Methods Series), London, England: Palgrave Macmillan.
Google Scholar | Crossref
Clarke, S. (2004) Measuring API usability. Dr. Dobb’s Journal 29: S6S9. Retrieved from http://www.drdobbs.com/windows/measuring-api-usability/184405654.
Google Scholar
Clarke, S. (2007). What is an end user software engineer? In Dagstuhl Seminar Proceedings. Schloss Dagstuhl-Leibniz-Zentrum für Informatik. Retrieved from http://drops.dagstuhl.de/opus/volltexte/2007/1080/.
Google Scholar
Dagenais, B., & Robillard, M. P. (2010). Creating and evolving developer documentation: Understanding the decisions of open source contributors. In Proceedings of the 18th ACM SIGSOFT International Symposium on Foundations of Software Engineering (pp. 127–136). New York, NY: ACM.
Google Scholar
Garousi, G., Garousi-Yusifoğlu, V., Ruhe, G., Zhi, J., Moussavi, M., Smith, B. (2015) Usage and usefulness of technical software documentation: An industrial case study. Information and Software Technology 57: 664682.
Google Scholar | Crossref
Guillemette, R. A. (1989) Usability in computer documentation design: Conceptual and methodological considerations. IEEE Transactions on Professional Communication 32(4): 217229.
Google Scholar | Crossref
Hou, D., & Li, L. (2011). Obstacles in using frameworks and APIs: An exploratory study of programmers’ newsgroup discussions. In Proceedings of 2011 IEEE 19th International Conference on Program Comprehension (pp. 91–100). Washington, DC: IEEE.
Google Scholar
Hove, S. E., & Anda, B. (2005). Experiences from conducting semi-structured interviews in empirical software engineering research. In Proceedings of 11th IEEE International Symposium on Software Metrics (pp. 10–23). Washington, DC: IEEE.
Google Scholar
Jeong, S. Y., Xie, Y., Beaton, J., Myers, B. A., Stylos, J., Ehret, R., & Busse, D. K. (2009). Improving documentation for eSOA APIs through user studies. In International Symposium on End User Development (pp. 86–105). Berlin, Germany: Springer.
Google Scholar
Kim, M., Bergman, L., Lau, T., & Notkin, D. (2004). An ethnographic study of copy and paste programming practices in OOPL. In Proceedings of International Symposium on Empirical Software Engineering (pp. 83–92). Washington, DC: IEEE.
Google Scholar
Knowles, M. S. (1975) Self-directed learning: A guide for learners and teachers, New York, NY: Cambridge Book Company.
Google Scholar
Ko, A. J., DeLine, R., & Venolia, G. (2007). Information needs in collocated software development teams. In Proceedings of 29th International Conference on Software Engineering (pp. 344–353). Washington, DC: IEEE.
Google Scholar
Ko, A. J., & Riche, Y. (2011). The role of conceptual knowledge in API usability. In Proceedings of 2011 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC) (pp. 173–176). Washington, DC: IEEE.
Google Scholar
Kuckartz, U. (2014) Qualitative text analysis: A guide to methods, practice and using software, Los Angeles, CA: Sage.
Google Scholar | Crossref
Lethbridge, T. C., Sim, S. E., Singer, J. (2005) Studying software engineers: Data collection techniques for software field studies. Empirical Software Engineering 10(3): 311341.
Google Scholar | Crossref
Lethbridge, T. C., Singer, J., Forward, A. (2003) How software engineers use documentation: The state of the practice. IEEE Software 20(6): 3539.
Google Scholar | Crossref
Lutters, W. G., Seaman, C. B. (2007) Revealing actual documentation usage in software maintenance through war stories. Information and Software Technology 49(6): 576587.
Google Scholar | Crossref
Maalej, W., Robillard, M. P. (2013) Patterns of knowledge in API reference documentation. IEEE Transactions on Software Engineering 39(9): 12641282.
Google Scholar | Crossref
Maalej, W., Tiarks, R., Roehm, T., Koschke, R. (2014) On the comprehension of program comprehension. ACM Transactions on Software Engineering and Methodology (TOSEM) 23(4): 31.
Google Scholar | Crossref
Mayring, P. (2014). Qualitative content analysis: Theoretical foundation, basic procedures and software solution. Retrieved from http://nbn-resolving.de/urn:nbn:de:0168-ssoar-395173.
Google Scholar
Mayring, P. (2015) Qualitative Inhaltsanalyse: Grundlagen und Techniken [Qualitative content analysis: Foundations and procedures], 12th ed. Weinheim, Germany: Beltz.
Google Scholar
McLellan, S. G., Roesler, A. W., Tempest, J. T., Spinuzzi, C. I. (1998) Building more usable APIs. IEEE Software 15(3): 7886.
Google Scholar | Crossref
Mihaly, F. (2011). Writing helpful API documentation [Blog post]. Retrieved from http://theamiableapi.com/2011/11/01/api-design-best-practice-write-helpful-documentation/.
Google Scholar
Myers, B. A., Stylos, J. (2016) Improving API usability. Communications of the ACM 59(6): 6269.
Google Scholar | Crossref
Nykaza, J., Messinger, R., Boehme, F., Norman, C. L., Mace, M., & Gordon, M. (2002). What programmers really want: Results of a needs assessment for SDK documentation. In Proceedings of the 20th Annual International Conference on Computer Documentation (pp. 133–141). New York, NY: ACM.
Google Scholar
Parnin, C. (2013). API documentation–Why it sucks [Blog post]. Retrieved from http://blog.ninlabs.com/2013/03/api-documentation/.
Google Scholar
R Core Team (2016) R: A language and environment for statistical computing, Vienna, Austria: R Foundation for Statistical Computing.
Google Scholar
Redish, J. C. G. (2000) What is information design? Technical Communication 47(2): 163166.
Google Scholar
Redish, J. C. G. (2010) Technical communication and usability: Intertwined strands and mutual influences. IEEE Transactions on Professional Communication 53(3): 191201.
Google Scholar | Crossref
Robillard, M. P. (2009) What makes APIs hard to learn? Answers from developers. IEEE Software 26(6): 2734.
Google Scholar | Crossref
Robillard, M. P., DeLine, R. (2011) A field study of API learning obstacles. Empirical Software Engineering 16(6): 703732.
Google Scholar | Crossref
Schriver, K. A. (1997) Dynamics in document design, New York, NY: John Wiley & Sons, Inc.
Google Scholar
Seaman, C. B. (2002). The information gathering strategies of software maintainers. In Proceedings of International Conference on Software Maintenance (pp. 141–149). Washington, DC: IEEE.
Google Scholar
Shull, F., Lanubile, F., Basili, V. R. (2000) Investigating reading techniques for object-oriented framework learning. IEEE Transactions on Software Engineering 26(11): 11011118.
Google Scholar | Crossref
Sillito, J., & Begel, A. (2013). App-directed learning: An exploratory study. Proceedings of 6th International Workshop on Cooperative and Human Aspects of Software Engineering (pp. 81–84). Washington, DC: IEEE.
Google Scholar
Steinmacher, I., Chaves, A. P., Conte, T. U., & Gerosa, M. A. (2014). Preliminary empirical identification of barriers faced by newcomers to Open Source Software projects. In Brazilian Symposium on Software Engineering (pp. 51–60). Washington, DC: IEEE.
Google Scholar
Stylos, J. (2009). Making APIs more usable with improved API design, documentation and tools (Doctoral dissertation). Carnegie Mellon University. Retrieved from http://www.cs.cmu.edu/∼NatProg/papers/.
Google Scholar
Stylos, J., & Clarke, S. (2007). Usability implications of requiring parameters in objects' constructors. In Proceedings of 29th International Conference on Software Engineering (pp. 529–539). Washington, DC: IEEE.
Google Scholar
Stylos, J., Faulring, A., Yang, Z., & Myers, B. A. (2009). Improving API documentation using API usage information. In Proceedings of IEEE Symposium on Visual Languages and Human-Centric Computing (pp. 119–126). Washington, DC: IEEE.
Google Scholar
Stylos, J., & Myers, B. A. (2006). Mica: A web-search tool for finding API components and examples. In Proceedings of IEEE Symposium on Visual Languages and Human-Centric Computing (pp. 195–202). Washington, DC: IEEE.
Google Scholar
Treude, C., Barzilay, O., & Storey, M. A. (2011, May). How do programmers ask and answer questions on the web? Nier track. In Proceedings of 33rd International Conference on Software Engineering (pp. 804–807). Washington, DC: IEEE.
Google Scholar
Uddin, G., Robillard, M. P. (2015) How API documentation fails. IEEE Software 32(4): 6875.
Google Scholar | Crossref
Watson, R. B. (2015). The effect of visual design and information content on readers’ assessments of API reference topics (Doctoral dissertation). University of Washington. Retrieved from https://digital.lib.washington.edu/researchworks/.
Google Scholar
Zibran, M. (2008) What makes APIs difficult to use? International Journal of Computer Science and Network Security 8(4): 255261.
Google Scholar

Access content

To read the fulltext, please use one of the options below to sign in or purchase access.
  • Access Options

    My Account

    Welcome
    You do not have access to this content.

    Chinese Institutions / 中国用户

    Click the button below for the full-text content

    请点击以下获取该全文

    Institutional Login

    Purchase Content

    24 hours online access to download content

    Added to Cart

    Cart is full

    There is currently no price available for this item in your region.

    Research off-campus without worrying about access issues. Find out about Lean Library here


Purchase

JTW-article-ppv for GBP29.00
JTW-article-ppv for $37.50
Single Issue 24 hour E-access for GBP168.87
Single Issue 24 hour E-access for $202.33