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
来源
Computer Supported Cooperative Work (CSCW) | 2009年 / 18卷
关键词
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 条
  • [31] EXPERIMENT ON COORDINATION WITHIN SOFTWARE-DEVELOPMENT TEAMS
    TAMAI, T
    INFORMATION AND SOFTWARE TECHNOLOGY, 1992, 34 (07) : 437 - 442
  • [32] Team knowledge and coordination in geographically distributed software development
    Espinosa, J. Alberto
    Slaughter, Sandra A.
    Kraut, Robert E.
    Herbsleb, James D.
    JOURNAL OF MANAGEMENT INFORMATION SYSTEMS, 2007, 24 (01) : 135 - 169
  • [33] Rethinking Coordination in Large-Scale Software Development
    Dingsoyr, Torgeir
    Bjornson, Finn Olav
    Moe, Nils Brede
    Rolland, Knut
    Seim, Eva Amdahl
    2018 IEEE/ACM 11TH INTERNATIONAL WORKSHOP ON COOPERATIVE AND HUMAN ASPECTS OF SOFTWARE ENGINEERING (CHASE), 2018, : 91 - 92
  • [34] Heterogeneous distributed parallel programming for coordination in software development
    Chiang, CC
    AINA 2005: 19TH INTERNATIONAL CONFERENCE ON ADVANCED INFORMATION NETWORKING AND APPLICATIONS, VOL 2, 2005, : 199 - 202
  • [35] Coordination in Large-Scale Agile Software Development
    Berntzen, Marthe
    AGILE PROCESSES IN SOFTWARE ENGINEERING AND EXTREME PROGRAMMING - WORKSHOPS, 2019, 364 : 123 - 133
  • [36] Dams, Flows and Views: Cross-Aspect Use of Knowledge in Collaborative Software Development
    Jastroch, Norbert
    Kirova, Vassilka
    Marlowe, Thomas
    Mohtashami, Mojgan
    WMSCI 2011: 15TH WORLD MULTI-CONFERENCE ON SYSTEMICS, CYBERNETICS AND INFORMATICS, VOL II, 2011, : 319 - 323
  • [37] Software Development Process Ambidexterity and Project Performance: A Coordination Cost-Effectiveness View
    Werder, Karl
    Li, Ye
    Maedche, Alexander
    Ramesh, Balasubramaniam
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2021, 47 (04) : 836 - 849
  • [38] Impacts of collaborative IS on software development project success in Indian software firms: a service perspective
    Ulhas, Khire Rushikesh
    Lai, Jung-Yu
    Wang, Juite
    INFORMATION SYSTEMS AND E-BUSINESS MANAGEMENT, 2016, 14 (02) : 315 - 336
  • [39] Computer-supported meeting environment for collaborative software development
    Kuwana, E
    Yana, E
    Sakamoto, Y
    Nakamura, Y
    Horikawa, K
    INFORMATION AND SOFTWARE TECHNOLOGY, 1996, 38 (03) : 221 - 228
  • [40] Tracing distributed collaborative development in apache software foundation projects
    Gharehyazie, Mohammad
    Filkov, Vladimir
    EMPIRICAL SOFTWARE ENGINEERING, 2017, 22 (04) : 1795 - 1830