Supporting collaborative software development through the visualization of socio-technical dependencies

One of the reasons large-scale software development is difficult is the number of dependencies that software engineers face. These dependencies create a need for communication and coordination that requires continuous effort by developers. Empirical studies, including our own, suggest that technical dependencies among software components create social dependencies among the software developers implementing those components. Based on this observation, we developed Ariadne, a plug-in for Eclipse. Ariadne analyzes software projects for dependencies and collects authorship information about projects relying on configuration management repositories. Ariadne can "translate" technical dependencies among components into social dependencies among developers. We have created visualizations to convey dependency information and the presence of coordination problems identified in our previous work. We believe the information conveyed in the visualizations will prove useful for software developers.

[1]  James D. Herbsleb,et al.  Identification of coordination requirements: implications for the Design of collaboration and awareness tools , 2006, CSCW '06.

[2]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[3]  Gary J. Nutt,et al.  The evolution towards flexible workflow systems , 1996, Distributed Syst. Eng..

[4]  David Notkin,et al.  An empirical study of static call graph extractors , 1998, TSEM.

[5]  Steven D. Eppinger,et al.  Predicting technical communication in product development organizations , 1995 .

[6]  Stanley Wasserman,et al.  Social Network Analysis: Methods and Applications , 1994 .

[7]  Laura R. Novick,et al.  To Matrix, Network, or Hierarchy: That Is the Question , 2001, Cognitive Psychology.

[8]  James D. Herbsleb,et al.  Architectures, coordination, and distance: Conway’s law and beyond , 1999 .

[9]  Rebecca E. Grinter Recomposition: Coordinating a Web of Software Dependencies , 2003, Computer Supported Cooperative Work (CSCW).

[10]  Bill Curtis,et al.  A field study of the software design process for large systems , 1988, CACM.

[11]  Steven D. Eppinger,et al.  The Misalignment of Product Architecture and Organizational Structure in Complex Product Development , 2004, Manag. Sci..

[12]  Li-Te Cheng,et al.  Sometimes you need to see through walls: a field study of application programming interfaces , 2004, CSCW.

[13]  Benoît Otjacques,et al.  Representation of graphs on a matrix layout , 2005, Ninth International Conference on Information Visualisation (IV'05).

[14]  Grant Mccracken The long interview , 1988 .

[15]  Ken Kennedy,et al.  Constructing the Procedure Call Multigraph , 1990, IEEE Trans. Software Eng..

[16]  Steven D. Eppinger,et al.  Sloan School of Management Working Paper Factors That Influence Technical Communication in Distributed Product Development: an Empirical Study in the Telecommunications Industry Factors That Influence Technical Communication in Distributed Product Development: an Empirical Study in the Telecommunica , 2022 .

[17]  Maarten Sierhuis,et al.  Management of interdependencies in collaborative software development , 2003, 2003 International Symposium on Empirical Software Engineering, 2003. ISESE 2003. Proceedings..

[18]  David F. Redmiles,et al.  Toward Visualization and Analysis of Traceability Relationships in Distributed and Offshore Software Development Projects , 2007, SEAFOOD.

[19]  Michael Rovatsos,et al.  Handbook of Software Engineering and Knowledge Engineering , 2005 .

[20]  Debra Richardson,et al.  The role of dependencies in component-based systems evolution , 2002, IWPSE '02.

[21]  Alexander L. Wolf,et al.  Architecture-level dependence analysis in support of software maintenance , 1998, ISAW '98.

[22]  Alexander L. Wolf,et al.  Architecture-Level Dependence Analysis for Software Systems , 2001, Int. J. Softw. Eng. Knowl. Eng..

[23]  Rebecca E. Grinter Using a configuration management tool to coordinate software development , 1995, COCS '95.

[24]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1987, TOPL.

[25]  André van der Hoek,et al.  Palantir: raising awareness among configuration management workspaces , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[26]  S. Wasserman,et al.  Models and Methods in Social Network Analysis: Structural Analysis in the Social Sciences , 2005 .

[27]  David F. Redmiles,et al.  On the relationship between software dependencies and coordination: field studies and tool support , 2005 .

[28]  Anselm L. Strauss,et al.  Basics of qualitative research : techniques and procedures for developing grounded theory , 1998 .

[29]  Li-Te Cheng,et al.  How a good software practice thwarts collaboration: the multiple roles of APIs in software development , 2004, SIGSOFT '04/FSE-12.

[30]  André van der Hoek,et al.  Continuous Coordination ( CC ) : A New Collaboration Paradigm , 2006 .

[31]  David F. Redmiles,et al.  Bridging the gap between technical and social dependencies with Ariadne , 2005, eclipse '05.

[32]  M. E. Conway HOW DO COMMITTEES INVENT , 1967 .

[33]  Ivan Herman,et al.  Graph Visualization and Navigation in Information Visualization: A Survey , 2000, IEEE Trans. Vis. Comput. Graph..

[34]  D. Jorgensen Participant Observation: A Methodology for Human Studies , 1989 .

[35]  George Spanoudakis,et al.  Software Traceability : A Roadmap , 2005 .

[36]  Christian Heath,et al.  Collaboration and controlCrisis management and multimedia technology in London Underground Line Control Rooms , 1992, Computer Supported Cooperative Work (CSCW).

[37]  Craig Larman Design - Protected Variation: The Importance of Being Closed , 2001, IEEE Softw..

[38]  Audris Mockus,et al.  An empirical study of global software development: distance and speed , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[39]  Mark S. Ackerman,et al.  Just talk to me: a field study of expertise location , 1998, CSCW '98.

[40]  Paul Dourish,et al.  Seeking the source: software source code as a social and technical artifact , 2005, GROUP.

[41]  Lori A. Clarke,et al.  The implications of program dependencies for software testing, debugging, and maintenance , 1989 .

[42]  Paul Dourish,et al.  Awareness and coordination in shared workspaces , 1992, CSCW '92.