Journal Article

On The Roles of APIs in the Coordination of Collaborative Software Development

Loading...
Thumbnail Image

Fulltext URI

Document type

Text/Journal Article

Additional Information

Date

Journal Title

Journal ISSN

Volume Title

Publisher

Springer

Abstract

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.

Description

Souza, Cleidson R. B.; Redmiles, David F. (2009): On The Roles of APIs in the Coordination of Collaborative Software Development. Computer Supported Cooperative Work (CSCW): Vol. 18. DOI: 10.1007/s10606-009-9101-3. Springer. PISSN: 1573-7551. pp. 445-475

Keywords

application programming interfaces, collaborative software development, coordination, interfaces, software engineering

Citation

URI

Endorsement

Review

Supplemented By

Referenced By


Number of citations to item: 30

  • Michael Etter, Elanor Colleoni, Laura Illia, Katia Meggiorin, Antonino D’Eugenio (2016): Measuring Organizational Legitimacy in Social Media: Assessing Citizens’ Judgments With Sentiment Analysis, In: Business & Society 1(57), doi:10.1177/0007650316683926
  • Helen Sharp, Cleidson deSouza, Yvonne Dittrich (2010): Using ethnographic methods in software engineering research, In: Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 2, doi:10.1145/1810295.1810445
  • Ban Al-Ani, Yi Wang, Sabrina Marczak, Erik Trainer, David Redmiles (2012): Distributed Developers and the Non-use of Web 2.0 Technologies: A Proclivity Model, In: 2012 IEEE Seventh International Conference on Global Software Engineering, doi:10.1109/icgse.2012.39
  • Juho Lindman, Jennifer Horkoff, Imed Hammouda, Eric Knauss (2020): Emerging Perspectives of Application Programming Interface Strategy: A Framework to Respond to Business Concerns, In: IEEE Software 2(37), doi:10.1109/ms.2018.2875964
  • Ansong Ni, Daniel Ramos, Aidan Z. H. Yang, Inês Lynce, Vasco Manquinho, Ruben Martins, Claire Le Goues (2021): SOAR: A Synthesis Approach for Data Science API Refactoring, In: 2021 IEEE/ACM 43rd International Conference on Software Engineering (ICSE), doi:10.1109/icse43902.2021.00023
  • Christopher Bogart, Christian Kästner, James Herbsleb, Ferdian Thung (2016): How to break an API: cost negotiation and community values in three software ecosystems, In: Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering, doi:10.1145/2950290.2950325
  • Yuanbo Qiu (2016): The openness of Open Application Programming Interfaces, In: Information, Communication & Society 11(20), doi:10.1080/1369118x.2016.1254268
  • Sherlock A. Licorish, Stephen G. MacDonell (2015): Communication and personality profiles of global software developers, In: Information and Software Technology, doi:10.1016/j.infsof.2015.02.004
  • Chris Bogart, Christian Kästner, James Herbsleb, Ferdian Thung (2021): When and How to Make Breaking Changes, In: ACM Transactions on Software Engineering and Methodology 4(30), doi:10.1145/3447245
  • Kavita Philip, Medha Umarji, Megha Agarwala, Susan Elliott Sim, Rosalva Gallardo-Valencia, Cristina V. Lopes, Sukanya Ratanotayanon (2012): Software reuse through methodical component reuse and amethodical snippet remixing, In: Proceedings of the ACM 2012 conference on Computer Supported Cooperative Work, doi:10.1145/2145204.2145407
  • Sherlock A. Licorish, Stephen G. Macdonell (2014): Combining Text Mining and Visualization Techniques to Study Teams' Behavioral Processes, In: 2014 IEEE 4th Workshop on Mining Unstructured Data, doi:10.1109/mud.2014.10
  • Alex Gyori, Owolabi Legunsen, Farah Hariri, Darko Marinov (2018): Evaluating Regression Test Selection Opportunities in a Very Large Open-Source Ecosystem, In: 2018 IEEE 29th International Symposium on Software Reliability Engineering (ISSRE), doi:10.1109/issre.2018.00022
  • Jean Marcel dos Reis Costa, Cleidson Ronald Botelho de Souza (2010): Analyzing the Scalability of Awareness Networks in a Distributed Software Development Project, In: 2010 Brazilian Symposium on Collaborative Systems - Simposio Brasileiro de Sistemas Colaborativos, doi:10.1109/sbsc.2010.22
  • Francesco Bolici, James Howison, Kevin Crowston (2016): Stigmergic coordination in FLOSS development teams: Integrating explicit and implicit mechanisms, In: Cognitive Systems Research, doi:10.1016/j.cogsys.2015.12.003
  • Sabine Brunswicker, Aaron Schecter (2019): Coherence or flexibility? The paradox of change for developers’ digital innovation trajectory on open platforms, In: Research Policy 8(48), doi:10.1016/j.respol.2019.03.016
  • Helen Sharp, Yvonne Dittrich, Cleidson R. B. de Souza (2016): The Role of Ethnographic Studies in Empirical Software Engineering, In: IEEE Transactions on Software Engineering 8(42), doi:10.1109/tse.2016.2519887
  • Auriol Degbelo, Ang Sherpa (2020): Open Geodata Reuse: Towards Natural Language Interfaces to Web APIs, In: Companion Proceedings of the Web Conference 2020, doi:10.1145/3366424.3384363
  • Cleidson R. B. de Souza, Jean M. R. Costa, Marcelo Cataldo (2012): Analyzing the scalability of coordination requirements of a distributed software project, In: Journal of the Brazilian Computer Society 3(18), doi:10.1007/s13173-012-0067-5
  • Tanja Aitamurto, Seth C. Lewis (2012): Open innovation in digital journalism: Examining the impact of Open APIs at four news organizations, In: New Media & Society 2(15), doi:10.1177/1461444812450682
  • Yvonne Dittrich, Jacob Nørbjerg, Paolo Tell, Lars Bendix (2018): Researching cooperation and communication in continuous software engineering, In: Proceedings of the 11th International Workshop on Cooperative and Human Aspects of Software Engineering, doi:10.1145/3195836.3195856
  • Sabrina E. Bailey, Sneha S. Godbole, Charles D. Knutson, Jonathan L. Krein (2013): A Decade of Conway's Law: A Literature Review from 2003-2012, In: 2013 3rd International Workshop on Replication in Empirical Software Engineering Research, doi:10.1109/reser.2013.14
  • Eunyoung Moon, James Howison (2024): A dynamic perspective on software modularity in open source software (OSS) development: A configurational approach, In: Information and Organization 1(34), doi:10.1016/j.infoandorg.2023.100499
  • Marcelo Cataldo, Kate Ehrlich (2012): The impact of communication structure on new product development outcomes, In: Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, doi:10.1145/2207676.2208722
  • Marcelo Cataldo, Cleidson R. B. De Souza (2014): Exploring the Impact of API Complexity on Failure-Proneness, In: 2014 IEEE 9th International Conference on Global Software Engineering, doi:10.1109/icgse.2014.16
  • Stina Matthiesen, Pernille Bjørn (2015): Why Replacing Legacy Systems Is So Hard in Global Software Development, In: Proceedings of the 18th ACM Conference on Computer Supported Cooperative Work & Social Computing, doi:10.1145/2675133.2675232
  • Sherlock A. Licorish, Stephen G. MacDonell (2014): Understanding the attitudes, knowledge sharing behaviors and task performance of core developers: A longitudinal study, In: Information and Software Technology 12(56), doi:10.1016/j.infsof.2014.02.004
  • Stefanie Betz, Darja mite, Samuel Fricker, Andrew Moss, Wasif Afzal, Mikael Svahnberg, Claes Wohlin, Jurgen Borstler, Tony Gorschek (2013): An Evolutionary Perspective on Socio-Technical Congruence: The Rubber Band Effect, In: 2013 3rd International Workshop on Replication in Empirical Software Engineering Research, doi:10.1109/reser.2013.8
  • Cleidson R. B. de Souza, David F. Redmiles (2011): The Awareness Network, To Whom Should I Display My Actions? And, Whose Actions Should I Monitor?, In: IEEE Transactions on Software Engineering 3(37), doi:10.1109/tse.2011.19
  • Gustavo A. Oliva, Francisco W. Santana, Kleverton C. M. de Oliveira, Cleidson R. B. de Souza, Marco A. Gerosa (2012): Characterizing Key Developers: A Case Study with Apache Ant, In: Lecture Notes in Computer Science, doi:10.1007/978-3-642-33284-5_8
  • Jessica Pidoux, Pascale Kuntz, Daniel Gatica-Perez (2021): Declarative Variables in Online Dating, In: Proceedings of the ACM on Human-Computer Interaction CSCW1(5), doi:10.1145/3449174
Please note: Providing information about citations is only possible thanks to to the open metadata APIs provided by crossref.org and opencitations.net. These lists may be incomplete due to unavailable citation data.source: opencitations.net, crossref.org