How a good software practice thwarts collaboration: the multiple roles of APIs in software development

  • Authors:
  • Cleidson R. B. de Souza;David Redmiles;Li-Te Cheng;David Millen;John Patterson

  • Affiliations:
  • Universidade Federal do Pará and University of California at Irvine;University of California at Irvine;IBM T. J. Watson Research Center;IBM T. J. Watson Research Center;IBM T. J. Watson Research Center

  • Venue:
  • Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

The principle of information hiding has been very influential in software engineering since its inception in 1972. This principle prescribes that software modules hide implementation details from other modules in order to decrease their interdependencies. This separation also decreases the dependency among software developers implementing modules, thus simplifying some aspects of collaboration. A common instantiation of this principle is in the form of application programming interfaces (APIs). We performed a qualitative study on how practitioners use APIs in their daily work. Although particularly interested in aspects of collaboration, we report all findings about their observed use. The findings include mundane observations that are predicted by theory, ways that APIs support collaborative software development. But the findings also include some surprises, ways that APIs hinder collaboration. The surprises indicate directions for further improvement of collaborative software development practices and tools.