I have moved to Oregon State University. Coordination in software development is inherently difficult because of the complex, invisible, and dynamic interdependencies among software artifacts. Implementing a piece of software requires not only integrating code written by a developer with the project’s existing code, but also with that of current ongoing work, and third party software. The technical dependencies among these pieces of software lead to social dependencies among developers, and the need to coordinate changes. However, understanding these socio-technical dependencies is nontrivial. Conflicts frequently arise because of coordination breakdowns. Development practices such as parallel work and distributed development further exacerbate the problem. My research examines the paradigms, technologies and social contexts to model socio-technical dependencies, and facilitate coordination. My approach is interdisciplinary, leveraging research in data mining, program analysis, software visualization, and human-computer interaction. My work: (a) deepens our understanding of the effects of socio-technical dependencies by analyzing and modeling the social and technical structures in a software system through archival analysis, (b) allows developers to investigate and comprehend socio-technical dependencies in their projects through interactive tools, and (c) mitigates coordination related software conflicts through tools that support change impact analysis and workspace awareness. Finally, end-user programmers, individuals to whom programming is a means to an end, also need to understand and manage socio-technical dependencies.