Knowledge Sharing Framework for Modern Code Review to Diminish Software Engineering Waste

Modern Code Review (MCR) is a quality assurance technique that involves massive interactions between team members of MCR. Presently team members of MCR are confronting with the problem of waiting waste production, which results in their psychological distress and project delays. Therefore, the MCR team needs to have effective knowledge sharing during MCR activities, to avoid the circumstances that lead the team members to the waiting state. The objective of this study is to develop the knowledge sharing framework for MCR team to reduce waiting waste. The research methodology used for this study is the Delphi survey. The conducted Delphi survey intended to produce the finalized list of knowledge sharing factors and to recognize and prioritize the most influencing knowledge sharing factor for MCR activities. The study results reported 22 knowledge sharing factors, 135 sub-factor, and 5 categories. Grounded on the results of the Delphi survey the knowledge sharing framework for MCR has been developed. The study is beneficial for software engineering researchers to outspread the research. It can also help the MCR team members to consider the designed framework to increase knowledge sharing and diminish waiting waste. Keywords—Knowledge sharing; modern code review; software engineering wastes; waiting waste; lean software development


I. INTRODUCTION
Software engineering is known as a systematic application of engineering approaches to the development of software [1]. It highly involves social interaction among stakeholders for the development of cost-effective software [2]. It includes subactivities such as software requirement recognition, software modeling, software testing, inspections, and Modern Code Review (MCR) [3]. These activities yield wastes for instance rework, defect, needless composite solution, waiting, extra or erroneous feature, and mental distress [3], [4]. The various perception of wastes available in the literature are given in Table I. MCR, a lightweight software engineering activity, has its origin from Fagan's review process [5], [6] and is largely known since 2013 [5], [7]. Fagan's review process is a heavyweight code inspection that requires face to face communications between team members [8]. While MCR is informal, easy-going, and supported through review tools [5], [9]. MCR aims to improve software quality through the improvement of source code quality [5], [10], [11]. It is being practiced by numerous organizations, for instance, Microsoft, Google, etc. [9], [12].
Even though the existing research has paid attention to knowledge sharing concerning software engineering activities [21], [22], [23] however, knowledge sharing in the context of MCR warrants attention from the researchers [9], [10], [12], [24], regarding explorations of knowledge sharing factors for MCR activities [25]. No, schematized inquiries are available about that knowledge sharing facet concerning MCR to decrease waiting waste. Thus, to minimize waiting waste, this study aims to develop a knowledge sharing framework for MCR.
This study is the an extension of our previous work that involved the identification of knowledge sharing factors for MCR through Systematic Literature Review (SLR) and expert review [25]. The result of SLR and expert review are reported in [24], [25]. In our previous studies, the SLR [24], [25] was performed to identify the knowledge sharing factors from the literature and the expert review [25] has been performed to validate the identified list of knowledge sharing factor. In this study, the Delphi survey has been conducted with experts from the industry to finalize the list of knowledge sharing factors, sub-factors and categories for their practicality concerning the industry, to identify and prioritize the most influential knowledge sharing factors for MCR activities, to get suggestion about naming conventions, grouping, and subgrouping of provided knowledge sharing factors, sub-factors, and categories, to recognize new industry-based knowledge sharing factors, with their associated sub-factors, and categories in the context of MCR. The results of the Delphi survey have been utilized to develop Knowledge sharing framework for MCR to minimize waiting waste.
The remaining paper is organized as Section II describes the research background. The research methodology is discussed in Section III while Section IV introduces the results of the Delphi study. Section V highlights the study conclusion. Section VI highlights future work suggestions. Section VII highpoints the study contribution. "All activities and work products that do not contribute to customer value" or "Everything that is not consider valuable" or "Non-efficient way of working" or "Everything that does not make it to the release i.e. product feature/qualities not delivered and were a waste of time to investigate and or develop" [2] "Activities that absorb resources and increase cost without adding value". [13] "Any Bottlenecks" or "Waste is anything that does not add value to a product, value as perceived by the customer".
[2], [15] II. BACKGROUND Software engineering is a well-disciplined approach to develop quality software [26]. It is social as well as a technical activity that integrates additional activities [3], [27] such as software requirement recognition, software modeling, software testing, inspections, and MCR. These activities generate several wastes [2], [3], [4]. Waste may lead to mental distress, project delays, and software failure. The research on waste recognition and reduction has been started in the 1980s when Toyota revolutionized the automobile industry with a "Lean Manufacturing" [4], [14]. In the year 2000, the lean manufacturing concept was shifted from manufacturing to software engineering domain [28] and was named as lean software development. Since then numerous researches have been reported in the software engineering domain focusing on waste recognition and reduction [2], [3], [4].
In the software engineering domain several wastes have been identified for instance extra or erroneous features, "task switching, defects, "relearning and handoff", needless composite solutions, rework, "extraneous cognitive load, and waiting [2], [3], [4]. Though each software engineering activity includes different software engineering actions, therefore, each activity can generate various distinct wastes [3]. MCR is a critical software engineering activity to improve code quality [5], [29], [30]. In this activity, the reviewer reviews the source code, prior to sending it to the code repository. MCR is supported with the aid of review tools, for instance, Code flow, such as Gerrit, Review board, Phabricator, etc. [5], [9], [10], [12], [31]. Fig. 1 represents the MCR process overview.
It is claimed that waste such as extra or erroneous features, defects, needless composite solutions, rework, and waiting are generated during MCR [2], [3], [4]. It is also conveyed that if the organization needs to minimize one waste, then the organization must emphasize waiting waste [2], [15], [28]. Waiting waste deals with delay between two consecutive activities [3], [4]. For instance, in the case of MCR time delay between source code submission for review by the author and receiving feedback from the reviewer [9], [10]. It is stated that one of the reasons behind waiting waste in MCR is a lack of knowledge sharing [4], [9], [18], [19], [32]. The waiting waste affects the efficiency and productivity of the developers [2], [3], [9], [18], [19], [32], and it also leads to project delays [2]. To diminish the waiting waste it is mandatory to focus on knowledge sharing [2], [3], [4], [33] in MCR. It is reported that knowledge sharing among team members can be augmented by recognizing the factors that can influence knowledge sharing [9], [10], [12], [24]. Considering those factors can aid in knowledge sharing among MCR team members.
Limited researches have been performed concerning knowledge sharing in MCR highlighting the significance of knowledge sharing [10], [12], [34]. For instance, Sadowski et al., (2018), quantify knowledge sharing by looking at comments and files edited or reviewed. They reported that developers build experience through knowledge sharing while working at Google [12]. Similarly, Bosu et al., (2017), stated that code review allows senior developers to mentor newcomers. They conveyed that experienced developers can also enhance their skills while sharing knowledge [10]. Likewise, Rigby and Bird (2013) have explored knowledge sharing facet in code review. They measure the amount of knowledge shared among the MCR team through the number of files known to the developer before and after the source code review [34]. The literature shows that, although existing studies [10], [12], [34] have provided attention towards knowledge sharing in MCR, however, no framework or guidelines are available for effective knowledge sharing in MCR that can help MCR team to reduce software engineering waiting waste. Therefore, this study aims to develop the knowledge sharing framework for MCR to reduce software engineering waiting waste. 443 | P a g e www.ijacsa.thesai.org III. RESEARCH METHODOLOGY Delphi survey has been performed as a research methodology for this study. This methodology is a less costly and relatively competent way to get consensus from the opinions of the experts [35]. It typically involves iterative questionnaires directed to individual experts in such a way that their anonymity is preserved. Feedback received in the Delphi survey after each questionnaire iteration continues until consensus is achieved. The Delphi output is the consensus among the experts along with their observations on the questionnaire items.

A. Objective of Delphi Survey Conduction
A two-round Delphi study has been performed 1) to evaluate the practicality of the identified knowledge sharing factors, sub-factors and their categories in the context of MCR with industry 2) to recognize and prioritize the most influential knowledge sharing factors concerning MCR activities 3) to get suggestion about naming conventions, grouping, and subgrouping of provided knowledge sharing factors, sub-factors and categories 4) to recognize new industry-based knowledge sharing factors, with their associated sub-factors, and categories in the context of MCR. Delphi survey was conducted based on the guidelines given by [36]. The steps involved in the Delphi survey are detailed in subsections.

B. Delphi Experts' Selection
The selection of the experts to participate in the Delphi study is a very important and critical aspect as the output of the Delphi survey relies on the experts' opinions [36]. Based on the experts' selection requirement conveyed in literature [36], in this study, the experts were selected based on the criteria such as (1) Expert have experience of more than 8 years in the software industry, (2) Expert should have experience in MCR, (3) Expert should have knowledge of wastes in context of software engineering and knowledge sharing. Other selection criteria involve their willingness to participate in the survey as well as enough time to provide feedback [36].

C. Delphi Panel Size
Panel size deals with the number of experts to participate in the study. The panel size varies from a few to hundreds of experts [36]. The size of the panel for the Delphi study is variable. It is conveyed that with a homogenous group of people, ten to fifteen experts might be enough [37]. We requested fifteen experts to participate in the survey. Ten experts showed their interests and willingness to participate.

D. Delphi Rounds
The conducted Delphi survey involved two rounds. The expert's input was collected through questionnaires. The experts were explained each provided knowledge sharing factor, sub-factor, and category to make sure that all of the experts have a shared understanding of knowledge sharing factors. It is conveyed that in the Delphi study, most convergence of panel responses occurs between round one and two [38]. In this study, the consensus among the experts was achieved in two rounds.

E. Delphi Questionnaire Plan
The questionnaire for Round 1 involved four sections. Section A aimed to collect demographic information from the experts. Section B of the questionnaire was composed of a list of knowledge sharing factors, related sub-factors, and categories generated as a result of our previous study based on SLR and expert review [24], [25]. In Section B the experts were also questioned to score the knowledge sharing factors for their practicality and level of influence for MCR activities. Section C was designed to obtain new knowledge sharing factors, sub-factors or categories that should be included in the list. Section C also aimed to collect suggestions about naming conventions, grouping, and sub-grouping of the provided knowledge sharing factors, related sub-factors, or categories. Section D aimed to obtain information about recent real project examples for which the experts had performed MCR activities and experienced the factors influencing knowledge sharing. This section was specifically designed for generating the scenario that was later used in the experiment to validate the developed knowledge sharing framework.
The questionnaire for Round 2 involved three Sections. Section A aimed to evaluate the practicality of knowledge sharing factors finalized after Delphi survey Round 1. The finalized list contains the changes made based on the recommended suggestion of the experts in Round 1. This Section also aimed to evaluate the influence level of listed factors for each MCR activity. Section B aimed to get any new factors, related sub-factors, and categories that should be included in the list. In Section B the experts were also requested to mention the suggestions about the naming conventions grouping and sub-grouping of the provided knowledge sharing factors, sub-factors, and categories. Section C aimed to obtain information about recent real project examples for which the experts had performed MCR activities and experienced the factors influencing knowledge sharing.

F. Pilot Study
The questionnaires were evaluated by five software engineering researchers for their understanding and clarity as it is conveyed that if the questionnaires are used in research, then they should be pretested for length, clarity, and overall adequacy [39]. In the pilot test of this study, the received response was positive and no changes were suggested.

G. Data Analaysis Procedure
Descriptive statistics have been performed in this study as it is a rudimentary analytical approach. These give a basic quantitative strategy for examination and produce a general overview of the outcomes [40].
To score the practicality of knowledge sharing factors and to evaluate the level of influence of knowledge sharing factors for each MCR activity, a five-point Likert scale that is from 1 to 5 (Very High-5, High -4, Moderate -3, Low-2, Very Low -1) was provided. For calculating the practicality of knowledge sharing factors and to recognize the most influential Knowledge sharing factors for MCR activities, the mean values were grouped into the discrete categories as shown in Table II for MCR activities. 444 | P a g e www.ijacsa.thesai.org The mean practicality and mean influential values of subfactors were premeditated initially and then the found mean values were further transformed into a single composite mean value showing composite mean practicality and composite mean influence value for the associated knowledge sharing factors.
To get the consensus of the practicality and the influential values of knowledge sharing factors we used the standard deviation as shown in Table III. Initially, we calculated the standard deviation of the sub-factors that were further transformed into a single composite standard deviation for the associated knowledge sharing factor. Based on the obtained composite standard deviation of the knowledge sharing factors we come up with the consensus level among the experts. We formulated equation (1) based on guidelines given by [41] [41] to calculate the composite standard deviation of knowledge sharing factors. (1) Where 'SD' denotes to standard deviation, 'KSF' refers to knowledge sharing factor. 'SbF' refers to the sub-factor of the associated knowledge sharing factor and it ranges from 1 to k, 'k' refers to the total number of sub-factors for associated knowledge sharing factors. Table III represents the level of consensus used in this study. A standard deviation between '0' and '1' shows that the experts scoring is very close to each other, whereas a higher standard deviation showed that the experts' scoring was spread out over a large range [35].

H. Data Collection and Analaysis Methods
This section presents the data collected from Delphi experts and the analysis of the data collected depending on the analysis procedure defined in sub-section 'G'. The performed Delphi study involved two rounds. The details concerning data collection are discussed in the following sub-sections.

I. Delphi Round 1
In the Delphi Round 1, the questionnaire was given to the experts. They were given one week to complete the questionnaire. The phone calls were made to make sure that all experts were aware of the feedback submission date and time for Round 1. Round 1 of the Delphi survey was completed in two weeks. Round 1 aimed to collect demographic information from the experts. It also aimed to evaluate the list of provided knowledge sharing factors, related sub-factors, and categories for their naming convention, grouping, and sub-grouping which was generated as a result of our previous study based on SLR and expert review [24], [25], [42]. Round 1 involves the evaluation of the knowledge sharing factors for their practicality for the complete MCR process as well as their influence level for each MCR activity. In Round 1, the experts were also enquired to state any new industry-based knowledge sharing factors, related sub-factors, and categories that should be included in the list. The scale used to score the practicality and influence level is given in sub-section 'G'. The details about the Round 1 questionnaire is provided in sub-section 'E'. In Delphi Round 1 some recommendations were suggested by the expert so we need to conduct another Delphi round to have consensus on the suggested changes among the experts.

J. Delphi Round 2
In Round 2, the experts were given the summary of results obtained in Round 1. In Delphi Round 2 the experts were enquired to evaluate the level of practicality as well as the level of influence of subsequent knowledge sharing factors finalized after Round 1 for each MCR activity. In Round 2, the analysis method and the scoring scale was similar as in the case of Round 1. The details about the Round 2 questionnaire is provided in sub-section 'E'. Round 2 also took 2 weeks to be completed. In Round 2 the consensus was obtained for all the knowledge sharing factors therefore we stopped at the Delphi Round 2.

IV. RESULTS
This section presents the results obtained in the two Rounds of Delphi study. The results were then analyzed, and composite mean values of knowledge sharing factors were calculated based upon the mean values of their associated sub-factors. Similarly, the mean influential values of knowledge sharing factors were calculated based upon the mean influential values of their associated sub-factors. The practicality level of each knowledge sharing factors along with the standard deviation for Delphi Round 1 and Delphi Round 2 are shown in Fig. 2 and Fig. 3. Fig. 2 shows that all the provided knowledge sharing factors in both rounds were perceived as practical by the experts as the composite mean value of all the factors lies between 3 and 5. Fig. 3 shows that the level of consensus was increased in Round 2 for the practicality of the identified knowledge sharing factors among the experts. Table IV shows the ranking of knowledge sharing factors for their level of practicality.
Regarding the most influential knowledge sharing factors, the mean influential values of sub-factors of each knowledge sharing factor in final Delphi Round for; Source Code Preparation values were from 1.4 to 5.0, Source Code Submission values were from 1.4 to 5.0, Reviewer Selection and Notification values were from 1.1 to 5.0, Source Code Review ranges from 2.4 to 5.0, Source Code Approval values were from 2.0 to 5.0. The most influential factors were identified by calculating the composite mean influential value of their connected sub-factors. The factors with composite mean values equal to or above 4.00 were considered as the most influential factors for particular MCR activity. The most influential factors grounded on their composite mean values for each MCR activity after the final Delphi Round are shown in Tables V to IX along with the standard deviation.
Based on the Delphi survey results we formulated a knowledge sharing framework for MCR to diminish waiting waste. The developed framework constitutes knowledge sharing factors, sub-factors, and categories as well as the most influential knowledge sharing factors for each MCR activity. The developed knowledge sharing framework is attached in Appendix A.     V. CONCLUSION Knowledge sharing plays a significant role in the minimization of waiting waste. This study involves statistical analysis of knowledge sharing factors to identify the list of most influential knowledge sharing factors for MCR activities. The study results reported 22 knowledge sharing factors, 135 sub-factor, and 5 categories. The obtained results were expressed as a knowledge sharing framework for MCR to diminish software engineering waste. This framework will guide the software engineers involved in MCR activities to effectively share knowledge and reduce the production of waiting waste.

VI. FUTURE WORK DIRECTIONS
This developed knowledge sharing framework is specific to the MCR activity of Software Engineering to diminish waiting waste. The study can be further extended to other software engineering activities to minimize waiting waste in other software engineering activities for instance requirement engineering, modeling, and testing. This research study delivers a list of factors influencing knowledge sharing in MCR to diminish waiting waste. Our ongoing research activities are 1) to validate the developed knowledge sharing framework regarding minimization of waiting waste through experiment, 2) to develop a web-based knowledge sharing framework for MCR to have an electronic knowledge sharing guideline for software engineers involved in MCR activities to minimize waiting waste.

VII. CONTRIBUTION
The investigation contributed to software engineering body of knowledge (SWEBOK), knowledge base software engineering (KBSE), and green software engineering (GREEN SE) by stressing the significance of knowledge sharing, most influencing knowledge sharing factors, and by providing the knowledge sharing framework for MCR to diminish waiting waste. The work can guide software engineers to effectively share knowledge by managing the undesirable facets of identified factors.