Context: Serverless computing allows developers to create and deploy applications without the need to manage any underlying infrastructure, making it a more efficient and effective way to bring products to market. Serverless technology is gaining widespread adoption among many companies, becoming increasingly popular. However, the adoption of serverless technology brings with it several new challenges. Objective: To this end, we plan to gain a deep understanding of challenges and strategies, architectural issues and their causes, architectural patterns, antipatterns, migration towards serverless architecture, and state-of-the-art practices for vendor lock-in problems. Methodology: The research objective will be met through the use of an industrial empirical approach, including interviews, a case study, and a questionnaire survey. Possible outcomes: The expected outcomes would be (i) a multivocal literature review on design areas of serverless architecture (ii) an evidence-based framework for synthesizing serverless architectural challenges/solutions (iii) a decision-making process for migrating to serverless architecture (iv) a decision-making framework for selecting vendor platform.
{"title":"Software Architecture Design of a Serverless System","authors":"Muhammad Hamza","doi":"10.1145/3593434.3593471","DOIUrl":"https://doi.org/10.1145/3593434.3593471","url":null,"abstract":"Context: Serverless computing allows developers to create and deploy applications without the need to manage any underlying infrastructure, making it a more efficient and effective way to bring products to market. Serverless technology is gaining widespread adoption among many companies, becoming increasingly popular. However, the adoption of serverless technology brings with it several new challenges. Objective: To this end, we plan to gain a deep understanding of challenges and strategies, architectural issues and their causes, architectural patterns, antipatterns, migration towards serverless architecture, and state-of-the-art practices for vendor lock-in problems. Methodology: The research objective will be met through the use of an industrial empirical approach, including interviews, a case study, and a questionnaire survey. Possible outcomes: The expected outcomes would be (i) a multivocal literature review on design areas of serverless architecture (ii) an evidence-based framework for synthesizing serverless architectural challenges/solutions (iii) a decision-making process for migrating to serverless architecture (iv) a decision-making framework for selecting vendor platform.","PeriodicalId":178596,"journal":{"name":"Proceedings of the 27th International Conference on Evaluation and Assessment in Software Engineering","volume":"22 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-06-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123919502","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Ethics are essential in DevOps for promoting transparency, trust, security, quality, continuous improvement, and user-centricity, as they guide individuals and organizations to make responsible choices and develop high-quality, secure, and reliable software applications. To consider the ethics of the DevOps teams, there is a need to develop standards and a code of conduct. The objective of this research work is to develop robust guidelines to assist software development organizations to consider ethics in the DevOps teams. The empirical study will be performed with industry practitioners, and legislation experts to explore the important areas and practices that need to be followed by the software organizations' work ethics for the DevOps teams. We believe the developed robust guidelines will assist the organization to follow the work ethics while working in a DevOps culture.
{"title":"Understandings of Ethics in DevOps Teams: A Preliminary Investigation","authors":"Maira Khanam, S. Rafi, M. Akbar","doi":"10.1145/3593434.3594235","DOIUrl":"https://doi.org/10.1145/3593434.3594235","url":null,"abstract":"Ethics are essential in DevOps for promoting transparency, trust, security, quality, continuous improvement, and user-centricity, as they guide individuals and organizations to make responsible choices and develop high-quality, secure, and reliable software applications. To consider the ethics of the DevOps teams, there is a need to develop standards and a code of conduct. The objective of this research work is to develop robust guidelines to assist software development organizations to consider ethics in the DevOps teams. The empirical study will be performed with industry practitioners, and legislation experts to explore the important areas and practices that need to be followed by the software organizations' work ethics for the DevOps teams. We believe the developed robust guidelines will assist the organization to follow the work ethics while working in a DevOps culture.","PeriodicalId":178596,"journal":{"name":"Proceedings of the 27th International Conference on Evaluation and Assessment in Software Engineering","volume":"55 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-06-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121348050","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Sidra Ramzan, Saif Ur Rehman Khan, Shahid Hussain, Wen-li Wang, M. Tang
DevOps is a software development approach that emphasize collaboration, communication and integration between development and operation teams to improve the speed and efficiency of software delivery. DevOps aims to automate and streamline the software development and deployment process. Nevertheless, when a software organization adopts DevOps, several challenges on infrastructure management, limited agility, scalability, increased cost, inconsistent environment, and security risks are faced. A solution is to adopt DevOps and Cloud together, but the integration requires advice because implementing new approaches for development and operations at the same time is also a challenge. The aim of this study is to identify and categorize success factors that positively influence the adoption of DevOps and Cloud in software organization and propose an integrated framework for factors of both dimensions. A systematic literature review (SLR) was conducted to collect the primary studies related to both fields for analysis. After the SLR, 40 success factors related to DevOps and Cloud are collected. These identified factors are further categorized into Technical, Organizational, and Social & Culture areas. The proposed framework can help practitioners and researchers to concentrate on the crucial areas that are essential for the successful adoption of DevOps and Cloud.
{"title":"Identification of Influential Factors for Successful Adoption of DevOps and Cloud","authors":"Sidra Ramzan, Saif Ur Rehman Khan, Shahid Hussain, Wen-li Wang, M. Tang","doi":"10.1145/3593434.3594239","DOIUrl":"https://doi.org/10.1145/3593434.3594239","url":null,"abstract":"DevOps is a software development approach that emphasize collaboration, communication and integration between development and operation teams to improve the speed and efficiency of software delivery. DevOps aims to automate and streamline the software development and deployment process. Nevertheless, when a software organization adopts DevOps, several challenges on infrastructure management, limited agility, scalability, increased cost, inconsistent environment, and security risks are faced. A solution is to adopt DevOps and Cloud together, but the integration requires advice because implementing new approaches for development and operations at the same time is also a challenge. The aim of this study is to identify and categorize success factors that positively influence the adoption of DevOps and Cloud in software organization and propose an integrated framework for factors of both dimensions. A systematic literature review (SLR) was conducted to collect the primary studies related to both fields for analysis. After the SLR, 40 success factors related to DevOps and Cloud are collected. These identified factors are further categorized into Technical, Organizational, and Social & Culture areas. The proposed framework can help practitioners and researchers to concentrate on the crucial areas that are essential for the successful adoption of DevOps and Cloud.","PeriodicalId":178596,"journal":{"name":"Proceedings of the 27th International Conference on Evaluation and Assessment in Software Engineering","volume":"124 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-06-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133133955","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Judith Perera, E. Tempero, Yu-Cheng Tu, Kelly Blincoe
Making sub-optimal design decisions during software development leads to the accumulation of Technical Debt (TD) in software projects. There are tools to identify TD Items in software code through static code analysis. However, quantifying TD to support decision-making on whether to keep taking on TD or if it is time to refactor TD is a difficult task, and proposed approaches for this still lack consensus. Prior work observed that TD Interest could be further decomposed into constituents ‘New Code Cost’ and ‘Rework Cost’, which gives an interesting direction of research to explore TD quantification in terms of these costs. Therefore, through our empirical study, we plan to explore the relationship between TD, New Code Cost and Rework Cost in Open-Source Software Projects. This paper reports on an initial motivating study, our plan for future work and implications for researchers.
{"title":"Understanding the relationship between Technical Debt, New Code Cost and Rework Cost in Open-Source Software Projects: An Empirical Study","authors":"Judith Perera, E. Tempero, Yu-Cheng Tu, Kelly Blincoe","doi":"10.1145/3593434.3593490","DOIUrl":"https://doi.org/10.1145/3593434.3593490","url":null,"abstract":"Making sub-optimal design decisions during software development leads to the accumulation of Technical Debt (TD) in software projects. There are tools to identify TD Items in software code through static code analysis. However, quantifying TD to support decision-making on whether to keep taking on TD or if it is time to refactor TD is a difficult task, and proposed approaches for this still lack consensus. Prior work observed that TD Interest could be further decomposed into constituents ‘New Code Cost’ and ‘Rework Cost’, which gives an interesting direction of research to explore TD quantification in terms of these costs. Therefore, through our empirical study, we plan to explore the relationship between TD, New Code Cost and Rework Cost in Open-Source Software Projects. This paper reports on an initial motivating study, our plan for future work and implications for researchers.","PeriodicalId":178596,"journal":{"name":"Proceedings of the 27th International Conference on Evaluation and Assessment in Software Engineering","volume":"9 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-06-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134193253","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pair Programming (PP) is an Agile software development methodology that involves two developers working together on a single computer. However, the physical presence of two developers has become a challenge in recent years due to the pandemic, necessitating remote collaboration methods such as Distributed Pair Programming (DPP). DPP has been found to have similar benefits to in-person PP, but the issue of team compatibility remains unresolved. These are more evident in the educational field of Agile methodologies. To address these challenges, we developed a novel approach by creating a Mixed Reality (MR) application that enables users to learn PP with the assistance of a conversational intelligent virtual avatar. The application uses the HoloLens MR device and a Conversational Agent (CA) extension integrated into Visual Studio Code to provide suggestions for improving the code written by the user. The virtual avatar animates these suggestions, making it appear to speak and interact with the user in real time. This system aims to overcome the limitations of common DPP methods, allowing a single developer to learn and apply the PP methodology even when a human partner is unavailable.
结对编程(PP)是一种敏捷软件开发方法,涉及两个开发人员在一台计算机上一起工作。然而,近年来,由于流行病的流行,两个开发人员的实际存在已经成为一个挑战,需要分布式结对编程(DPP)等远程协作方法。DPP已经被发现与面对面的PP有相似的好处,但是团队兼容性的问题仍然没有解决。这一点在敏捷方法论的教育领域更为明显。为了应对这些挑战,我们开发了一种新颖的方法,即创建一个混合现实(MR)应用程序,使用户能够在会话智能虚拟化身的帮助下学习PP。该应用程序使用HoloLens MR设备和集成到Visual Studio Code中的对话代理(CA)扩展,为改进用户编写的代码提供建议。虚拟化身使这些建议栩栩如生,使其看起来像是在说话,并与用户实时互动。该系统旨在克服常见的DPP方法的局限性,即使在没有人类合作伙伴的情况下,也允许单个开发人员学习和应用PP方法。
{"title":"A Mixed Reality Approach for Innovative Pair Programming Education with a Conversational AI Virtual Avatar","authors":"Gilda Manfredi, U. Erra, Gabriele Gilio","doi":"10.1145/3593434.3593952","DOIUrl":"https://doi.org/10.1145/3593434.3593952","url":null,"abstract":"Pair Programming (PP) is an Agile software development methodology that involves two developers working together on a single computer. However, the physical presence of two developers has become a challenge in recent years due to the pandemic, necessitating remote collaboration methods such as Distributed Pair Programming (DPP). DPP has been found to have similar benefits to in-person PP, but the issue of team compatibility remains unresolved. These are more evident in the educational field of Agile methodologies. To address these challenges, we developed a novel approach by creating a Mixed Reality (MR) application that enables users to learn PP with the assistance of a conversational intelligent virtual avatar. The application uses the HoloLens MR device and a Conversational Agent (CA) extension integrated into Visual Studio Code to provide suggestions for improving the code written by the user. The virtual avatar animates these suggestions, making it appear to speak and interact with the user in real time. This system aims to overcome the limitations of common DPP methods, allowing a single developer to learn and apply the PP methodology even when a human partner is unavailable.","PeriodicalId":178596,"journal":{"name":"Proceedings of the 27th International Conference on Evaluation and Assessment in Software Engineering","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-06-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130874879","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Agile software development is a methodology for creating software that prioritizes flexibility, collaboration, and iterative development. It emphasizes the rapid delivery of working software, with regular feedback and adaptation to changing requirements. This dissertation aimed to identify the challenges in the requirement gathering process for agile software development and propose solutions to aid the software industry in streamlining the development process. A multi-vocal literature review was conducted, and the challenges were identified. The findings showed that coordination is the most critical category, indicating that management should focus on researching related elements to achieve successful RE adoption in an agile environment. This study's findings provide a valuable reference for organizations and practitioners to address the challenges of the requirement gathering process in agile software development.
{"title":"Challenges in Requirements Gathering for Agile Software Development","authors":"Ramya Sri Simhadri, Mohammad Shameem","doi":"10.1145/3593434.3594237","DOIUrl":"https://doi.org/10.1145/3593434.3594237","url":null,"abstract":"Agile software development is a methodology for creating software that prioritizes flexibility, collaboration, and iterative development. It emphasizes the rapid delivery of working software, with regular feedback and adaptation to changing requirements. This dissertation aimed to identify the challenges in the requirement gathering process for agile software development and propose solutions to aid the software industry in streamlining the development process. A multi-vocal literature review was conducted, and the challenges were identified. The findings showed that coordination is the most critical category, indicating that management should focus on researching related elements to achieve successful RE adoption in an agile environment. This study's findings provide a valuable reference for organizations and practitioners to address the challenges of the requirement gathering process in agile software development.","PeriodicalId":178596,"journal":{"name":"Proceedings of the 27th International Conference on Evaluation and Assessment in Software Engineering","volume":"8 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-06-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134267834","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
The exponential increase in smartphone usage has fueled the rapid growth of Android applications (apps). Unfortunately, this growth has also resulted in an alarming rise in security vulnerabilities, posing a significant challenge for developers of smartphone apps. In this paper, we conducted a quantitative and qualitative study to analyze security-related issues in open-source Android apps available on GitHub. Our study included a total set of 689 security-related commits identified from 111,224 commits distributed over 2,187 apps. We proposed a taxonomy of ten distinct categories of security issues, which we identified using the card-sorting technique. Our findings showed that Permission issues were the most prevalent in our dataset (370, 53.7%), followed by Login issues (160, 23.22%). Issues such as Privacy (5, 0.72%) and Framework (3, 0.43%) were rare in our dataset. These preliminary findings serve as an initial step towards comprehending the primary security concerns from the perspective of both developers and researchers.
{"title":"Investigation of Security-related Commits in Android Apps","authors":"Teerath Das, Adam Ali, T. Mikkonen","doi":"10.1145/3593434.3593437","DOIUrl":"https://doi.org/10.1145/3593434.3593437","url":null,"abstract":"The exponential increase in smartphone usage has fueled the rapid growth of Android applications (apps). Unfortunately, this growth has also resulted in an alarming rise in security vulnerabilities, posing a significant challenge for developers of smartphone apps. In this paper, we conducted a quantitative and qualitative study to analyze security-related issues in open-source Android apps available on GitHub. Our study included a total set of 689 security-related commits identified from 111,224 commits distributed over 2,187 apps. We proposed a taxonomy of ten distinct categories of security issues, which we identified using the card-sorting technique. Our findings showed that Permission issues were the most prevalent in our dataset (370, 53.7%), followed by Login issues (160, 23.22%). Issues such as Privacy (5, 0.72%) and Framework (3, 0.43%) were rare in our dataset. These preliminary findings serve as an initial step towards comprehending the primary security concerns from the perspective of both developers and researchers.","PeriodicalId":178596,"journal":{"name":"Proceedings of the 27th International Conference on Evaluation and Assessment in Software Engineering","volume":"84 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-06-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115725111","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pawan Kumar Sarika, Deepika Badampudi, Sai Prashanth Josyula, Muhammad Usman
Kubernetes is a free, open-source container orchestration system for deploying and managing Docker containers that host microservices. Kubernetes cluster logs help in determining the reason for the failure. However, as systems become more complex, identifying failure reasons manually becomes more difficult and time-consuming. This study aims to identify effective and efficient classification algorithms to automatically determine the failure reason. We compare five classification algorithms, Support Vector Machines, K-Nearest Neighbors, Random Forest, Gradient Boosting Classifier, and Multilayer Perceptron. Our results indicate that Random Forest produces good accuracy while requiring fewer computational resources than other algorithms.
{"title":"Automating Microservices Test Failure Analysis using Kubernetes Cluster Logs","authors":"Pawan Kumar Sarika, Deepika Badampudi, Sai Prashanth Josyula, Muhammad Usman","doi":"10.1145/3593434.3593472","DOIUrl":"https://doi.org/10.1145/3593434.3593472","url":null,"abstract":"Kubernetes is a free, open-source container orchestration system for deploying and managing Docker containers that host microservices. Kubernetes cluster logs help in determining the reason for the failure. However, as systems become more complex, identifying failure reasons manually becomes more difficult and time-consuming. This study aims to identify effective and efficient classification algorithms to automatically determine the failure reason. We compare five classification algorithms, Support Vector Machines, K-Nearest Neighbors, Random Forest, Gradient Boosting Classifier, and Multilayer Perceptron. Our results indicate that Random Forest produces good accuracy while requiring fewer computational resources than other algorithms.","PeriodicalId":178596,"journal":{"name":"Proceedings of the 27th International Conference on Evaluation and Assessment in Software Engineering","volume":"39 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-06-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126722073","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
With the recent advent of artificially intelligent pairing partners in software engineering, it is interesting to renew the study of the psychology of pairing. Pair programming provides an attractive way of teaching software engineering to university students. Its study can also lead to a better understanding of the needs of professional software engineers in various programming roles and for the improvement of the concurrent pairing software. [Objective] This preliminary study aimed to gain quantitative and qualitative insights into pair programming, especially students’ attitudes towards its specific roles and what they require from the pairing partners. The research's goal is to use the findings to design further studies on pairing with artificial intelligence. [Method] Using a mixed-methods and experimental approach, we distinguished the effects of the pilot, navigator, and solo roles on (N = 35) students’ intrinsic motivation. Four experimental sessions produced a rich data corpus in two software engineering university classrooms. It was quantitatively investigated using the Shapiro-Wilk normality test and one-way analysis of variance (ANOVA) to confirm the relations and significance of variations in mean intrinsic motivation in different roles. Consequently, seven semi-structured interviews were conducted with the experiment's participants. The qualitative data excerpts were subjected to the thematic analysis method in an essentialist way. [Results] The systematic coding interview transcripts elucidated the research topic by producing seven themes for understanding the psychological aspects of pair programming and for its improvement in university classrooms. Statistical analysis of 612 self-reported intrinsic motivation inventories confirmed that students find programming in pilot-navigator roles more interesting and enjoyable than programming simultaneously. [Conclusion] The executed experimental settings are viable for inspecting the associations between students’ attitudes and the distributed cognition practice. The preliminary results illuminate the psychological aspects of the pilot-navigator roles and reveal many areas for improvement. The results also provide a strong basis for conducting further studies with the same design involving the big five personality and intrinsic motivation on using artificial intelligence in pairing and to allow comparison of those results with results of pairing with human partners.
{"title":"Psychological Aspects of Pair Programming: A Mixed-methods Experimental Study","authors":"Marcel Valový","doi":"10.1145/3593434.3593458","DOIUrl":"https://doi.org/10.1145/3593434.3593458","url":null,"abstract":"With the recent advent of artificially intelligent pairing partners in software engineering, it is interesting to renew the study of the psychology of pairing. Pair programming provides an attractive way of teaching software engineering to university students. Its study can also lead to a better understanding of the needs of professional software engineers in various programming roles and for the improvement of the concurrent pairing software. [Objective] This preliminary study aimed to gain quantitative and qualitative insights into pair programming, especially students’ attitudes towards its specific roles and what they require from the pairing partners. The research's goal is to use the findings to design further studies on pairing with artificial intelligence. [Method] Using a mixed-methods and experimental approach, we distinguished the effects of the pilot, navigator, and solo roles on (N = 35) students’ intrinsic motivation. Four experimental sessions produced a rich data corpus in two software engineering university classrooms. It was quantitatively investigated using the Shapiro-Wilk normality test and one-way analysis of variance (ANOVA) to confirm the relations and significance of variations in mean intrinsic motivation in different roles. Consequently, seven semi-structured interviews were conducted with the experiment's participants. The qualitative data excerpts were subjected to the thematic analysis method in an essentialist way. [Results] The systematic coding interview transcripts elucidated the research topic by producing seven themes for understanding the psychological aspects of pair programming and for its improvement in university classrooms. Statistical analysis of 612 self-reported intrinsic motivation inventories confirmed that students find programming in pilot-navigator roles more interesting and enjoyable than programming simultaneously. [Conclusion] The executed experimental settings are viable for inspecting the associations between students’ attitudes and the distributed cognition practice. The preliminary results illuminate the psychological aspects of the pilot-navigator roles and reveal many areas for improvement. The results also provide a strong basis for conducting further studies with the same design involving the big five personality and intrinsic motivation on using artificial intelligence in pairing and to allow comparison of those results with results of pairing with human partners.","PeriodicalId":178596,"journal":{"name":"Proceedings of the 27th International Conference on Evaluation and Assessment in Software Engineering","volume":"52 33","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-06-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"120887137","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
F. Bagirov, P. Derakhshanfar, Alexey Kalina, Elena Kartysheva, V. Kovalenko
Popular modern code review tools (e.g., Gerrit and GitHub) sort files in a code review in alphabetical order. A prior study (on open-source projects) shows that the changed files’ positions in the code review affect the review process. Their results show that files placed lower in the order have less chance of receiving reviewing efforts than the other files. Hence, there is a higher chance of missing defects in these files. This paper explores the impact of file order in the code review of the well-known industrial project IntelliJ IDEA. First, we verify the results of the prior study on a big proprietary software project. Then, we explore an alternative to the default Alphabetical order: ordering changed files according to their code diff. Our results confirm the observations of the previous study. We discover that reviewers leave more comments on the files shown higher in the code review. Moreover, these results show that, even with the data skewed toward Alphabetical order, ordering changed files according to their code diff performs better than standard Alphabetical order regarding placing problematic files, which needs more reviewing effort, in the code review. These results confirm that exploring various ordering strategies for code review needs more exploration.
{"title":"Assessing the Impact of File Ordering Strategies on Code Review Process","authors":"F. Bagirov, P. Derakhshanfar, Alexey Kalina, Elena Kartysheva, V. Kovalenko","doi":"10.1145/3593434.3593462","DOIUrl":"https://doi.org/10.1145/3593434.3593462","url":null,"abstract":"Popular modern code review tools (e.g., Gerrit and GitHub) sort files in a code review in alphabetical order. A prior study (on open-source projects) shows that the changed files’ positions in the code review affect the review process. Their results show that files placed lower in the order have less chance of receiving reviewing efforts than the other files. Hence, there is a higher chance of missing defects in these files. This paper explores the impact of file order in the code review of the well-known industrial project IntelliJ IDEA. First, we verify the results of the prior study on a big proprietary software project. Then, we explore an alternative to the default Alphabetical order: ordering changed files according to their code diff. Our results confirm the observations of the previous study. We discover that reviewers leave more comments on the files shown higher in the code review. Moreover, these results show that, even with the data skewed toward Alphabetical order, ordering changed files according to their code diff performs better than standard Alphabetical order regarding placing problematic files, which needs more reviewing effort, in the code review. These results confirm that exploring various ordering strategies for code review needs more exploration.","PeriodicalId":178596,"journal":{"name":"Proceedings of the 27th International Conference on Evaluation and Assessment in Software Engineering","volume":"32 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-06-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130145582","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}