James D.

James D. Herbsleb

Professor, School of Computer Science
Head, Software and Societal Systems Department
Carnegie Mellon University


Major research areas:

Coordination in Software Engineering
Open Source Ecosystems
Hackathons, Codefests, Sprints, Data Dives . . .

Coordination in Software Engineering

Coordinating the work of individuals, teams, organizations, and even ecosystems is one of the fundamental challenges of software engineering. During the 50 year history of the field, coordination has been approached in a great variety of ways, from meetings to process programming to models and methods of development to modular architectures.

The effectiveness of any approach seems to depend critically on a host of contextual factors.  This suggests an area desperately in need of a theory to provide a conceptual framework that will let us understand more deeply the problem of coordination and the impact of various solutions.

With students and colleagues, I have developed a theory of coordination and performed a number of empirical studies informed by this theory.  The theory, in sum, characterizes coordination as a distributed constraint satisfaction problem over engineering decisions that are distributed over people. Successful coordination happens when organizations execute an appropriate "social algorithm" that is "congruent" with the particular coordination problems by making decisions, communicating, and leaving visible work traces, without violating constraints.

This paper provides an overview of my work in this area.

Open Source Ecosystems

With the advent of transparent hosting environments like GitHub, GitLab, and Bitbucket, open source projects are now generally embedded in highly interconnected ecosystems connected through dependencies, collaboration, and complementary relationships. Managing breaking changes is a particular coordination challenge, and different ecosystems accomplish this in very different ways, as we observed in a multiple case study.

This project is more fully described on our breaking changes website, which also shows an interactive visualization of data from a survey of participants in 18 ecosystems about their values and practices around coordination.

Hackathons, Codefests, Sprints, Data Dives . .

Hackathons are everywhere. All of the major tech companies hold them, many scientific communities depend on them, and universities sponsor and organize them. They are thought to be a great tool for sparking innovation, for building communities, and for learning the realities of programming.

Yet it is not at all clear if hackathons have the desired result, or how to choose a point in the design space of hackathons that is most likely to achieve the particular results (innovation, community, learning) that the sponsors and participants want. We are observing a number of open source and scientific hackathons, as well as an internal hackathon in a large tech company (Microsoft's 18,000-participant One Week hackathon). We are also looking at related "community code engagements" that are not really hackathons, but serve some of the same purposes, e.g., Google's Summer of Code (GSoC).  Our papers include an examination of different ways of organizing hackathon teams, and brainstorming as a promising technique to make hackathons more friendly and satisfying to self-identified minority participants.

We have also helped to organize two workshops on hackathons, one at CSCW 2017, and another at CHI 2018.

James D. Herbsleb's bio page, ISR, SIC, SCS, CMU

© 2006-2018 James D. Herbsleb.
Site by ABWebworks.