Skip to main content
Erschienen in: Empirical Software Engineering 6/2011

01.12.2011

A field study of API learning obstacles

verfasst von: Martin P. Robillard, Robert DeLine

Erschienen in: Empirical Software Engineering | Ausgabe 6/2011

Einloggen

Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.

search-config
loading …

Abstract

Large APIs can be hard to learn, and this can lead to decreased programmer productivity. But what makes APIs hard to learn? We conducted a mixed approach, multi-phased study of the obstacles faced by Microsoft developers learning a wide variety of new APIs. The study involved a combination of surveys and in-person interviews, and collected the opinions and experiences of over 440 professional developers. We found that some of the most severe obstacles faced by developers learning new APIs pertained to the documentation and other learning resources. We report on the obstacles developers face when learning new APIs, with a special focus on obstacles related to API documentation. Our qualitative analysis elicited five important factors to consider when designing API documentation: documentation of intent; code examples; matching APIs with scenarios; penetrability of the API; and format and presentation. We analyzed how these factors can be interpreted to prioritize API documentation development efforts

Sie haben noch keine Lizenz? Dann Informieren Sie sich jetzt über unsere Produkte:

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Anhänge
Nur mit Berechtigung zugänglich
Fußnoten
1
Details about the population of respondents can be found in a separate publication (Robillard 2009).
 
2
To test with sufficiently large partitions, we aggregated the Owning and Major categories, and the Experimental and Hobby respondents.
 
3
After correcting the p-values for the simultaneous testing of multiple hypotheses using Holm’s procedure (Westfall et al. 1999).
 
4
Drawn only from the follow-up survey, since the interview participants were selected from the exploratory survey.
 
5
A notable exception would be examples returned as the result of queries to code search engines.
 
6
Complexity is informally defined as a combination of length of the example and amount of interaction with the API.
 
7
Participants routinely used the terms “sample” and “example” interchangeably. In the quotes, the term “sample” does not necessarily refer to code samples as defined above.
 
8
Developer 14 was relatively new to the profession, but older than average in age.
 
Literatur
Zurück zum Zitat Beaton J, Jeong SY, Xie Y, Stylos J, Myers BA (2008) Usability challenges for enterprise service-oriented architecture APIs. In: Proc. IEEE symp. visual languages and human-centric computing, pp 193–196 Beaton J, Jeong SY, Xie Y, Stylos J, Myers BA (2008) Usability challenges for enterprise service-oriented architecture APIs. In: Proc. IEEE symp. visual languages and human-centric computing, pp 193–196
Zurück zum Zitat Berglund E (2003) Designing electronic reference documentation for software component libraries. J Syst Softw 68(1):65–75MathSciNetCrossRef Berglund E (2003) Designing electronic reference documentation for software component libraries. J Syst Softw 68(1):65–75MathSciNetCrossRef
Zurück zum Zitat Bloch J (2006) How to design a good API and why it matters. In: Companion to the 21st ACM SIGPLAN symposium on object-oriented programming systems, languages, and applications, pp 505–506 Bloch J (2006) How to design a good API and why it matters. In: Companion to the 21st ACM SIGPLAN symposium on object-oriented programming systems, languages, and applications, pp 505–506
Zurück zum Zitat Bore C, Bore S (2005) Profiling software API usability for consumer electronics. In: Digest of int’l conf. on consumer electronics, pp 155–156 Bore C, Bore S (2005) Profiling software API usability for consumer electronics. In: Digest of int’l conf. on consumer electronics, pp 155–156
Zurück zum Zitat Brandt J, Guo PJ, Lewenstein J, Dontcheva M, Klemmer SR (2009) Two studies of opportunistic programming: interleaving web foraging, learning, and writing code. In: Proc. 27th int’l conf. on human factors in computing systems, pp 1589–1598 Brandt J, Guo PJ, Lewenstein J, Dontcheva M, Klemmer SR (2009) Two studies of opportunistic programming: interleaving web foraging, learning, and writing code. In: Proc. 27th int’l conf. on human factors in computing systems, pp 1589–1598
Zurück zum Zitat Clarke S (2004) Measuring API usability. Dr Dobb’s Journal Special Windows/NET Supplement Clarke S (2004) Measuring API usability. Dr Dobb’s Journal Special Windows/NET Supplement
Zurück zum Zitat Corbin J, Strauss A (2007) Basics of qualitative research: techniques and procedures for developing grounded theory. Sage Publications Corbin J, Strauss A (2007) Basics of qualitative research: techniques and procedures for developing grounded theory. Sage Publications
Zurück zum Zitat Creswell JW (2007) Qualitative inquiry and research design: choosing among five approaches. Sage Publications Creswell JW (2007) Qualitative inquiry and research design: choosing among five approaches. Sage Publications
Zurück zum Zitat Cwalina K, Abrams B (2009) Framework design guidelines: conventions, idioms, and patterns for reusable .NET Libraries, 2nd edn. Addison-Wesley Cwalina K, Abrams B (2009) Framework design guidelines: conventions, idioms, and patterns for reusable .NET Libraries, 2nd edn. Addison-Wesley
Zurück zum Zitat Ellis B, Stylos J, Myers B (2007) The factory pattern in API design: a usability evaluation. In: Proc. 29th int’l conf. on software engineering, pp 302–312. doi:10.1109/ICSE.2007.85 Ellis B, Stylos J, Myers B (2007) The factory pattern in API design: a usability evaluation. In: Proc. 29th int’l conf. on software engineering, pp 302–312. doi:10.​1109/​ICSE.​2007.​85
Zurück zum Zitat Feilkas M, Ratiu D (2008) Ensuring well-behaved usage of APIs through syntactic constraints. In: Proc. 16th int’l conf. on program comprehension, pp 248–253 Feilkas M, Ratiu D (2008) Ensuring well-behaved usage of APIs through syntactic constraints. In: Proc. 16th int’l conf. on program comprehension, pp 248–253
Zurück zum Zitat Fowler M (2002) Public versus published interfaces. IEEE Softw 19(2):18–19CrossRef Fowler M (2002) Public versus published interfaces. IEEE Softw 19(2):18–19CrossRef
Zurück zum Zitat Holmes R, Walker RJ, Murphy GC (2006) Approximate structural context matching: an approach to recommend relevant examples. IEEE Trans Softw Eng 32(12):952–970CrossRef Holmes R, Walker RJ, Murphy GC (2006) Approximate structural context matching: an approach to recommend relevant examples. IEEE Trans Softw Eng 32(12):952–970CrossRef
Zurück zum Zitat Hou D (2008) Investigating the effects of framework design knowledge in example-based framework learning. In: Proc. 24th int’l conf. on software maintenance, pp 37–46 Hou D (2008) Investigating the effects of framework design knowledge in example-based framework learning. In: Proc. 24th int’l conf. on software maintenance, pp 37–46
Zurück zum Zitat Hou D, Wong K, Hoover JH (2005) What can programmer questions tell us about frameworks? In: Proc. 13th int’l workshop on program comprehension, pp 87–96 Hou D, Wong K, Hoover JH (2005) What can programmer questions tell us about frameworks? In: Proc. 13th int’l workshop on program comprehension, pp 87–96
Zurück zum Zitat Jeong SY, Xie Y, Beaton J, Myers BA, Stylos J, Ehret R, Karstens J, Efeoglu A, Busse DK (2009) Improving documentation for eSOA APIs through user studies. In: Proc. 2nd int’l symp. on end-user development. LNCS, vol 5435. Springer, pp 86–105 Jeong SY, Xie Y, Beaton J, Myers BA, Stylos J, Ehret R, Karstens J, Efeoglu A, Busse DK (2009) Improving documentation for eSOA APIs through user studies. In: Proc. 2nd int’l symp. on end-user development. LNCS, vol 5435. Springer, pp 86–105
Zurück zum Zitat Knowles MS, Holton III EF, Swanson RA (2005) The adult learner, 6th edn. Butterworth-Heinemann Knowles MS, Holton III EF, Swanson RA (2005) The adult learner, 6th edn. Butterworth-Heinemann
Zurück zum Zitat Ko AJ, Myers BA, Aung HH (2004) Six learning barriers in end-user programming systems. In: Proc. symp. on visual languages and human centric computing, pp 199–206 Ko AJ, Myers BA, Aung HH (2004) Six learning barriers in end-user programming systems. In: Proc. symp. on visual languages and human centric computing, pp 199–206
Zurück zum Zitat Ko AJ, DeLine R, Venolia G (2007) Information needs in collocated software development teams. In: Proc. 29th int’l conf. on software engineering, pp 344–353 Ko AJ, DeLine R, Venolia G (2007) Information needs in collocated software development teams. In: Proc. 29th int’l conf. on software engineering, pp 344–353
Zurück zum Zitat Larman C (2001) Protected variation: the importance of being closed. IEEE Softw 18(3):89–91CrossRef Larman C (2001) Protected variation: the importance of being closed. IEEE Softw 18(3):89–91CrossRef
Zurück zum Zitat Lutters WG, Seaman CB (2007) Revealing actual documentation usage in software maintenance through war stories. Inf Softw Technol 49:576–587CrossRef Lutters WG, Seaman CB (2007) Revealing actual documentation usage in software maintenance through war stories. Inf Softw Technol 49:576–587CrossRef
Zurück zum Zitat McLellan SG, Roesler AW, Tempest JT, Spinuzzi CI (1998) Building more usable APIs. IEEE Softw 15(3):78–86CrossRef McLellan SG, Roesler AW, Tempest JT, Spinuzzi CI (1998) Building more usable APIs. IEEE Softw 15(3):78–86CrossRef
Zurück zum Zitat Nykaza J, Messinger R, Boehme F, Norman CL, Mace M, Gordon M (2002) What programmers really want: results of a needs assessment for SDK documentation. In: Proc. 20th annual ACM SIGDOC int’l conf. on computer documentation, pp 133–141 Nykaza J, Messinger R, Boehme F, Norman CL, Mace M, Gordon M (2002) What programmers really want: results of a needs assessment for SDK documentation. In: Proc. 20th annual ACM SIGDOC int’l conf. on computer documentation, pp 133–141
Zurück zum Zitat Olson M, Hergenhahn B (2008) Introduction to the theories of learning, 8th edn. Prentice Hall Olson M, Hergenhahn B (2008) Introduction to the theories of learning, 8th edn. Prentice Hall
Zurück zum Zitat Parnas DL (1972) On the criteria to be used in decomposing systems into modules. Commun ACM 15(12):1053–1058CrossRef Parnas DL (1972) On the criteria to be used in decomposing systems into modules. Commun ACM 15(12):1053–1058CrossRef
Zurück zum Zitat Robillard MP (2009) What makes APIs hard to learn? The answers of developers. IEEE Softw (November/December):27–34 Robillard MP (2009) What makes APIs hard to learn? The answers of developers. IEEE Softw (November/December):27–34
Zurück zum Zitat Seaman CB (2002) The information gathering strategies of software maintainers. In: Proc. int’l conf. on software maintenance, pp 141–149 Seaman CB (2002) The information gathering strategies of software maintainers. In: Proc. int’l conf. on software maintenance, pp 141–149
Zurück zum Zitat Shull F, Lanubile F, Basili VR (2000) Investigating reading techniques for object-oriented framework learning. IEEE Trans Softw Eng 26(11):1101–1118CrossRef Shull F, Lanubile F, Basili VR (2000) Investigating reading techniques for object-oriented framework learning. IEEE Trans Softw Eng 26(11):1101–1118CrossRef
Zurück zum Zitat Sillito J, Murphy GC, Volder KD (2008) Asking and answering questions during a programming change task. IEEE Trans Softw Eng 34(4):434–451CrossRef Sillito J, Murphy GC, Volder KD (2008) Asking and answering questions during a programming change task. IEEE Trans Softw Eng 34(4):434–451CrossRef
Zurück zum Zitat Stylos J, Clarke S (2007) Usability implications of requiring parameters in objects’ constructors. In: Proc. 29th int’l conf. on software engineering, pp 529–539 Stylos J, Clarke S (2007) Usability implications of requiring parameters in objects’ constructors. In: Proc. 29th int’l conf. on software engineering, pp 529–539
Zurück zum Zitat Stylos J, Myers BA (2007) Mapping the space of API design decisions. In: Proc. symp. on visual languages and human-centric computing, pp 50–60 Stylos J, Myers BA (2007) Mapping the space of API design decisions. In: Proc. symp. on visual languages and human-centric computing, pp 50–60
Zurück zum Zitat Stylos J, Myers BA (2008) Implications of method placement on api learnability. In: Proc. 16th ACM SIGSOFT int’l symp. on the foundations of software engineering, pp 105–112 Stylos J, Myers BA (2008) Implications of method placement on api learnability. In: Proc. 16th ACM SIGSOFT int’l symp. on the foundations of software engineering, pp 105–112
Zurück zum Zitat Stylos J, Graf B, Busse DK, Ziegler C, Karstens REJ (2008) A case study of API redesign for improved usability. In: Proc. symp. on visual languages and human-centric computing, pp 189–192 Stylos J, Graf B, Busse DK, Ziegler C, Karstens REJ (2008) A case study of API redesign for improved usability. In: Proc. symp. on visual languages and human-centric computing, pp 189–192
Zurück zum Zitat Tulach J (2008) Practical API Design: confessions of a Java framework architect. APress Tulach J (2008) Practical API Design: confessions of a Java framework architect. APress
Zurück zum Zitat Weiss RS (1994) Learning from strangers: the art and method of qualitative interview studies. The Free Press Weiss RS (1994) Learning from strangers: the art and method of qualitative interview studies. The Free Press
Zurück zum Zitat Westfall PH, Tobias RD, Rom D, Wolfinger RD, Hochberg Y (1999) Multiple comparisons and multiple tests using the SAS system. SAS Institute Inc., Cary, NC Westfall PH, Tobias RD, Rom D, Wolfinger RD, Hochberg Y (1999) Multiple comparisons and multiple tests using the SAS system. SAS Institute Inc., Cary, NC
Metadaten
Titel
A field study of API learning obstacles
verfasst von
Martin P. Robillard
Robert DeLine
Publikationsdatum
01.12.2011
Verlag
Springer US
Erschienen in
Empirical Software Engineering / Ausgabe 6/2011
Print ISSN: 1382-3256
Elektronische ISSN: 1573-7616
DOI
https://doi.org/10.1007/s10664-010-9150-8