Carnegie Mellon University

James Herbsleb

Dr. James Herbsleb

Chair and Professor

Address
5000 Forbes Avenue
Pittsburgh, PA 15213

Bio

James Herbsleb is a Professor in the Software and Societal Systems Department in the School of Computer Science at Carnegie Mellon University where he serves as the Department Chair. His research interests lie primarily in the intersection of software engineering, computer-supported cooperative work, and socio-technical systems, focusing on such areas as geographically distributed development teams and large-scale open source development. He holds a PhD in psychology, and an MS in computer science.  

His research has won several awards, including the ACM Outstanding Research Award (2016), Alan Newell Award for Research Excellence (2014), Most Influential Paper award (ICSE 2010), Honorable Mention for Most Influential Paper award (ICSE 2011),  ACM Distinguished Paper Award (ICSE 2011), Best Paper Award (Academy of Management, 2010), ACM Distinguished Paper Award (ESEM 2008), and Best Paper Award (CSCW 2006).  

For about two decades, he has worked with many extraordinary colleagues to try to understand the complex and dynamic relationship between human collaboration and the software that the humans are designing and using. On his optimistic days, he feels he has made a bit of progress. 

Research

Architecting Socio-Technical Ecosystems

Platform-based ecosystems are becoming engines of innovation in many technology domains.  From mobile devices to automotive systems to development tools, firms collaborating and competing with one another have rapidly developed and fielded an astounding variety of applications.

Such complex socio-technical systems have several key, highly-interrelated dimensions:

  • technical platforms that support straightforward integration of contributions from many participants, and allow easy configuration of systems from these components that meet the needs of particular users
  • collaborative infrastructure that may consist of tools such as mailing lists, wikis, and social networking platforms, in order to share essential technical, task, and social information
  • viable business opportunities that can attract resources in the dynamic and complex context of multi-sided markets, “co-opetition” (competing and complementing), and powerful network effects
  • a governance regime that allocates decision-making to different types of participants such as platform owners, vendors, users, service providers, and developers.  The regime must keep the ecosystem from splintering and exercise stewardship of common resources, yet provide openness and flexibility to foster innovation

We are examining the inter-relationships of these diminsions in a number of ecosystems, inluding open source distributions of the Department of Veteran's Affairs VistA electronic health records, as well as Eclipse, Apache, Mozilla, and Gnome.

Click here for relevant publications.

Coordination and the Limits of Modularity

Modularity -- designing a system as a set of components that interact in limited and well-understood ways, according to "design rules" -- has long been one of the central ideas in system design.  The fundamental goal of a modular design is to create a modular task structure so that teams can work relatively independently.

The dynamism of software projects severely limits the effectiveness of this approach.  Inevitably, requirements change or become known only gradually over time.  Designs change as unanticpated features are added.  Interfaces change as a product evolves.  For all these reasons, modularity as a solution for coordination in software has severe limits.

We have been addressing these issues:

  • developing and validating agorithms to automatically and dynamically compute coordination requirements, i.e., who must coordinate with whom to accomplish a task
  • building tools help developers and managers maintain awareness of the volatile coordination needs of a project
  • developing a theory of decision networks in which a modular decision structure is just a specific case among other structures that can be recognized and addressed
  • moving toward a concept of interface translucence, which presents targeted information about change and evolution in abstracted, aggregated, and filtered ways, avoiding information overload

Click here for relevant publications.

Sharing and Co-creation of Scientific Software

Science depends on software. From configuration and control of instruments, to statistical analysis, simulation and visualization, virtually every workflow that generates scientific results involves software.

In new research supported by an NSF VOSS award, we are examining existing practices of software development, co-creation and sharing in collaborative science.  With the support of domain scientists, we are examining several exemplary VOs that use the computational resources of the Open Science Grid.  These VOs assemble diverse stacks of software, some created in-house and others created through domain-specific or science-wide infrastructure projects.  We are exploring the software ecology of the Grid, beginning with software that runs on the grid and its architecture, and extending to understand where it came from and how and when sharing and co-creation happen.  We are also extending theories of architectural alignment to this domain, in order to deepen our understanding of socio-technical ecosystems and to provide practical insights on how scientific communities can most effectively produce the software on which their work depends.

Click here for relevant publications.