Comprehend and analyze knowledge networks to improve software evolution
Wednesday, February 18th, 2009My paper on how to use social network analysis to improve software evolution has been accepted by the Journal of Software Maintenance and Evolution. I have really worked hard for this paper but I am now satisfied with the outcome. I have to thank my colleagues at the Nokia Research Center and the reviewers that have pointed out the parts that needed more work.
I liked writing this paper, I hope you will enjoy the reading. You can download the paper here: Comprehend and analyze knowledge networks to improve software evolution.
The abstract:
When a set of people are connected by a set of social-meaningful relationships we talk of a social network. A social network represents a social structure and the underlying structural patterns can be used to analyze and comprehend how people relate to each other and their emergent behavior as a group. Developing software is fundamentally a human activity. Developers cooperate and exchange knowledge and information, creating in fact, a particular type of social network that we call knowledge network. In this paper we investigate knowledge networks in software development teams by applying social network analysis and we use the Apache web server as case study. By analyzing the structural communication and coordination patterns in Apache we have been able to identify the Apache knowledge network, highlight potential communication bottlenecks and find brokers and important coordination points in the software development team. Furthermore, our work enables a software architect to analyze and maintain the organization and the software architecture aligned during software evolution. An important lesson we have is that the analysis of knowledge networks constitutes an additional tool to be added to the traditional software architecture assessment methods.