In this paper we present a new perspective on the problem of complexity in software, using sound mathematical concepts from information theory such as Shannon’s Entropy [31]. We study the complexity of the development process by examining the logs of the source control repository for large software projects. We hypothesize that the process of developing code is a good indicator of the current and future problems in the code and the project. A complex process will have negative affects on its outcome, such as producing a complex system or delaying releases. We validate our work by studying the evolution of six large open source projects (three operating systems, a window manager, an office productivity suite, and a database).
Ahmed E. Hassan, Richard C. Holt