7 research outputs found

    Situational factors for modern code review to support software engineers' sustainability

    Get PDF
    Software engineers working in Modern Code Review (MCR) are confronted with the issue of lack of competency in the identification of situational factors. MCR is a software engineering activity for the identification and fixation of defects before the delivery of the software product. This issue can be a threat to the individual sustainability of software engineers and it can be addressed by situational awareness. Therefore, the objective of the study is to identify situational factors concerning the MCR process. Systematic Literature Review (SLR) has been used to identify situational factors. Data coding along with continuous comparison and memoing procedures of grounded theory and expert review has been used to produce an exclusive and validated list of situational factors grouped under categories. The study results conveyed 23 situational factors that are grouped into 5 broad categories i.e. People, Organization, Technology, Source Code and Project. The study is valuable for researchers to extend the research and for software engineers to identify situations and sustain for longer

    Knowledge sharing factors for modern code review to minimize software engineering waste

    Get PDF
    Software engineering activities, for instance, Modern Code Review (MCR) produce quality software by identifying the defects from the code. It involves social coding and provides ample opportunities to share knowledge among MCR team members. However, the MCR team is confronted with the issue of waiting waste due to poor knowledge sharing among MCR team members. As a result, it delays the project delays and increases mental distress. To minimize the waiting waste, this study aims to identify knowledge sharing factors that impact knowledge sharing in MCR. The methodology employed for this study is a systematic literature review to identify knowledge sharing factors, data coding with continual comparison and memoing techniques of grounded theory to produce a unique and categorized list of factors influencing knowledge sharing. The identified factors were then assessed through expert panel for its naming, expressions, and categorization. The study finding reported 22 factors grouped into 5 broad categories i.e. Individual, Team, Social, Facility conditions, and Artifact. The study is useful for researchers to extend the research and for the MCR team to consider these factors to enhance knowledge sharing and to minimize waiting waste

    Code Reviewer Recommendations as a Multi-Objective Problem: Balancing Expertise, Availability and Collaborations

    Full text link
    Peer Reviewedhttp://deepblue.lib.umich.edu/bitstream/2027.42/156106/1/ASE_J_Multi_Objective_Code_Reviewer_assignment_FV__Copy_ (1).pdfSEL

    An empirical investigation of relevant changes and automation needs in modern code review

    Get PDF
    SUMMARY of the PAPER: This paper investigates the approaches and tools that, from a "developer's point of view", are still needed to facilitate Modern Code Review (MCR) activities. To that end, we empirically elicited a taxonomy of recurrent review change types that characterize MCR. This by (i) qualitatively and quantitatively analyzing review changes/commits of ten open-source projects; (ii) integrating MCR change types from existing taxonomies available from the literature; and (iii) surveying 52 developers to integrate eventually missing change types in the taxonomy. The results of our study highlight that the availability of new emerging development technologies (e.g., cloud-based technologies) and practices (e.g., continuous delivery) has pushed developers to perform additional activities during MCR and that additional types of feedback are expected by reviewers. Our participants provided also recommendations, specified techniques to employ, and highlighted the data to analyze for building recommender systems able to automate the code review activities composing our taxonomy. In summary, this study sheds some more light on the approaches and tools that are still needed to facilitate MCR activities, confirming the feasibility and usefulness of using summarization techniques during MCR activities. We believe that the results of our work represent an essential step for meeting the expectations of developers and supporting the vision of full or partial automation in MCR. REPLICATION PACKAGE: https://zenodo.org/record/3679402#.XxgSgy17Hxg PREPRINT: https://spanichella.github.io/img/EMSE-MCR-2020.pdfRecent research has shown that available tools for Modern Code Review (MCR) are still far from meeting the current expectations of developers. The objective of this paper is to investigate the approaches and tools that, from a developer's point of view, are still needed to facilitate MCR activities. To that end, we first empirically elicited a taxonomy of recurrent review change types that characterize MCR. The taxonomy was designed by performing three steps: (i) we generated an initial version of the taxonomy by qualitatively and quantitatively analyzing 211 review changes/commits and 648 review comments of ten open-source projects; then (ii) we integrated into this initial taxonomy, topics, and MCR change types of an existing taxonomy available from the literature; finally, (iii) we surveyed 52 developers to integrate eventually missing change types in the taxonomy. Results of our study highlight that the availability of new emerging development technologies (e.g., cloud-based technologies) and practices (e.g., continuous delivery) has pushed developers to perform additional activities during MCR and that additional types of feedback are expected by reviewers. Our participants provided recommendations, specified techniques to employ, and highlighted the data to analyze for building recommender systems able to automate the code review activities composing our taxonomy. We surveyed 14 additional participants (12 developers and 2 researchers), not involved in the previous survey, to qualitatively assess the relevance and completeness of the identified MCR change types as well as assess how critical and feasible to implement are some of the identified techniques to support MCR activities. Thus, with a study involving 21 additional developers, we qualitatively assess the feasibility and usefulness of leveraging natural language feedback (automation considered critical/feasible to implement) in supporting developers during MCR activities. In summary, this study sheds some more light on the approaches and tools that are still needed to facilitate MCR activities, confirming the feasibility and usefulness of using summarization techniques during MCR activities. We believe that the results of our work represent an essential step for meeting the expectations of developers and supporting the vision of full or partial automation in MC

    Recomendação de revisores de código no desenvolvimento distribuído de software

    Get PDF
    Code review is one of the main software defect mitigation techniques. Intrinsically collaborative, the process involves the analysis of source code modifications by technical peer in adherence to the guidelines of each repository. However, the efficiency of this approach is directly associated with choosing the appropriate technical peers to conduct the scrutiny. Especially in global software development, where members of the development team are geographically scattered with time and availability constraints and there are cultural and technical differences, choosing the reviewer becomes a complex task without the aid of computational tools. The aim of this paper is to present Gitrev, a tool that gathers reviewer recommendation methods for distributed software development that enhance collaboration in the review process. Taking into account the particularities of decentralised production processes, the proposed methods are based on historical interactions between developers, through the design of a collaborative network based on data from GitHub hosted open source repositories. The evaluation of the presented solution is a historic research based on the related literature and objective metrics of efficiency of the reviewers’ participation and instantiated on four major projects available on the platform. The results shows the recommended reviewers enhance interaction and collaboration among team members and adhere significantly to the objectives of the review process.A revisão de código é uma das principais técnicas de diminuição de defeitos de software. Intrinsecamente colaborativo, o processo envolve a análise das modificações no código fonte por um revisor, de acordo com as diretrizes de cada repositório. Contudo, a eficiência da técnica está diretamente associada à escolha dos pares técnicos adequados para realizar o escrutínio. Especialmente no Desenvolvimento Distribuído de Software (DDS), onde os membros da equipe de desenvolvimento estão espalhados geograficamente com restrições de horário e disponibilidade, além de diferenças culturais e técnicas, a escolha do revisor vira tarefa complexa sem auxílio de ferramentas computacionais. O objetivo do presente trabalho é apresentar o GitRev, uma plataforma que reúne diferentes métodos de recomendação de revisores para o desenvolvimento distribuído de software, potencializando a colaboração no processo de revisão. Levando em consideração as particularidades dos processos descentralizados de produção, são propostos métodos baseados nas interações históricas entre os desenvolvedores. Esta análise é realizada através da modelagem de uma rede social colaborativa tendo como base os dados oriundos dos repositórios open source hospedados no GitHub. Uma pesquisa histórica é conduzida para avaliar a solução apresentada, calcada na literatura relacionada e em métricas objetivas de eficiência da participação dos revisores e instanciado em quatro grandes projetos disponíveis na plataforma. Com os resultados obtidos, é possível observar que os revisores recomendados aumentam a interação e colaboração entre os envolvidos e aderem significativamente aos objetivos do processo de revisão
    corecore