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 条
  • [21] Supporting Collaborative Software Development through the Visualization of Socio-Technical Dependencies
    de Souza, Cleidson R. B.
    Quirk, Stephen
    Trainer, Erik
    Redmiles, David F.
    GROUP'07: PROCEEDINGS OF THE 2007 INTERNATIONAL ACM CONFERENCE ON SUPPORTING GROUP WORK, 2007, : 147 - 156
  • [22] Building a Community System to Teach Collaborative Software Development
    Villarrubia, Andrew
    Kim, Hyunju
    10TH INTERNATIONAL CONFERENCE ON COMPUTER SCIENCE & EDUCATION (ICCSE 2015), 2015, : 829 - 833
  • [23] An Inconsistency Management Support System for Collaborative Software Development
    Phan Thi Thanh Huyen
    Ochimiziu, Koichiro
    IEICE TRANSACTIONS ON INFORMATION AND SYSTEMS, 2014, E97D (01): : 22 - 33
  • [24] Quantifying effectiveness of team recommendation for collaborative software development
    Assavakamhaenghan, Noppadol
    Tanaphantaruk, Waralee
    Suwanworaboon, Ponlakit
    Choetkiertikul, Morakot
    Tuarob, Suppawong
    AUTOMATED SOFTWARE ENGINEERING, 2022, 29 (02)
  • [25] Coordination in Crowdsourced Software Development: A Systematic Mapping Study
    de Campos, Vitor Queiroz
    David, Jose Maria N.
    Braga, Regina
    PROCEEDINGS OF THE 2021 IEEE 24TH INTERNATIONAL CONFERENCE ON COMPUTER SUPPORTED COOPERATIVE WORK IN DESIGN (CSCWD), 2021, : 305 - 310
  • [26] Global Software Development Coordination Strategies - A Vendor Perspective
    Deshpande, Sadhana
    Beecham, Sarah
    Richardson, Ita
    NEW STUDIES IN GLOBAL IT AND BUSINESS SERVICES OUTSOURCING, 2011, 91 : 153 - 174
  • [27] Educational software development: Coordination as the critical success factor
    Desenvolvimento de software educativo: A coordenação como fator crítico de sucesso
    1600, Associacao Iberica de Sistemas e Tecnologias de Informacao : 1 - 18
  • [28] Quantifying effectiveness of team recommendation for collaborative software development
    Noppadol Assavakamhaenghan
    Waralee Tanaphantaruk
    Ponlakit Suwanworaboon
    Morakot Choetkiertikul
    Suppawong Tuarob
    Automated Software Engineering, 2022, 29
  • [29] Guidelines for collaborative development of sustainable data treatment software
    Wuttke, Joachim
    Cottrell, Stephen
    Gonzalez, Miguel A.
    Kaestner, Anders
    Markvardsen, Anders
    Rod, Thomas H.
    Rozyczko, Piotr
    Vardanyan, Gagik
    JOURNAL OF NEUTRON RESEARCH, 2022, 24 (01) : 33 - 72
  • [30] Investigating Syntactic and Semantic Inconsistencies in Collaborative Software Development
    Arora, Ritu
    Goel, Sanjay
    2015 EIGHTH INTERNATIONAL CONFERENCE ON CONTEMPORARY COMPUTING (IC3), 2015, : 509 - 515