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

dc.contributor.authorSouza, Cleidson R. B.
dc.contributor.authorRedmiles, David F.
dc.date.accessioned2020-06-06T13:07:30Z
dc.date.available2020-06-06T13:07:30Z
dc.date.issued2009
dc.date.issued2009
dc.description.abstractThe 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.de
dc.identifier.doi10.1007/s10606-009-9101-3
dc.identifier.pissn1573-7551
dc.identifier.urihttp://dx.doi.org/10.1007/s10606-009-9101-3
dc.identifier.urihttps://dl.eusset.eu/handle/20.500.12015/3992
dc.publisherSpringer
dc.relation.ispartofComputer Supported Cooperative Work (CSCW): Vol. 18
dc.relation.ispartofseriesComputer Supported Cooperative Work (CSCW)
dc.subjectapplication programming interfaces
dc.subjectcollaborative software development
dc.subjectcoordination
dc.subjectinterfaces
dc.subjectsoftware engineering
dc.titleOn The Roles of APIs in the Coordination of Collaborative Software Developmentde
dc.typeText/Journal Article
gi.citation.endPage475
gi.citation.startPage445
gi.citations.count30
gi.citations.elementMichael 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
gi.citations.elementHelen 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
gi.citations.elementBan 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
gi.citations.elementJuho 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
gi.citations.elementAnsong 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
gi.citations.elementChristopher 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
gi.citations.elementYuanbo Qiu (2016): The openness of Open Application Programming Interfaces, In: Information, Communication & Society 11(20), doi:10.1080/1369118x.2016.1254268
gi.citations.elementSherlock 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
gi.citations.elementChris 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
gi.citations.elementKavita 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
gi.citations.elementSherlock 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
gi.citations.elementAlex 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
gi.citations.elementJean 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
gi.citations.elementFrancesco 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
gi.citations.elementSabine 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
gi.citations.elementHelen 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
gi.citations.elementAuriol 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
gi.citations.elementCleidson 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
gi.citations.elementTanja 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
gi.citations.elementYvonne 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
gi.citations.elementSabrina 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
gi.citations.elementEunyoung 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
gi.citations.elementMarcelo 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
gi.citations.elementMarcelo 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
gi.citations.elementStina 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
gi.citations.elementSherlock 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
gi.citations.elementStefanie 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
gi.citations.elementCleidson 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
gi.citations.elementGustavo 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
gi.citations.elementJessica 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

Files