Social software engineering
Social software engineering allows us to study the structure and dynamics of socio-technical systems. On the one hand, we can extract the social structure of software developer teams, i.e., the producers, on the other hand we can analyse the structure of the software code, i.e., the product. Hence, we can address the relation between collaboration and productivity using very fine-grained data resolution.
Structure and dynamics of software systems
Typical modern software systems consist of hundreds or even thousands of interdependent modules or subsystems, which are working together in complex ways and which mutually depend on each others’ functionality. A proper understanding of the structure of such software systems, as well as of the evolution of these structures as their development progresses is fundamental for the design and management of secure, reliable and maintainable software. Naturally, such systems can be studied from a complex networks perspective, where functions, classes, or packages are represented by nodes and the interdependencies between them are modeled as links.
Collaboration in software developer teams
Open Source software is created by self-organized teams of developers. These teams are very dynamic as members join or leave, and individual productivity varies over time. Hence, the collaboration structure, the distribution of tasks and responsibilities in software development teams will positively or negatively affect the performance of the project. Analysing large-scale data sets with state-of-the-art methods from complex networks and machine learning, we can quantify the coordination effort within teams and their productivity dependent on team size.
Related Publications
Detecting and Optimising Team Interactions in Software Development
PLOS One - 2024

Locating Community Smells in Software Development Processes Using Higher-Order Network Centralities
Social Network Analysis and Mining - 2023

Big Data = Big Insights? Operationalising Brooks' Law in a Massive GitHub Data Set
2022 IEEE/ACM 44th International Conference on Software Engineering (ICSE) - 2022

The downside of heterogeneity: How established relations counteract systemic adaptivity in tasks assignments
Entropy, 23(12), 1677 - 2021

gambit - An Open Source Name Disambiguation Tool for Version Control Systems
2021 IEEE/ACM 18th International Conference on Mining Software Repositories (MSR) - 2021

Analysing time-stamped co-editing networks in software development teams using git2net
Empirical Software Engineering - 2021
git2net - An Open Source Package to Mine Time-Stamped Collaboration Networks from Large git Repositories
Proceedings of the 16th International Conference on Mining Software Repositories - 2019
From Aristotle to Ringelmann: A large-scale analysis of team productivity and coordination in Open Source Software projects
Empirical Software Engineering - 2016

A Complex Networks Perspective On Collaborative Software Engineering
ACS - Advances in Complex Systems - 2015

Social Network Analysis in the Enterprise: Challenges and Opportunities
Socioinformatics-The Social Impact of Interactions between Humans and IT - 2014

How do OSS projects change in number and size? A large-scale analysis to test a model of project growth
ACS - Advances in Complex Systems - 2014

Communication In Innovation Communities: An Analysis Of 100 Open Source Software Projects
ACS - Advances in Complex Systems - 2014

Automated Software Remodularization Based on Move Refactoring
13th International Conference on Modularity - 2014

The Role of Emotions in Contributors Activity: A Case Study of the Gentoo Community
IEEE Third International Conference on Cloud and Green Computing - 2013

The rise and fall of a central contributor: Dynamics of social organization and performance in the Gentoo community
CHASE/ICSE '13 Proceedings of the 6th International Workshop on Cooperative and Human Aspects of Software Engineering - 2013

Categorizing bugs with social networks: A case study on four open source software communities
ICSE '13 Proceedings of the 35th International Conference on Software Engineering - 2013

The Link between Dependency and Cochange: Empirical Evidence
IEEE Transactions on Software Engineering - 2012

The co-evolution of socio-technical structures in sustainable software development: Lessons from the open source software communities
34th International Conference on Software Engineering - 2012

Organic design of massively distributed systems: A complex networks perspective
Informatik Spektrum - 2012

Modularity, Dependence and Change
Advances in Complex Systems - 2012

A quantitative study of social organisation in open source software communities
In Proceedings of the 2012 Imperial College Computing Student Workshop - 2012

A network perspective on software modularity
Architecture of Computing Systems (ARCS) Workshops 2012 - 2012

Sustainable growth in complex networks
Europhysics Letters - 2011

A complementary view on the growth of directory trees
The European Physical Journal B - 2009

Software change dynamics: Evidence from 35 Java projects
Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering - 2009

Self-organization applied to dynamic network layout
International Journal of Modern Physics C - 2007
