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 条
  • [41] TWiki as a platform for collaborative software development management
    Radziwill, NM
    Shelton, AL
    ADVANCED SOFTWARE, CONTROL, AND COMMUNICATION SYSTEMS FOR ASTRONOMY, 2004, 5496 : 609 - 617
  • [42] Automatic team recommendation for collaborative software development
    Suppawong Tuarob
    Noppadol Assavakamhaenghan
    Waralee Tanaphantaruk
    Ponlakit Suwanworaboon
    Saeed-Ul Hassan
    Morakot Choetkiertikul
    Empirical Software Engineering, 2021, 26
  • [43] Collaborative problem solving and groupware for software development
    DeFranco-Tommarello, J
    Deek, FP
    INFORMATION SYSTEMS MANAGEMENT, 2003, 21 (01) : 67 - 80
  • [44] Predicting Merge Conflicts in Collaborative Software Development
    Owhadi-Kareshk, Moein
    Nadi, Sarah
    Rubin, Julia
    2019 13TH ACM/IEEE INTERNATIONAL SYMPOSIUM ON EMPIRICAL SOFTWARE ENGINEERING AND MEASUREMENT (ESEM 2019), 2019, : 363 - 373
  • [45] Risk Factors that Affect Collaborative Software Development
    Nayak, M. K.
    Suesaowaluk, P.
    2008 IEEE INTERNATIONAL CONFERENCE ON MANAGEMENT OF INNOVATION AND TECHNOLOGY, VOLS 1-3, 2008, : 1366 - 1371
  • [46] Collaborative Software Development for a Brazilian Telehealth Program
    Sanches, Luiz M. P.
    Harris, Marcelline R.
    Abbott, Patricia A.
    Novaes, Magdala A.
    Lopes, Maria H. B. M.
    NURSING INFORMATICS 2014: EAST MEETS WEST ESMART+, 2014, 201 : 211 - 218
  • [47] Collaborative learning behaviour in software development teams
    Mukherji, S
    Oja, AK
    PEOPLE, KNOWLEDGE AND TECHNOLOGY: WHAT HAVE WE LEARNT SO FAR?, 2004, : 87 - 96
  • [48] An augmented RBAC structure for collaborative software development
    Wu, H. J.
    Sun, C. H.
    Lin, B. D.
    2007 IEEE INTERNATIONAL CONFERENCE ON INDUSTRIAL ENGINEERING AND ENGINEERING MANAGEMENT, VOLS 1-4, 2007, : 553 - 557
  • [49] Supporting collaborative software development over GitHub
    Arora, Ritu
    Goel, Sanjay
    Mittal, Ravi Kant
    SOFTWARE-PRACTICE & EXPERIENCE, 2017, 47 (10): : 1393 - 1416
  • [50] Toward Inconsistency Awareness in Collaborative Software Development
    Huyen, Phan Thi Thanh
    Ochimizu, Koichiro
    2011 18TH ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE (APSEC 2011), 2011, : 154 - 162