On The Roles of APIs in the Coordination of Collaborative Software Development

dc.contributor.authorSouza, Cleidson R. B.
dc.contributor.authorRedmiles, David F.
dc.date.accessioned2020-06-06T13:07:30Z
dc.date.available2020-06-06T13:07:30Z
dc.date.issued40072
dc.description.abstractThe 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 reduce their dependencies. This separation also decreases the dependency among software developers implementing these modules, thus simplifying the required coordination. A common instantiation of this principle widely used in the industry is in the form of application programming interfaces (APIs). While previous studies report on the general use and benefits of APIs, they have glossed over the detailed ways in which APIs facilitate the coordination of work. In order to unveil these mechanisms, we performed a qualitative study on how practitioners use APIs in their daily work. Using ethnographic data from two different software development teams, we identified three roles played by APIs in the coordination of software development projects. These roles are described using three metaphors: APIs as contracts, APIs as boundaries, and APIs as communication mechanisms. As contracts, APIs allow software developers to work in parallel and independently. As a communication mechanism, APIs facilitate communication among software developers by giving them something specific to talk about. At the same time, APIs establish the boundaries between developers, and, accordingly, what should be talked about. This paper also reports on problems the studied teams face when using APIs to coordinate their work. Based on these results, we draw theoretical implications for collaborative software engineering.de
dc.identifier.doi10.1007/s10606-009-9101-3
dc.identifier.pissn1573-7551
dc.identifier.urihttp://dx.doi.org/10.1007/s10606-009-9101-3
dc.identifier.urihttps://dl.eusset.eu/handle/20.500.12015/3992
dc.publisherSpringer
dc.relation.ispartofComputer Supported Cooperative Work (CSCW): Vol. 18
dc.relation.ispartofseriesComputer Supported Cooperative Work (CSCW)
dc.subjectapplication programming interfaces
dc.subjectcollaborative software development
dc.subjectcoordination
dc.subjectinterfaces
dc.subjectsoftware engineering
dc.titleOn The Roles of APIs in the Coordination of Collaborative Software Developmentde
dc.typeText/Journal Article
gi.citation.endPage475
gi.citation.startPage445

Files