Situational Modern Code Review Framework to Support Individual Sustainability of Software Engineers

Modern Code Review (MCR) is a socio-technical practice to improve source code quality and ensure successful software development. It involves the interaction of software engineers from different cultures and backgrounds. As a result, a variety of unknown situational factors arise that impact the individual sustainability of MCR team members and affect their productivity by causing mental distress, fear of unknown and varying situations. Therefore, the MCR team needs to be aware of the accurate situational factors, however, they are confronted with the issue of lack of competency in the identification of situational factors. This study aims to conduct the Delphi survey to investigate the optimal and well-balanced MCR-related situational factors. The conducted survey also aimed to recognize and prioritize the most influencing situational factors for MCR activities. The study findings reported 21 situational factors, 147 sub-factors, and 5 Categories. Based on the results of the Delphi survey the identified situational factors are transformed into the situational MCR framework. This study might be helpful to support the individual sustainability of the MCR team by making them aware of the situations that can occur and vary during the execution of the MCR process. This research might also help the MCR team to improve their productivity and sustain in the industry for longer. It can also support software researchers who want to contribute to situational software engineering from varying software engineering contexts. Keywords—Situations; situational factors; Modern Code Review (MCR); sustainable software engineer; situational software engineering


I. INTRODUCTION
Software development paradigm shift from conventional to more, complex, and sustainable software [1] demands better software engineering techniques and practices. Software methods that can effectively manage software engineering activities, operations, and maintenance are needed [2]. In the modern age of software development situation-aware software development is highly desirable. Situation-aware software engineering also known as situational software engineering [3] allows software engineers to deal with known situations instead of being unproductive with unknown situations. These situations have a strong influence on the individual sustainability of software engineers as well as on successful software development. In the literature, these situations are termed as "situational factors".
Individual sustainability is one of the core dimensions of sustainable software engineering [4] that refers to psychological well-being, self-respect, and the sustainability of software engineers [5], [6] in the industry. It is argued that individual sustainability of software engineers can be ensured by situational software engineering [5] that can help the software engineers to deal with varying and unknown situations [7]. Situational software engineering by identifying the situational factors [1] boosts the confidence, competence, and productivity of the software engineers.
It is contended that effort has been contributed regarding situational factor identification for software development generally [8] and specifically software requirement engineering [9], [10], [11], however, other software engineering activities need further insight. Presently, the software engineers engaged in Modern Code Review (MCR) are facing the issue of lack of competency in the identification of situational factors [12], [13], [14], [15]. Fig 1. MCR Overview [19]. 366 | P a g e www.ijacsa.thesai.org MCR is a significant light weight [16], [17] software engineering activity. In MCR [18], [19] the reviewer reviews the source code submitted by the author, identifies the issues and provide feedback to the author for source code improvement. The author then performs changes according to the feedback of the reviewer and again submit the source code for review. The reviewed cycle continues till the source code is approved by the reviewer. After the approval, the source code is added to the repository. MCR process is executed with the support of review tools [16], [18], [20] such as Code Flow and Gerrit. The MCR process overview is given in Fig. 1.
Though the existing research [8], [9], [10], [11], [21] has provided attention to situational software engineering by identifying situational factors, however, the existing research has discussed the situational factors' identification for software development generally and specifically for requirement engineering. There are fewer considerations regarding the exploration of situational context for MCR activities to help software engineers' engaged in MCR activities to sustain in the industry for longer [12], [13], [22] lack of such research can cause mental distress of software engineers and ultimately failure of software [6], [12].
No, systematized investigations are available that comprehensively report the situational factors in the context of MCR. Hence, there is a need to recognize situational factors [14], [22] and to develop a comprehensive situational MCR framework to address the issue of lack of competency in the identification of situational factors, to support the individual sustainability of software engineers, and for successful software development.
Therefore, this study aims to conduct the Delphi survey to finalize the list of situational MCR factors, sub-factors, and categories for their practicality, naming, grouping, and subgrouping. Delphi survey also aimed to identify and prioritize the most influential situational factors for MCR activities. The results obtained after the Delphi survey are used to develop the situational MCR framework to support the individual sustainability of software engineers engaged in MCR activities. This study is an extension of our previous research that is Systematic Literature Review (SLR), to identify the situational factors from literature and expert review to evaluate by the experts the list of situational factors obtained as a result of SLR. The results of SLR and expert review are presented in [13], [23], [24].
The paper is organized as Section II delivers the literature review. Section III highlights the details regarding the methodology employed to conduct the research. In Section IV Delphi survey results are presented. The research discussion is provided in Section V. Sections VI and VII provides the conclusion and work opportunities in the future. The research contributions are highlighted in Section VIII.

II. LITERATURE REVIEW
Over the past 10 years, the trend of situational software engineering has been observed to successfully develop software projects. The situational context in software engineering was explored by numerous researchers over the last decade. Researchers have highlighted the importance of situational factor identification in the context of requirement management. It is conveyed that situational factors such as varying business needs, communication channels, project stakeholders, and technologies influence the requirement management [25].
Moreover, a comprehensive situational framework for the software development process has been introduced by [8]. They followed SLR and data coding procedures of grounded theory to identify the situational factors. According to their investigations team size, culture, task complexity, organization structure, and customer satisfaction are the situational factors that affect the software development and sustainability of engineers. Likewise, situational factors for the requirement engineering process have been explored by [21]. They followed SLR, data coding based on grounded theory to identify situational factors. They argued that management awareness, project characteristics, requirement estimation, and requirement understanding are the situational factors that create an impediment for the requirement engineer to perform requirement engineering activities. It is also argued by [26] that situational factors such as organization size, management, and people impact project success.

Modern code Review
Reported 'Confusion' situational factor 367 | P a g e www.ijacsa.thesai.org Additionally, it is reported that situational factors make it difficult to harmonize software development process activities, therefore the researchers should explore the situational factors for software engineering activities to avoid software failures [3]. Similarly, the impact of situational factors such as team size, culture, productivity, commitment, skills, turnover, experience, developer profile on the software development process has been analyzed by [1]. It is contended that software development is highly dependent on situational factors. Likewise, situational context concerning requirement engineering has been explored by [11]. They have identified situational factors such as organization, distance, knowledge management, trust, stakeholder, project, tools and technology, national culture, and physical factors.
Little effort has also been provided concerning situational factors identification in MCR. The recent effort provided by [27], they highlighted the situational factor 'Confusion' in code review. They argued that confusion is an integral part of human problem-solving, which normally arises from the information. They stated that this situational factor causes a decrease in confidence, abandonment of the project, and negative emotions. Likewise, [28] explored situational factors such as source code change size, number of the reviewer, number of comments on the change, distance, social interactions, and review subject can impact the review process outcome. Similarly, [29] argued that the merge type situation has a noteworthy effect on peer review merge time. Table I shows the comparison of the state-of-the-art of situational software engineering research.
From the literature, it is observed that effort has been provided concerning the situational context in software development. It is also analyzed from the literature that three frameworks on situational factors are presented by researchers. One of them focused on the software development process [8], though this framework is the foundation for the research concerning situational factors identification, however it discussed the situational factors' identification for software development generally. Two of them focused on requirement engineering [11], [21].
There is a gap in the literature regarding situational factors' identification for MCR. As a result, there is an unavailability of situational guidelines and frameworks for MCR to aid software engineers to enhance their competency in the recognition of situational factors for MCR activities. To fill this gap this study focused on situational factors' identification in the context of MCR as the MCR team members are facing the individual sustainability challenge of situational factors identification [12], [13], [14], [15]. Besides this, the research aimed to prioritize the most influencing situational factors for MCR activities. The study also aimed to provide a comprehensive Situational MCR framework to support the sustainability of software engineers engaged in MCR activities.

III. RESEARCH METHODOLOGY
This study conducted a Delphi survey to come up with a unique and validated list of situational factors for MCR, as well as the prioritized list of most influencing situational factors for MCR activities. This study is the extension of our previous research work that involves SLR, [23], [24] and expert review [13]. The research methodologies are discussed in the following sub-sections. The research procedure is summarized in Fig. 2.

A. Systematic Litearture Review (SLR)
SLR has been performed to identify the initial list of situational factors from the literature. The guideline given by [30] has been followed to conduct the SLR. The conducted SLR involved 158 studies. As a result of SLR 23 situational factors, 167 sub-factors and 5 categories have been recognized. The primary results of SLR are presented in [23], [24].

B. Expert Review
After conducting the SLR, the obtained list of situational factors was evaluated through expert review. The guideline given by [31] were followed to conduct the expert review. As a result of expert review, 23 situational factors, and 5 categories were obtained, however, the list of sub-factors was reduced to 152 according to the recommendations of the experts. The detailed results of the expert review are presented in [13].

C. Delphi Survey
To evaluate the list of situational factors from industry experts, the Delphi survey was conducted. The Delphi technique is a reliable research method with the potential for use in problem-solving, decision making, and group consensus in a wide variety of areas [32]. In the Delphi method the questionnaires are provided to the experts in such a way that the anonymity of their responses is preserved. Feedback against questionnaires continues till convergence of expert's opinion, or consensus is attained. The work product of the Delphi method is consensus among the experts and their comments, on questionnaire items. The Delphi survey has been performed 1) to assess the practicality of the identified situational factors, sub-factors, and categories regarding MCR concerning industry 2) to recognize and prioritized the most influential situational MCR factors for MCR activities 3) to get the recommendation about naming conventions, grouping, and sub-grouping of provided situational MCR factors, sub-factors, and categories 4) to distinguish new industry-based situational MCR factors, with their connected sub-factors, and categories for MCR. The guidelines given by [33] were used to conduct the Delphi Survey.

E. Delphi Experts' Selection and Panel Size
The selection of the experts for the Delphi study is a very important aspect as the Delphi results are intensely based on the views of selected experts [34]. It is claimed that there are four key criteria that must be met while experts' selection: (1) knowledge and experience with the problems under investigation; (2) willingness to participate (3) satisfactory time to give in survey (4) good communication skills [33]. Based on these criteria for this study the experts are selected having experience of 8 or more than 8 years in the industry, must have knowledge of MCR, situational software engineering, and sustainable software engineering particularly individual sustainability. Besides this their capacity and willingness to participate in the study as well as time commitment were also considered for their selection.
Expert panel size deals with the number of experts to participate in the study. It is conveyed that for Delphi study the expert panel size is flexible [33] and a similar group of people, ten to fifteen experts might be enough" [33]. Therefore, we contacted fifteen experts, however, ten experts agreed to participate.

F. No. Rounds in Delphi Study
The performed Delphi survey involved two rounds. The Delphi experts' input was collected through questionnaires. It is claimed that in Delphi study most convergence of panel responses occurs between one to two rounds [35].

G. Delphi Questionnaire Design
The questionnaire is the core aspect of the Delphi study. The Round 1 questionnaire was distributed into four segments. Segment I intended to gather the background of the experts. Segment II was composed of a list of identified situational factors, connected sub-factors, and categories produced as a result of our earlier study grounded on SLR [13], [23], [24] and expert review [13] and expert review. In Segment II the experts were requested to grade the situational factors for their practicality and their level of influence for each MCR activity. Segment III intended to collect new industry based situational factors, connected sub-factors, and categories that must be included in the list. In the same segment the experts were also asked to indicate any recommendation regarding naming conventions, grouping, and sub-grouping of the provided list of factors, sub-factors, and categories from the industry perspective. In segment IV, the experts were requested to provide current real project examples for which they performed MCR activities with the set of situational factors that they experienced. This section was particularly planned for creating the scenario for experimental evaluation of developed situational MCR framework. The Round 2 questionnaire design was similar to Round 1 excluding segment I that aimed to collect the experts' demographic information.

H. Pilot Study
Prior to giving the questionnaire to the experts, it was evaluated in a pilot study by five software engineering researchers for clarity and understanding. As it is conveyed that though a pilot study is an optional aspect, it helps in the identification of obscurities in the questionnaires that might affect the outcome [36]. The feedback received was encouraging. No changes were suggested in the pilot study.

I. Procedure for Data Analysis
This study involved descriptive statistics as it is a basic analytical approach. It gives a basic quantitative approach for examination and produces an overall view of the results [37]. To grade the practicality of situational factors a five-point Likert scale i.e. from 1 to 5 (Very High-5, High -4, Moderate -3, Low-2, Very Low -1) was utilized. Likewise, to grade the level of influence of situational MCR factors for each MCR activity, a five-point Likert scale i.e. 1 to 5 (5-Most Influential, 4-Influential, 3-Moderate, 2-Weakly Influential, 1-Not Influential) was utilized. For calculating the practicality of situational MCR factors and to recognize and prioritize the most influential situational MCR factors, the mean values were gathered into the discrete categories as shown in Table II.  Table II also shows the grouping of the mean values to measure the practicality of MCR factors and the level of influence of situational MCR factors.
The mean practicality values along with mean influential values of sub-factors were computed primarily and were further converted into a single composite mean value showing composite mean practicality and composite mean influence value for the connected situational MCR factors. To obtain the consensus on the situational MCR factors' practicality and their influence level the standard deviation has been utilized as presented in Table II. Primarily the standard deviation of the sub-factors was computed than was further converted into a single composite standard deviation for the related situational MCR factor. Grounded on the attained composite standard deviation of situational MCR factors the consensus level among the experts was obtained. Equation (1) has been formulated based on the guidelines given by [38] to compute the composite standard deviation of situational factors.  Where 'SD' refers to the standard deviation, 'SitF' denotes to situational factor. 'SitSbF' denotes the sub-factor of the associated situational factor and its value ranges from 1 to k, and 'k' denotes to the total number of sub-factors for associated situational factors.

SD(SitF)=√((SD(SitSbF 1 )) +…+(SD(SitSbF k ) )) / k (1)
To achieve the consensus among the experts the standard deviation was measured based on [39]. Table III denotes the consensus levels used in this study. A standard deviation near to '0' indicated that the experts' gradings tended to be very close to each other, standard deviation far from '0' indicated that the gradings were spread out over a large range.

J. Data Collection and Analysis
This section detailed the data collected from the Delphi experts along with the analysis of collected data relying on the procedure of data analysis mentioned in sub-section 'I'. The conducted study involved two rounds. The details about data collection in Delphi rounds are discussed in sub-sections.

K. Delphi Survey Round 1
In the Delphi Round 1 the questionnaire was provided to the experts to collect their input. They were given one week to provide the feedback. The experts were contacted on phone calls to make sure about their mindfulness concerning the feedback submission date for Round 1. It takes two weeks to complete the Delphi survey Round 1. The Round I intended to collect the background information from the experts. It also intended to assess the list of situational MCR factors, connected sub-factors, and categories for their naming, grouping, and sub-grouping, which was produced as a result of our previous study based on SLR [23], [24] and expert review [2]. Round 1 includes the assessment of the situational MCR factors for their practicality and their level of influence for each MCR activity. In Round 1 the experts were also asked to state new industry-oriented situational MCR factors, connected subfactors, and categories that need to be present in the provided list. The scale used to grade the practicality and level of influence is presented in sub-section 'I'. The particulars regarding the Round 1 questionnaire are given in sub-section 'G'. In Delphi Round 1 the expert provided some recommendations, therefore Delphi Round 2 has been conducted to get the consensus on the recommended changes among the experts.

L. Delphi Round 2
In Round 2, the experts were provided with the summary of Round 1 results along with the updated list of situational MCR factors, sub-factors, and categories based on the suggestions of the experts given in Round 1. The details about the Round 2 questionnaire are given in sub-section 'G'. Round 2 was completed in 2 weeks. In Round 2 the consensus among the experts on the provided list of all situational MCR factors was achieved, and no changes were suggested therefore we decided to stop at Delphi Round 2.

IV. RESULTS
This section highlights the Delphi survey results. The practicality level of situational MCR factors with the standard deviation for Delphi Round 1 and 2 are presented in Fig. 3 to Fig. 6. Fig. 3 and Fig. 4 shows the comparison of the Delphi survey results of mean perceived practicality values of the situational MCR factors. It also shows the changes performed based on the suggestions of experts. For instance, the factors name 'Team' was changed as 'Team Dynamics'. This comparison also indicated that the mean perceived practicality value for the situational factors have been increased in Delphi Round 2. The comparison of Fig 5 and Fig. 6 shows that the consensus level for most of the situational factors was increased in Round 2 for their practicality among the Delphi experts as standard deviation moves near to '0' in Round 2. For instance, for the factor 'Tool,' the standard deviation was '0.3855011' in Round 1 whereas in Round 2 the standard deviation was '0.3312434'.  370 | P a g e www.ijacsa.thesai.org   Concerning the most influential situational MCR factors, the mean influential values of sub-factors of each situational MCR factor in final Round for; Source Code Preparation ranges from 2.5 to 5.0, Source Code Submission ranged from 1.2 to 5.0, Reviewer Selection and Notification ranges from 1.8 to 5.0, Source Code Review ranges from 3.0 to 5.0, Source Code Approval ranges from 2.0 to 5.0. To find the most influential factors, the composite mean influential values of their related sub-factors were computed. The factors having composite mean values equal to or above 4.00 were considered as the most influential factors for that specific MCR activity. For each MCR activity, the most influential factors were identified based on their composite mean values after the final Delphi Round and are presented in Tables V to IX with the standard deviation. Based upon the practicality and influence level of situational MCR factors, the situational MCR framework has been developed to support individual sustainability of software engineers engaged in MCR activities. The developed framework guides the MCR team members about the situational factors as well as most influential situational MCR factors for each MCR activity. The developed framework might also help the software engineers to be aware of upcoming situations and to improve their competence and productivity. The situational MCR framework is attached in the Appendix I (Fig. 7a and Fig. 7b).

V. DISCUSSION
Software engineers engaged in MCR activities belongs to various cultures and backgrounds, as a result, various unknown and varying situational factors arise that impact their sustainability and productivity due to mental distress. Therefore, this study has presented a situational MCR framework based on Delphi survey. The developed framework guides the software engineers about the situational factors as well as the most influential situational MCR factors for each MCR activity. The developed framework might also support the sustainability of software engineers, help them to be aware of upcoming situations, and to improve their productivity. The situational MCR framework is attached in Appendix I (Fig. 7a  and Fig. 7b).

VI. CONCLUSION
This study presented a situational MCR framework to support the sustainability of software engineers engaged in MCR activities. The study findings reported 21 situational factors, 147 sub-factors, and 5 Categories. In this paper, the Delphi survey results along with the development of the situational MCR framework are presented. The developed framework might guide the software engineers engaged in MCR activities to consider the reported situations, identify situations according to their context, and improve their productivity while ensuring their individual sustainability.

VII. FUTURE WORK
This study can be further elaborated for other software engineering contexts and activities for instance software design, software testing, etc. The ongoing research plans are to validate the developed situational MCR framework through experiment and to develop a web-oriented situational MCR tool to have an electronic situational guideline for software engineers engaged in MCR activities.

VIII. CONTRIBUTION
The investigation contributed to the software engineering body of knowledge (SWEBOK) specifically situational software engineering and sustainable software engineering, particularly the individual sustainability of software engineers. The study reported the situational factors for MCR from literature, academic, and industry. The study also recognizes and prioritizes the most influential situational MCR factors and present the situational MCR framework to support the individual sustainability of software engineers engaged in MCR activities.