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 条
  • [31] An Optimal Coordination Method for Software Development
    Xu, Suxiu
    Li, Zhuoxin
    Lu, Qiang
    Li, Gang
    Huang, Li
    2009 IEEE INTERNATIONAL CONFERENCE ON INDUSTRIAL ENGINEERING AND ENGINEERING MANAGEMENT, VOLS 1-4, 2009, : 623 - 627
  • [32] Usability and software development:: Roles of the stakeholders
    Uldall-Espersen, Tobias
    Frokjaer, Erik
    HUMAN-COMPUTER INTERACTION, PT 1, PROCEEDINGS: INTERACTION DESIGN AND USABILITY, 2007, 4550 : 642 - +
  • [33] Roles in agile software development teams
    Dubinsky, Y
    Hazzan, O
    EXTREME PROGRAMMING AND AGILE PROCESSES IN SOFTWARE ENGINEERING, PROCEEDINGS, 2004, 3092 : 157 - 165
  • [34] Classifying collaborative approaches for Cloud Based Collaborative Software Development
    Ewenike, Stanley
    Benkhelifa, Elhadj
    Chibelushi, Claude
    2017 INTERNATIONAL CONFERENCE ON THE FRONTIERS AND ADVANCES IN DATA SCIENCE (FADS), 2017, : 57 - 62
  • [35] Collaborative and teamwork software development in an undergraduate software engineering course
    Raibulet, Claudia
    Fontana, Francesca Arcelli
    JOURNAL OF SYSTEMS AND SOFTWARE, 2018, 144 : 409 - 422
  • [36] Software Development Team Dynamics: Control, Coordination, and Secure Software
    Ayaburi, Emmanuel W.
    Talebi, Nasim
    AMCIS 2017 PROCEEDINGS, 2017,
  • [37] Coordination implications of software architecture in a global software development project
    Avritzer, Alberto
    Paulish, Daniel
    Cai, Yuanfang
    SEVENTH WORKING IEEE/IFIP CONFERENCE ON SOFTWARE ARCHITECTURE, PROCEEDINGS, 2008, : 107 - +
  • [38] Coordination models and Software Architectures in a unified software development process
    Inverardi, P
    Muccini, H
    COORDINATION LANGUAGES AND MODELS, PROCEEDINGS, 2000, 1906 : 323 - 328
  • [39] Coordination implications of software architecture in a global software development project
    Avritzer, Alberto
    Paulish, Daniel
    Cai, Yuanfang
    Sethi, Kanwarpreet
    JOURNAL OF SYSTEMS AND SOFTWARE, 2010, 83 (10) : 1881 - 1895
  • [40] Understanding Collaborative Software Development: An Interview Study
    Constantino, Kattiana
    Zhou, Shurui
    Souza, Mauricio
    Figueiredo, Eduardo
    Kastner, Christian
    2020 ACM/IEEE 15TH INTERNATIONAL CONFERENCE ON GLOBAL SOFTWARE ENGINEERING, ICGSE, 2020, : 55 - 65