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

被引:0
|
作者
Cleidson R. B. de Souza
David F. Redmiles
机构
[1] Universidade Federal do Pará,
[2] University of California,undefined
关键词
interfaces; application programming interfaces; coordination; collaborative software development; software engineering;
D O I
暂无
中图分类号
学科分类号
摘要
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 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.
引用
收藏
相关论文
共 50 条
  • [21] Collaborative software development made easy
    Andrew Silver
    Nature, 2017, 550 : 143 - 144
  • [22] Software development as a collaborative writing project
    Bussell, Brian
    Taylor, Stephen
    EXTREME PROGRAMMING AND AGILE PROCESSES IN SOFTWARE ENGINEERING, PROCEEDINGS, 2006, 4044 : 21 - 31
  • [23] Collaborative Learning in Software Development Teams
    Hale, Matthew
    Gamble, Rose
    Wilson, Kimberly
    Narayan, Anupama
    AMCIS 2011 PROCEEDINGS, 2011,
  • [24] Collaborative and social aspects of software development
    Good, Judith
    Romero, Pablo
    INTERNATIONAL JOURNAL OF HUMAN-COMPUTER STUDIES, 2008, 66 (07) : 481 - 483
  • [25] Metrics Are Needed for Collaborative Software Development
    Mohtashami, Mojgan
    Ku, Cyril S.
    Marlowe, Thomas J.
    WMSCI 2011: 15TH WORLD MULTI-CONFERENCE ON SYSTEMICS, CYBERNETICS AND INFORMATICS, VOL II, 2011, : 324 - 328
  • [26] An Advanced Collaborative Environment for Software Development
    Wanderley, Gregory Moro Puppi
    Abel, Marie-Helene
    Barthes, Jean-Paul
    Cabrera Paraiso, Emerson
    2016 IEEE INTERNATIONAL CONFERENCE ON SYSTEMS, MAN, AND CYBERNETICS (SMC), 2016, : 2917 - 2922
  • [27] On coordination mechanisms in global software development
    Cataldo, Marcelo
    Bass, Matthew
    Herbsleb, James D.
    Bass, Len
    SECOND IEEE INTERNATIONAL CONFERENCE ON GLOBAL SOFTWARE ENGINEERING, PROCEEDINGS, 2007, : 71 - 80
  • [28] Coordination Value in Agile Software Development
    Stray, Viktoria
    Moe, Nils Brede
    Strode, Diane
    Maehlum, Emilie
    15TH INTERNATIONAL CONFERENCE ON COOPERATIVE AND HUMAN ASPECTS OF SOFTWARE ENGINEERING (CHASE 2022), 2022, : 11 - 20
  • [29] Optimal Coordination in Distributed Software Development
    Xia, Hao
    Dawande, Milind
    Mookerjee, Vijay
    PRODUCTION AND OPERATIONS MANAGEMENT, 2016, 25 (01) : 56 - 76
  • [30] Coordination artifacts in Agile Software Development
    Zaitsev, Anna
    Gal, Uri
    Tan, Barney
    INFORMATION AND ORGANIZATION, 2020, 30 (02)