17 research outputs found

    Should I Bug You? Identifying Domain Experts in Software Projects Using Code Complexity Metrics

    Full text link
    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

    CVS-Vintage: A Dataset of 14 CVS Repositories of Java Software

    Get PDF
    This paper presents a dataset of 14 CVS repositories of Java applications. This dataset aims at supporting the replication of early papers in the field of software evolution and mining software repositories. By building this dataset, we saved some CVS repositories from a probable death by deletion

    Evaluating Process Quality Based on Change Request Data – An Empirical Study of the Eclipse Project

    Full text link
    Abstract. The information routinely collected in change request management systems contains valuable information for monitoring of the process quality. However this data is currently utilized in a very limited way. This paper presents an empirical study of the process quality in the product portfolio of the Eclipse project. It is based on a systematic approach for the evaluation of process quality characteristics using change request data. Results of the study offer insights into the development process of Eclipse. Moreover the study allows assessing applicability and limitations of the proposed approach for the evaluation of process quality

    Mitigating Turnover with Code Review Recommendation: Balancing Expertise, Workload, and Knowledge Distribution

    Get PDF
    Developer turnover is inevitable on software projects and leads to knowledge loss, a reduction in productivity, and an increase in defects. Mitigation strategies to deal with turnover tend to disrupt and increase workloads for developers. In this work, we suggest that through code review recommendation we can distribute knowledge and mitigate turnover with minimal impact on the development process. We evaluate review recommenders in the context of ensuring expertise during review, Expertise, reducing the review workload of the core team, CoreWorkload, and reducing the Files at Risk to turnover, FaR. We find that prior work that assigns reviewers based on file ownership concentrates knowledge on a small group of core developers increasing risk of knowledge loss from turnover by up to 65%. We propose learning and retention aware review recommenders that when combined are effective at reducing the risk of turnover by -29% but they unacceptably reduce the overall expertise during reviews by -26%. We develop the Sophia recommender that suggest experts when none of the files under review are hoarded by developers but distributes knowledge when files are at risk. In this way, we are able to simultaneously increase expertise during review with a ΔExpertise of 6%, with a negligible impact on workload of ΔCoreWorkload of 0.09%, and reduce the files at risk by ΔFaR -28%. Sophia is integrated into GitHub pull requests allowing developers to select an appropriate expert or “learner” based on the context of the review. We release the Sophia bot as well as the code and data for replication purposes

    Experts Recommender System Using Technical and Social Heuristics

    Get PDF
    Nowadays, successful cooperation and collaboration among developers is crucial to build successful projects in distributed software system development (DSSD). Assigning wrong developers to a specific task not only affects the performance of a component of this task but also affects other components since these projects are composed of dependent components. Another aspect that should be considered when teams are built is the social relationships between the members; disagreements between these members also affect the project team’s performance. These two aspects might cause a project’s failure or delay. Therefore, they are important to consider when teams are created. In this thesis, we developed an Expert Recommender System Framework (ERSF) that assists developers (Active Developers) to find experts who can help them complete or fix the bugs in the code at hand. The ERSF analyzes the developer technical expertise on similar code fragments to the one they need help on assuming that those who have worked on similar fragments might understand and help the Active Developer; also, it analyzes their social relationships with the Active Developer as well as their social activities within the DSSD. Our work is also concerned with improving the system performance and recommendations by tracking the developer communications through our ERSF in order to keep developer profiles up-to-date. Technical expertise and sociality are measured using a combination of technical and social heuristics. The recommender system was tested using scenarios derived from real software development data, and its recommendations compared favourably to recommendations that humans were asked to make in the same scenarios; also, they were compared to the recommendations of the NaiveBayes and other machine learning algorithms. Our experiment results show that ERSF can recommend experts with good to excellent accuracy

    Visual representation of bug report assignment recommendations

    Get PDF
    Software development projects typically use an issue tracking system where the project members and users can either report faults or request additional features. Each of these reports needs to be triaged to determine such things as the priority of the report or which developers should be assigned to resolve the report. To assist a triager with report assigning, an assignment recommender has been suggested as a means of improving the process. However, proposed assignment recommenders typically present a list of developer names, without an explanation of the rationale. This work focuses on providing visual explanations for bug report assignment recommendations. We examine the use of a supervised and unsupervised machine learning algorithm for the assignment recommendation from which we can provide recommendation rationale. We explore the use of three types of graphs for the presentation of the rationale and validate their use-cases and usability through a small user study

    On History-Aware Multi-Activity Expertise Models

    Get PDF
    Durant l’évolution d’un projet de logiciel, les contributions individuelles d’un developeur present dans le projet vont lentement se faire remplacer par les contributions d’autre dévelopeurs. Ceci engendrera l’érosion de l’empreinte des contributions de ce developeur. Bien que les connaissances de ce dévelopeur n’ont pas disparu du jour au lendemain, pour une personne externe au projet, l’expertise de ce developeur est devenue invisible. Grace à une étude empirique sur une periode de 5 années de developement de Linux, nous étudions le phénomène de l’érosion de l’expertise en créant un modèle bidimentionnel. La première dimention de notre modèle prend en compte les différentes activités entreprises par les membres de la communauté de développement de Linux, comme les contributions en termes de code, les contributions aux revues de code soumit par d’autre dévelopeurs, ou encore la soumission de code d’autres dévelopeurs en amont. La deuxiéme dimention de notre modèle prend en compte l’historique des contributions citées plus haut pour chaque dévelopeurs. En applicant ce modèle, nous decouvrons que, bien que les empreintes de contributions de certain dévelopeurs diminuent avec le temps, leurs expertise survit grace à leurs implications dans les divereses activités mentionées plus haut.----------ABSTRACT: As software evolves, a maintainer’s contributions will gradually vanish as they are being replaced by other developers’ code, resulting in a slow erosion of the maintainer’s footprint in the software project. Even though this maintainer’s knowledge of the file did not disappear overnight, to outsiders, the maintainer and her expertise have become invisible. Through an empirical study on 5 years of Linux development history, this paper analyses this phenomenon of expertise erosion by building a 2-dimensional model of maintainer expertise involving a range of maintainer activity data on more than one release. Using these models, we found that although many Linux maintainers’ own coding footprint has regressed over time, their expertise is perpetuated through involvement in other development activities such as patch reviews and committing upstream on behalf of other developers. Considering such activities over time further improves recommendation models

    Recommending expert developers using usage and implementation expertise

    Get PDF
    Knowing the expert developers of a software development project has great significance in large-scale and geographically distributed projects. However, finding these expert developers can be challenging, which becomes more complicated over time as the development team gets bigger and more distributed. This thesis presents an expert developer recommender system for methods, based on the usage expertise, implementation expertise, and the combination of both, for the developers of a software project. A developer acquires usage expertise on a method by calling or using it and implementation expertise by creating or modifying it. To determine the method expertise of the developers, we mine both the source code repository and the version histories of a software development project. We determine the accuracy of our system by calculating the percentage of successful recommendations within the Top-N results. Through several experiments, we found that our recommender system produces around 90% average accuracy for Top-10 recommendations.Natural Science and Engineering Research Council of Canada (NSERC
    corecore