Foundations and Implications of Socio-Technical Congruence in Large-Scale, Decentralized, and Distributed Software Projects (Congruence)

Project Description

Software projects are among the most complex systems created and maintained by humans. A large-scale software project today comprises often thousands of software artifacts with millions of lines of source code, documentation, specification, build scripts, and so on. Typically, many individuals, such as developers, testers, architects, and maintainers, are involved in the process of development and evolution, often spread all over the world. A key challenge is to identify factors for determining the state of a project and for judging whether the project meets the project goals in the past, at present, or in the future.

Two factors contribute to the complexity of a software project and thus influence the project's state. First, the set of technical artifacts (e.g., code, models, documentation) and their mutual dependencies and interactions are a key complexity factor, henceforth called the technical system. Second, the sum of coordination requirements and efforts of the protagonists involved contribute to the complexity of a software project, henceforth called the social system. Beside the inherent complexities of the technical and the social system, the two systems interact (e.g., developers edit files and files are owned by developers), and this interaction contributes to the overall complexity.

The overarching goal of Congruence is to develop and evaluate the two-systems view as a novel, holistic approach of software-project analysis and evolution. We will systematically explore the space and patterns of interactions that arise between the social and the technical system of a software project and operationalizations thereof that give rise to useful insights for developers and maintainers. Our key hypothesis is that socio-technical patterns are related to desired or undesired project states, and their identification can therefore guide project analysis, management, and evolution. To this end, we aim at developing a systematic and general methodology of how to measure (the kind or degree of) socio-technical congruence as well as an epistemic base of knowledge and quantitative, causal theory on how to elicit and maintain socio-technical congruence in large-scale, decentralized, and distributed software projects. Beside fundamental insights, we will keep the practical application in sight. We aim at informing and driving the development of methods that directly help individual developers and teams of developers to improve their everyday work.

Publications (copyright notice)

Copyright Notice: This material is presented to ensure timely dissemination of scholarly and technical work. Copyright and all rights therein are retained by authors or by other copyright holders. All persons copying this information are expected to adhere to the terms and constraints invoked by each author's copyright. In most cases, these publications may not be reposted without the explicit permission of the copyright holder.

Funding

Congruence is funded by the German Research Foundation (DFG), under contract AP 206/14-1; the funding period is from 2020 to 2023.

Contact

Congruence is a research project at the Chair of Software Engineering at Saarland University. The project members are: