Programmer Selection Using Modified Fuzzy Mamdani Method

.


Introduction
Software development companies need programmers with adequate knowledge, skill and attitude to provide feasible productivity in managing software projects [1]. However, there is various ability and characteristics of the programmer (i.e., knowledge, skills, and attitudes of behavior) determine the team productivity and success [2]. In the meantime, selecting candidate programmers is often a complex and tiring process. Therefore, it is necessary to build an approach to choose the candidate of programmer based on certain criteria, parameter, and attributes. The selection process must be carried out effectively by filtering the individual competency criteria in order to assemble a development team with high productivity [3]. In fact, a new applicant or candidate of programmer has various characteristics which not easy to be detected. The selection can be very varied and burdened the software project. In order to mitigate the issue, it needs to be a tool that can simplify the candidate selection [4]. This paper proposes an approach based on the Fuzzy Mamdani method for selecting the candidate of a programmer. The method is based on fuzzy logic values filtering the candidate's attributes and parameters [5]. Through mathematical calculations of three parameters (e.g., knowledge, skill, and attitude), the test results of the candidates are simulated to be assigned into different fuzzy set memberships [6]. Their memberships are based on the priority values and the largest percentage of the assignment result. [7] considers the estimation of the final (i.e., successful or unsuccessful) status of the project by applying the Bayesian classifier as a metric of data collected from the project. However, Naïve Bayes has the disadvantage of being very sensitive in the selection of features [8]. Another disadvantage of Naïve Bayes is that there are too many features, not only increases calculation time but also decreases classification accuracy [9]. While the use of fuzzy methods is able to handle very complex processes, which are represented by inaccurate, uncertain and qualitative information. Usually, fuzzy methods are based on linguistic rules of the type "if conditions are then actions", where fuzzy set theory and fuzzy logic provide the mathematical basis needed to handle information that is inaccurate and with linguistic rules.
The proposed model is useful for making decisions among the manager to determine the best candidate of programmers based on the parameter values. In addition, a comparison between Mamdani fuzzy calculations and manual fuzzy calculations is also conducted and explained. The advantage of using fuzzy-based mathematical methods is also given. The conclusion and suggestion are given in the final part.

Fuzzy Sets
Fuzzy set theory is a calculation of fuzzy inference system in order to determine the range of criteria values for a selection of candidate programmers [10]. The data of criteria of a programmer is collected from a survey of information technology companies. The data contains a range of criteria values and fuzzy membership degrees [6]. The data represents a form of fuzzy set that represents the state of the candidate before and after recruitment. In the form of fuzzy variables, the set of fuzzy candidate programmers is divided into two linguistic variables namely "Pass" and "Not Pass" of exam testing [10] [8]. The formation of this fuzzy set is adjusted based on the opinion of the agile project manager.

Fuzzy Inference System
A system that performs calculations based on the concepts of fuzzy set theory, fuzzy rules, and the concept of fuzzy logic, namely the Fuzzy Inference System (FIS) [11]. In a fuzzy inference system, there are fuzzy inputs in the form of crisp values [12]. The crisp value will be calculated based on the rules that have been made to produce a fuzzy quantity called the fuzzification process [13].
The Mamdani fuzzy method inference forms a rules-based or rule basis in the form of "causeeffect" or "if-then" [14] [15]. The first step in calculating the Mamdani fuzzy method is to make a fuzzy rule or rule. The next step calculated the degree of membership in accordance with the rules that have been made. After knowing the value of the degree of membership of each fuzzy rule, it can be determined the alpha value of the predicate by using fuzzy set operations [16] [17].

Research Methods
This research is planned to be conducted in two cities, namely in Jakarta and Solo. The research participants are project managers, programmers, software development companies that are still under-5-years startups. Each participant was distributed a survey questionnaire to fill in the projects they had been working on. Prioritized software projects were mobile creation. From all participants will be measured knowledge, competence, attitudes and resources of time and cost, number of teams, number of meetings, work schedules that they allocate to each project.

Research Measurement Method
In this study, the model is established based of the calculation of some parameters with the steps as below: 1. Recapitulation of the data for the Allocation Team Qualification in accordance with the parameters needed to detect it. 2. Processing the fuzzy data for the Allocation Team Qualification using the Mamdani method. 3. Conducting a comparison of the results of the Mamdani method with the Quality Team data sample.
4. If the results of the Mamdani method are in accordance with the results of the sample data obtained, the results are considered ACCURATE. 5. If the results of the Mamdani method are not in accordance with the results of the sample data obtained when the results are considered NOT ACCURATE. 6. Finally, the percent accuracy of the Mamdani method is calculated by the formula: % Accuracy = (Accurate Data Amount / Sample Total) * 100

Data Analysis Method
From the interviews with the agile project managers, it was assumed that the manager needs a programmer with feasible and adequate knowledge, skills, attitude and productivity [8].
Knowledge, skill, attitude, and productivity are the four competencies that every programmer should have. The four components above are very important in the development of an IT company. These four parameters have become main attention among the manager to maintain their team productivity. So, the four parameters will be used as input for the designed system. After reviewing the literature of fuzzy sets, we determine the parameters for fuzzification input and output as below: 1.
Knowledge of the developer has three linguistic values (high, medium, low) 2.
An attitude of the developer has three linguistic values (high, medium, low) 4.
Productivity Developers have three linguistic values (high, medium, low) In this study our lowest range value does not use a zero because it is considered that every prospective programmer already has the basics of knowledge, skills and attitude. for the criteria of knowledge, skill, and attitude we divide into three low, medium and high ranges, while our specific productivity is only divided into two ranges, namely low and high, this is because in this case we only assume productivity in IT development companies, we simplify only high and low. The next step in the Fuzzy calculation process is to form Fuzzy rules as shown in Table 2. The programmers are assigned to be in a position of high productivity if they have a final membership value of 80-100, or unproductive if their final membership value is less than 80. Similar steps are repeated for other membership values of each variable as shown in Fig. 1.
The process of fuzzification is the calculation of crisp value or input value into the degree of membership. Calculations in the fuzzification process are based on the limits of membership functions. The following is the fuzzy set membership function with 4 input criteria:

Fuzzy Set of Knowledge Test
Each programmer is assigned into a knowledge test. Their test results are then recorded as input values into the fuzzy set member. The results of their tests are given in Figure. 1 which represents the knowledge test result. Each candidate test result is entered into the membership function plot. In the membership function plot; there are three membership groups, namely, low, medium and high. In this study, Mamdani fuzzy logic was used to get the output in the form of a decision in the selection of prospective programmers in IT developer companies. This is supported by research by Jayanti, S., & Hartati [19] who examined the Decision Support System for Adult Choir Members Selection Using the Fuzzy Mamdani Method. According to [19] using Fuzzy Mamdani Logic reasoning in processing input and output data, as well as supporting information in the form of ranking that is very supportive in decision making to determine someone to become a member of the adult choir. Based on the above research, this research uses Fuzzy Mamdani Logic reasoning in processing prospective programmers' selection in IT developer companies. Similar to a skill test, the program candidates are given a skill test. The fuzzy set input value of the skill test was obtained from the results of the candidates' tests. The input value is then recorded in the membership plot as shown in Figure 2. The result of the skill test is entered into the membership function plot. In the membership function plot; there are three membership groups, namely, low, medium and high.
In the variable when fuzzy set membership will also be formed for the aptitude test.
Here the input is obtained from the results of attitude skills from candidate programs. The membership function is formed by the antecedents and consequences of attitude rules. By collecting the membership referred to by the antecedents of the attitude rule, three aggregate weighted groups will be formed, namely low, medium, and high. The input value of the aptitude test results will be mapped as the input attitude variable as shown in Figure. 3.
We determine the rule that to be accepted into the membership function plot, the candidate must obtain a position from 0.5 to 1. Lift 1 if the candidate is between 0.5 and above it can still be accepted in the group. Candidates are fully grouped into antecedents set according to these limits. From the results of the candidate attitude test, three types of membership plots were obtained, namely low, medium, and high. The highest limit to be fully accepted is value 1 while for the centroid limit of 0.5 the meeting between low and medium are only accepted into the fuzzy set with the centroid 0.5, the rest the candidates are rejected.

Fuzzy set of Productivity
In accordance with the purpose of this study, which is to measure the highest productivity by selecting candidate programs, productivity is considered very important. For this reason, the productivity variables are divided into two groups, namely moderate and high. For this reason, an index line is created representing productivity across the membership function line which determines the extent to which the productivity rules must range from moderate to high to be activated.
The two rules form a row of productivity plots. By looking at the antecedents of each rule, it was determined that three plots of moderate productivity and high productivity could be obtained. We also provide the manual calculation of Fuzzy Mamdani method. We want to know that the proposed model will work in real situation. We therefore calculate the input value to get output crisp (z) values (A1, A2, A3) as below. There are 17 candidates who meet the requirements and pass the tests of attitude, skill, and knowledge (n = 17). They are then combined to produce the highest production value. In Figure. 5 it shows the middle boundary of three fuzzy sets, namely set, attitude, skill, knowledge, and productivity with each has values of 50, 50, 50, and 82.5, respectively. By following fuzzy rules, rules are determined as a road map of all fuzzy inference processes. This is based on the fuzzy inference diagram described in the previous section. The picture above shows the composition of each variable with an input that can be seen in the yellow input box. The red line color is a line to change the input value and produces a new output response. The output is in the rightmost box that is blue. So, the output can be directly displayed based on the input entered. The result shows a number which is the amount of productivity.
The membership function is determined based on the antecedents and consequences of the rules of knowledge, skill, attitudes. Each rule forms productivity plot. By looking at the antecedents of each rule, it is determined that three variables are membership functions referenced by the antecedents of each rule. Furthermore, productivity plots represent aggregate weighted decisions for the proposed inference system. This decision will depend on the input value of the candidate test results into the system. The candidate test results are then mapped as three parameters (e.g., knowledge, skill, and attitude) to predict productivity. The results are given in Figure 6 that there are two groups of productivity, namely moderate productivity, and high productivity. To produce productivity between 80 and 85, programmers must have knowledge above 73, average skills are also above 80 and attitude reaches 90 and above. The highest productivity will be achieved if the recruited programmers have knowledge above 70. This is because the index line representing productivity crosses the knowledge membership function line in the left plot, so it determines the extent to which the candidate programmers who have minimum knowledge will be activated. The light blue patch under the actual membership function curve shows the value of fuzzy membership visually. The yellow patch under the actual attitude membership function curve shows the value of fuzzy membership for variable attitude. From Fig. 6, it is known that attitude is only owned by a small number of candidate programs, namely only 4 people (according to four yellow boxes).
Productivity variables are formed by input index lines of knowledge and skills. In this way, it can be seen that production ranges from 80 to 85 which means that the project manager must prioritize the programmer's programmer who has knowledge above 70 and skill of at least 80. Although candidate skills can be very high (blue) up to 100 percent, their productivity still only around 80 to 85 percent.

Quality of the model
Thus, the percent accuracy of the Mamdani method can be calculated to determine the prediction of programmer productivity with the equation: % Accuracy = (Accurate Data Amount / Total Samples) X 100 Accuracy = (75.57 / 100) X 100 = 75.57%

Conclusion
The results of this study use the fuzzy Mamdani method so that it can be implemented to a company to determine the selection of candidate programmers with the results of a comparison between expert ranking and system ranking that produces different values. In testing the system to obtain accurate results, the in this test the accuracy value is 75.57% which indicates that the system is functioning accurately.