A field study of the software design process for large systems
Communications of the ACM
Fundamentals of software engineering
Fundamentals of software engineering
Awareness and coordination in shared workspaces
CSCW '92 Proceedings of the 1992 ACM conference on Computer-supported cooperative work
Using a configuration management tool to coordinate software development
COCS '95 Proceedings of conference on Organizational computing systems
Open implementation design guidelines
ICSE '97 Proceedings of the 19th international conference on Software engineering
Recomposition: putting it all back together again
CSCW '98 Proceedings of the 1998 ACM conference on Computer supported cooperative work
The Unified Modeling Language reference manual
The Unified Modeling Language reference manual
Systems architecture: product designing and social engineering
WACC '99 Proceedings of the international joint conference on Work activities coordination and collaboration
Extreme programming explained: embrace change
Extreme programming explained: embrace change
The geography of coordination: dealing with distance in R&D work
GROUP '99 Proceedings of the international ACM SIGGROUP conference on Supporting group work
Proceedings of the Conference on The Future of Software Engineering
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
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
Test Driven Development: By Example
Test Driven Development: By Example
Expertise browser: a quantitative approach to identifying expertise
Proceedings of the 24th International Conference on Software Engineering
A View of Software Development Environments Based on Activity Theory
Computer Supported Cooperative Work
Beyond the Black Box: Open Implementation
IEEE Software
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
"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
Jazzing up Eclipse with collaborative tools
eclipse '03 Proceedings of the 2003 OOPSLA workshop on eclipse technology eXchange
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
Towards compatible primitive structures
Journal of Experimental & Theoretical Artificial Intelligence - Special issue: conceptual graphs workshop
Bridging the gap between technical and social dependencies with Ariadne
eclipse '05 Proceedings of the 2005 OOPSLA workshop on Eclipse technology eXchange
Emerging design: new roles and uses for abstraction
Proceedings of the 2006 international workshop on Role of abstraction in software engineering
Supporting software development as knowledge-intensive and collaborative activity
Proceedings of the 2006 international workshop on Workshop on interdisciplinary software engineering research
Collaboration in Software Engineering: A Roadmap
FOSE '07 2007 Future of Software Engineering
A socio-technical framework for supporting programmers
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Proceedings of the 2007 international ACM conference on Supporting group work
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Proceedings of the 2008 international workshop on Cooperative and human aspects of software engineering
Team: towards a software engineering semantic web
Proceedings of the 2008 international workshop on Cooperative and human aspects of software engineering
The economy of collective attention for situated knowledge collaboration in software development
Proceedings of the 2008 international workshop on Cooperative and human aspects of software engineering
Proceedings of the Second ACM-IEEE international symposium on Empirical software engineering and measurement
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
Communication networks in geographically distributed software development
Proceedings of the 2008 ACM conference on Computer supported cooperative work
CASCON '08 Proceedings of the 2008 conference of the center for advanced studies on collaborative research: meeting of minds
Predicting build failures using social network analysis on developer communication
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
SDG '09 Proceedings of the 2009 ICSE Workshop on Software Development Governance
Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
On The Roles of APIs in the Coordination of Collaborative Software Development
Computer Supported Cooperative Work
Sources of errors in distributed development projects: implications for collaborative tools
Proceedings of the 2010 ACM conference on Computer supported cooperative work
Reducing the cost of communication and coordination in distributed software development
SEAFOOD'07 Proceedings of the 1st international conference on Software engineering approaches for offshore and outsourced development
SEAFOOD'07 Proceedings of the 1st international conference on Software engineering approaches for offshore and outsourced development
Keeping up with your friends: function Foo, library Bar.DLL, and work item 24
Proceedings of the 1st Workshop on Web 2.0 for Software Engineering
Using ethnographic methods in software engineering research
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 2
Architecting in software ecosystems: interface translucence as an enabler for scalable collaboration
Proceedings of the Fourth European Conference on Software Architecture: Companion Volume
A review of non-technical issues in global software development
International Journal of Computer Applications in Technology
Proceedings of the 33rd International Conference on Software Engineering
Extending socio-technical congruence with awareness relationships
Proceedings of the 4th international workshop on Social software engineering
Mining development repositories to study the impact of collaboration on software systems
Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering
To talk or not to talk: factors that influence communication around changesets
Proceedings of the ACM 2012 conference on Computer Supported Cooperative Work
Proceedings of the ACM 2012 conference on Computer Supported Cooperative Work
Hi-index | 0.00 |
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 decrease their interdependencies. 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 qualitative study on how practitioners use APIs in their daily work. Although particularly interested in aspects of collaboration, we report all findings about their observed use. The findings include mundane observations that are predicted by theory, ways that APIs support collaborative software development. But the findings also include some surprises, ways that APIs hinder collaboration. The surprises indicate directions for further improvement of collaborative software development practices and tools.