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 条
  • [1] On The Roles of APIs in the Coordination of Collaborative Software Development
    de Souza, Cleidson R. B.
    Redmiles, David F.
    COMPUTER SUPPORTED COOPERATIVE WORK-THE JOURNAL OF COLLABORATIVE COMPUTING AND WORK PRACTICES, 2009, 18 (5-6): : 445 - 475
  • [2] Detecting coordination problems in collaborative software development environments
    Amrit, Chintan
    van Hillegersberg, Jos
    INFORMATION SYSTEMS MANAGEMENT, 2008, 25 (01) : 57 - 70
  • [3] Application of Blockchain for Trusted Coordination in Collaborative Software Development
    Yau, Stephen S.
    Patel, Jinal S.
    2020 IEEE 44TH ANNUAL COMPUTERS, SOFTWARE, AND APPLICATIONS CONFERENCE (COMPSAC 2020), 2020, : 1036 - 1040
  • [4] Investigating the Roles of Effective Communication Among Stakeholders in Collaborative Software Development Projects
    Awotunde, Joseph Bamidele
    Ayo, Femi Emmanuel
    Ogundokun, Roseline Oluwaseun
    Matiluko, Opeyemi Emmanuel
    Adeniyi, Emmanuel Abidemi
    COMPUTATIONAL SCIENCE AND ITS APPLICATIONS - ICCSA 2020, PT VI, 2020, 12254 : 311 - 319
  • [5] Social Software for Coordination of Collaborative Process Activities
    Dengler, Frank
    Koschmider, Agnes
    Oberweis, Andreas
    Zhang, Huayu
    BUSINESS PROCESS MANAGEMENT WORKSHOPS, 2011, 66 : 396 - 407
  • [6] Approaches to collaborative software development
    Hildenbrand, Tobias
    Rothlauf, Franz
    Heinzl, Armin
    WIRTSCHAFTSINFORMATIK, 2007, 49 : 72 - 80
  • [7] Approaches to collaborative software development
    Hildenbrand, Tobias
    Rothlauf, Franz
    Geisser, Michael
    Heinzl, Armin
    Kude, Thomas
    CISIS 2008: THE SECOND INTERNATIONAL CONFERENCE ON COMPLEX, INTELLIGENT AND SOFTWARE INTENSIVE SYSTEMS, PROCEEDINGS, 2008, : 523 - 528
  • [8] COORDINATION IN SOFTWARE-DEVELOPMENT
    KRAUT, RE
    STREETER, LA
    COMMUNICATIONS OF THE ACM, 1995, 38 (03) : 69 - 81
  • [9] Supporting software development with roles
    Zhu, Haibin
    Zhou, MengChu
    Seguin, Pierre
    IEEE TRANSACTIONS ON SYSTEMS MAN AND CYBERNETICS PART A-SYSTEMS AND HUMANS, 2006, 36 (06): : 1110 - 1123
  • [10] On the Suitability of Particular Software Development Roles to Global Software Development
    Lane, Michael T.
    Agerfalk, Par J.
    2008 3RD IEEE INTERNATIONAL CONFERENCE GLOBAL SOFTWARE ENGINEERING, PROCEEDINGS, 2008, : 3 - +