A field study of the software design process for large systems
Communications of the ACM
Awareness and coordination in shared workspaces
CSCW '92 Proceedings of the 1992 ACM conference on Computer-supported cooperative work
Designing engineers
Using a configuration management tool to coordinate software development
COCS '95 Proceedings of conference on Organizational computing systems
Version models for software configuration management
ACM Computing Surveys (CSUR)
Recomposition: putting it all back together again
CSCW '98 Proceedings of the 1998 ACM conference on Computer supported cooperative work
Systems architecture: product designing and social engineering
WACC '99 Proceedings of the international joint conference on Work activities coordination and collaboration
The geography of coordination: dealing with distance in R&D work
GROUP '99 Proceedings of the international ACM SIGGROUP conference on Supporting group work
Social translucence: an approach to designing systems that support social processes
ACM Transactions on Computer-Human Interaction (TOCHI) - Special issue on human-computer interaction in the new millennium, Part 1
Distance, dependencies, and delay in a global collaboration
CSCW '00 Proceedings of the 2000 ACM conference on Computer supported cooperative work
How does radical collocation help a team succeed?
CSCW '00 Proceedings of the 2000 ACM conference on Computer supported cooperative work
On the criteria to be used in decomposing systems into modules
Communications of the ACM
Expertise browser: a quantitative approach to identifying expertise
Proceedings of the 24th International Conference on Software Engineering
Protected Variation: The Importance of Being Closed
IEEE Software
Public versus Published Interfaces
IEEE Software
Palantír: raising awareness among configuration management workspaces
Proceedings of the 25th International Conference on Software Engineering
Management of Interdependencies in Collaborative Software Development
ISESE '03 Proceedings of the 2003 International Symposium on Empirical Software Engineering
Jazz: a collaborative application development environment
OOPSLA '03 Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
"Breaking the code", moving between private and public work in collaborative software development
GROUP '03 Proceedings of the 2003 international ACM SIGGROUP conference on Supporting group work
Building Collaboration into IDEs
Queue - Distributed Development
Improving conflict detection in optimistic concurrency control models
SCM'01/SCM'03 Proceedings of the 2001 ICSE Workshops on SCM 2001, and SCM 2003 conference on Software configuration management
SoftVis '05 Proceedings of the 2005 ACM symposium on Software visualization
Seeking the source: software source code as a social and technical artifact
GROUP '05 Proceedings of the 2005 international ACM SIGGROUP conference on Supporting group work
Bridging the gap between technical and social dependencies with Ariadne
eclipse '05 Proceedings of the 2005 OOPSLA workshop on Eclipse technology eXchange
Maintaining mental models: a study of developer work habits
Proceedings of the 28th international conference on Software engineering
Global Software Engineering: The Future of Socio-technical Coordination
FOSE '07 2007 Future of Software Engineering
A Comprehensive Evaluation of Workspace Awareness in Software Configuration Management Systems
VLHCC '07 Proceedings of the IEEE Symposium on Visual Languages and Human-Centric Computing
Proceedings of the 2007 international ACM conference on Supporting group work
An empirical study of software developers' management of dependencies and changes
Proceedings of the 30th international conference on Software engineering
Continuous coordination within the context of cooperative and human aspects of software engineering
Proceedings of the 2008 international workshop on Cooperative and human aspects of software engineering
Detecting Coordination Problems in Collaborative Software Development Environments
Information Systems Management
Empirical evidence of the benefits of workspace awareness in software configuration management
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
API usability: report on special interest group at CHI
ACM SIGSOFT Software Engineering Notes
Predicting build failures using social network analysis on developer communication
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
On The Roles of APIs in the Coordination of Collaborative Software Development
Computer Supported Cooperative Work
Offshore software development: transferring research findings into the classroom
SEAFOOD'07 Proceedings of the 1st international conference on Software engineering approaches for offshore and outsourced development
Software architecture awareness in long-term software product evolution
Journal of Systems and Software
Information and Software Technology
The concept maps method as a tool to evaluate the usability of APIs
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
To talk or not to talk: factors that influence communication around changesets
Proceedings of the ACM 2012 conference on Computer Supported Cooperative Work
Towards Standard M2M APIs for Cloud-based Telco Service Platforms
Proceedings of International Conference on Advances in Mobile Computing & Multimedia
Hi-index | 0.00 |
Information hiding is one of the most important and influential principles in software engineering. It prescribes that software modules hide implementation details from other modules in order to decrease the dependency between them. This separation also decreases the dependency among software developers implementing modules, thus simplifying some aspects of collaboration. A common instantiation of this principle is in the form of application programming interfaces (APIs). We performed a field study of the use of APIs and observed that they served many roles. We observed that APIs were successful indeed in supporting collaboration by serving as contracts among stakeholders as well as by reifying organizational boundaries. However, the separation that they accomplished also hindered other forms of collaboration, particularly among members of different teams. Therefore, we think argue that API's do not only have beneficial purposes. Based on our results, we discuss implications for collaborative software development tools.