In any sufficiently complex software system there are experts, having a deeper understanding of parts of the system than others. However, it is not always clear who these experts are and which particular parts of the system they can provide help with. We propose a framework to elicit the expertise of developers and recommend experts by analyzing complexity measures over time. Furthermore, teams can detect those parts of the software for which currently no, or only few experts exist and take preventive actions to keep the collective code knowledge and ownership high. We employed the developed approach at a medium-sized company. The results were evaluated with a survey, comparing the perceived and the computed expertise of developers. We show that aggregated code metrics can be used to identify experts for different software components. The identified experts were rated as acceptable candidates by developers in over 90 of all cases.
Code ownership describes the approach of assigning source code or entire software systems to their human owners. these models can range all the way from a single , managing all the code to , where responsibilities are shared amongst all developers @cite_20 .
@cite_20
2014329956
Solving the problem of failed project ownership is not merely a process of assigning developers to subsystems. This article describes four code ownership models, ranging from one individual owning an entire system to the collective ownership that is a core extreme programming practice. No single code ownership model is best. In fact, many projects would benefit from dynamically adjusting the ownership model over time as development progresses through, for example, the four phases of the unified process.