[ieee 2010 12th international conference on computer modelling and simulation - cambridge, united...

5
A Multi-Criteria Decision Making Approach for Resource Allocation in Software Engineering Carlos E. Otero 1 1 Department of Mathematics and Computer Science University of Virginia’s College at Wise Wise, VA USA [email protected] Luis D. Otero 2 , Ira Weissberger 2 , Abrar Qureshi 1 2 Florida Institute of Technology Melbourne, FL USA [email protected]; [email protected]; [email protected] AbstractThe completion of reliable software products within the expected time frame represents a major problem for companies that develop software applications. As the field grows, the software industry continues to struggle with delivering products in a timely manner. A major cause for increased cost and low quality in software products can be attributed to inadequate resource allocation. Therefore, it is important to develop systematic personnel assignment processes that consider the complete candidate skill set and provide the best fit to increase quality, reduce cost, and reduce training time. This paper presents a novel methodology that considers multiple project-specific skills to assign resources to software tasks. The methodology takes into account the existing capabilities of candidates to determine the best fit based on the required skills for the task. A sample case study is used to show the methodology’s capabilities. Keywords:Desirability Functions, Software Engineering, Resource Allocation, Multi-Critieria Resource Allocation I. INTRODUCTION Task assignment decisions in software development environments are critical because they influence the performance of workers and quality of products [1]. As documented in [2], the U.S. Department of Defense (DOD) spent nearly 8 billion dollars in 2004 to rework software. This large financial figure serves as evidence that quality- related issues continue to be a major struggle for software companies. Furthermore, “evidence reveals that the failure of software development projects is often a result of inadequate human resource project planning” [3]. In [4], Linberg stated that only about 16.2% of software projects are on time and within budget. A major contributor to this problem is the inefficient allocation of resources that may result in schedule overruns, decreased customer satisfaction, decreased employee morale, reduced product quality, and negative market reputation. The inevitable consequence is a decrease in potential profit for companies. Despite all the research and advances in the field, software development is still very challenging due to its unpredictable nature. The fast pace at which new technologies and techniques are being developed today to improve the design and development of products increases the demand for specialized individual skills in the workforce. Most of the time, candidates with the required skills to work tasks are not available, and decision makers are forced to assign resources to tasks based on subjective measures [1]. Therefore, further studies of the processes and techniques for personnel management are necessary to provide better solutions in terms of quality, cost, and schedule. This paper proposes a multi-criteria decision making approach for allocating resources to software engineering task assignment. The approach uses Desirability Functions [5] to provide a unified metric representative of the suitability between the complete set of skills available from candidates and skills required for tasks. This way, decision makers can quantitatively assign resources to tasks even when the most desirable skills are not available from the existing workforce. The approach is extensible to consider a wide variety of project specific capabilities, such as years of experience, level of perceived expertise on a particular language, operating system, domain knowledge, etc. Moreover, the approach is simple and leads itself to usage through simple spreadsheets. Managers can use this methodology as a tool to increase the efficiency of resource allocation. This paper is divided into six sections. Section II describes the literature related to resource allocation in software projects. Section III briefly describes the proposed methodology for personnel assignment. Section IV presents a detailed coverage of desirability functions. Section V presents results of the approach via several case studies. Finally, section VI provides conclusions. II. BACKGROUND WORK In recent literature regarding the assignment of software developers to tasks, Acuña et al. stated that software managers typically make assignments based on “their experience, heuristic knowledge, subjective perception, and instinct” [1]. In [6], Duggan et al. developed a multi- objective optimization model for software task allocation based on genetic algorithms. The competencies of developers were modeled using a categorical variable with five levels. Each competency level was associated with an expected productivity per day, and an expected number of defects per unit of productivity. Other studies have developed procedures for allocating personnel to software tasks based on the assessment of behavioral competencies [1, 7]. 2010 12th International Conference on Computer Modelling and Simulation 978-0-7695-4016-0/10 $26.00 © 2010 IEEE DOI 10.1109/UKSIM.2010.126 132 2010 12th International Conference on Computer Modelling and Simulation 978-0-7695-4016-0/10 $26.00 © 2010 IEEE DOI 10.1109/UKSIM.2010.33 127 2010 12th International Conference on Computer Modelling and Simulation 978-0-7695-4016-0/10 $26.00 © 2010 IEEE DOI 10.1109/UKSIM.2010.32 137

Upload: abrar

Post on 22-Mar-2017

219 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: [IEEE 2010 12th International Conference on Computer Modelling and Simulation - Cambridge, United Kingdom (2010.03.24-2010.03.26)] 2010 12th International Conference on Computer Modelling

A Multi-Criteria Decision Making Approach for Resource Allocation in Software Engineering

Carlos E. Otero1 1Department of Mathematics and Computer Science

University of Virginia’s College at Wise Wise, VA USA

[email protected]

Luis D. Otero2, Ira Weissberger2, Abrar Qureshi1 2Florida Institute of Technology

Melbourne, FL USA [email protected]; [email protected];

[email protected]

Abstract—The completion of reliable software products within the expected time frame represents a major problem for companies that develop software applications. As the field grows, the software industry continues to struggle with delivering products in a timely manner. A major cause for increased cost and low quality in software products can be attributed to inadequate resource allocation. Therefore, it is important to develop systematic personnel assignment processes that consider the complete candidate skill set and provide the best fit to increase quality, reduce cost, and reduce training time. This paper presents a novel methodology that considers multiple project-specific skills to assign resources to software tasks. The methodology takes into account the existing capabilities of candidates to determine the best fit based on the required skills for the task. A sample case study is used to show the methodology’s capabilities.

Keywords:Desirability Functions, Software Engineering, Resource Allocation, Multi-Critieria Resource Allocation

I. INTRODUCTION Task assignment decisions in software development

environments are critical because they influence the performance of workers and quality of products [1]. As documented in [2], the U.S. Department of Defense (DOD) spent nearly 8 billion dollars in 2004 to rework software. This large financial figure serves as evidence that quality-related issues continue to be a major struggle for software companies. Furthermore, “evidence reveals that the failure of software development projects is often a result of inadequate human resource project planning” [3]. In [4], Linberg stated that only about 16.2% of software projects are on time and within budget. A major contributor to this problem is the inefficient allocation of resources that may result in schedule overruns, decreased customer satisfaction, decreased employee morale, reduced product quality, and negative market reputation. The inevitable consequence is a decrease in potential profit for companies.

Despite all the research and advances in the field, software development is still very challenging due to its unpredictable nature. The fast pace at which new technologies and techniques are being developed today to improve the design and development of products increases the demand for specialized individual skills in the workforce. Most of the time, candidates with the required skills to work

tasks are not available, and decision makers are forced to assign resources to tasks based on subjective measures [1]. Therefore, further studies of the processes and techniques for personnel management are necessary to provide better solutions in terms of quality, cost, and schedule.

This paper proposes a multi-criteria decision making approach for allocating resources to software engineering task assignment. The approach uses Desirability Functions [5] to provide a unified metric representative of the suitability between the complete set of skills available from candidates and skills required for tasks. This way, decision makers can quantitatively assign resources to tasks even when the most desirable skills are not available from the existing workforce. The approach is extensible to consider a wide variety of project specific capabilities, such as years of experience, level of perceived expertise on a particular language, operating system, domain knowledge, etc. Moreover, the approach is simple and leads itself to usage through simple spreadsheets. Managers can use this methodology as a tool to increase the efficiency of resource allocation.

This paper is divided into six sections. Section II describes the literature related to resource allocation in software projects. Section III briefly describes the proposed methodology for personnel assignment. Section IV presents a detailed coverage of desirability functions. Section V presents results of the approach via several case studies. Finally, section VI provides conclusions.

II. BACKGROUND WORK In recent literature regarding the assignment of software

developers to tasks, Acuña et al. stated that software managers typically make assignments based on “their experience, heuristic knowledge, subjective perception, and instinct” [1]. In [6], Duggan et al. developed a multi-objective optimization model for software task allocation based on genetic algorithms. The competencies of developers were modeled using a categorical variable with five levels. Each competency level was associated with an expected productivity per day, and an expected number of defects per unit of productivity. Other studies have developed procedures for allocating personnel to software tasks based on the assessment of behavioral competencies [1, 7].

2010 12th International Conference on Computer Modelling and Simulation

978-0-7695-4016-0/10 $26.00 © 2010 IEEE

DOI 10.1109/UKSIM.2010.126

132

2010 12th International Conference on Computer Modelling and Simulation

978-0-7695-4016-0/10 $26.00 © 2010 IEEE

DOI 10.1109/UKSIM.2010.33

127

2010 12th International Conference on Computer Modelling and Simulation

978-0-7695-4016-0/10 $26.00 © 2010 IEEE

DOI 10.1109/UKSIM.2010.32

137

Page 2: [IEEE 2010 12th International Conference on Computer Modelling and Simulation - Cambridge, United Kingdom (2010.03.24-2010.03.26)] 2010 12th International Conference on Computer Modelling

In [3], Tsai et al. proposed selecting resources using the CRD method and the Taguchi’s parameter design approach. The CRD was used because it focused on resource scheduling rather than activity scheduling to represent human-resource workflow and tasks’ precedence. The Taguchi’s parameter design was used to obtain a scheme that would optimize the selection of engineers for tasks under dynamic and stochastic conditions. The Taguchi’s parameter design approach is based on the concept of target value [8]; that is, any deviations from the target value will result in additional costs. Deviations are attributed to controllable and uncontrollable factors. The aim is to achieve the optimal levels of the controllable factors while minimizing the variation caused by the nuisance (uncontrollable) factors [9].

In [3], the skill levels of resources were estimated as an average number of software lines of code (SLOC) per day. The authors commented on the importance of including in their model stochastic factors affecting the selection of resources. Specifically, emphasis was placed on the stochastic behavior of tasks complexities, since they are very difficult to measure or even estimate, causing most of the variability of calculated project completion times.

Other methodologies used to evaluate staffing alternatives include the Analytical Hierarchy Process (AHP) and linear programming (LP). In [10], Ho-Leung used AHP to tackle the problem of human resource substitution, considering several organizational, client, and application attributes. Even though the proposed model did not consider the relationship between known and required skills, the author commented about the importance of developing faster methods for human resource substitution. In [11], Otero et al. proposed an LP assignment model to match resources to tasks when optimum skill sets are not available. Their model takes into account existing capabilities of candidates, required levels of expertise, and priorities of required skills for the task.

From the reviewed literature, it is evident that there is much room for improved personnel assignment methodologies in software projects. The literature shows that the most common measure of the ability of a software developer is an estimated value of SLOC per day. Furthermore, this estimated SLOC value is usually a function of developers’ experience level. To the best of our knowledge, a readily available methodology that considers complete set of capabilities of candidates, levels of skills required, and priorities of required skills for tasks is nonexistent in the software development literature.

III. SOLUTION APPROACH To properly make resource allocation decisions in

software engineering projects, decision-makers must follow a decision-making process that takes into consideration the fundamental efficiency metrics present in specific projects. The creation of such process is achieved as follows. First, experienced project leads must identify the particular skill-set required for a particular project. Then, from the pool of available candidates, each candidate is scored on each skill based on previous performance, educational background, or

combination of both. In the proposed approach, we suggest a scale of 0 – 10, 0 being the least desirable and 10 being most desirable. Once each candidate is ranked on all required skills, the scores are used as input to desirability functions to compute a unified score. Finally, the candidates with higher desirability score will get selected for the particular project. This process is illustrated as follows.

Figure 1. Methodology Overview

IV. DESIRABILITY FUNCTIONS Desirability functions are a popular approach for

simultaneous optimization of multiple responses [5, 12]. They have been used extensively in the literature for process optimization in industrial settings, where finding a set of operating conditions that optimize all responses for a particular system is desired. Through desirability functions, each system response yi is converted into an individual function di that varies over the range 0 ≤ di ≤ 1, where di = 1 when a goal is met, and di = 0 otherwise [12]. Once each response is transformed, the levels of each factor are typically chosen to maximize the overall desirability, which is represented as the geometric mean of all m transformed responses [5].

Similar to industrial processes, the resource allocation process in software engineering can be optimized by finding the set of skills that provide the optimal candidate for a particular task. When formulated this way, desirability functions can be used to provide a unified metric that characterizes the fit of engineers based on a set of predefined skills. Once the desirability of all available engineers is computed, decision-makers can use this information to make resource allocation decisions by simply choosing the most desirable engineers.

A. Computing Desirability The first step in the desirability functions approach

involves the selection of candidates for a particular task. Ideally, each available candidate would be a good match for

133128138

Page 3: [IEEE 2010 12th International Conference on Computer Modelling and Simulation - Cambridge, United Kingdom (2010.03.24-2010.03.26)] 2010 12th International Conference on Computer Modelling

the assignment. However, in most practical scenarios this is not the case; leaving decision makers with a candidate pool assigned merely by other factors (e.g., availability). The candidate vector is presented in (1).

(1) Once the candidate vector is identified, each candidate

can be evaluated against a set of required project skill set s1, s2, …, sm on a scale of 0 – 10, where 0 represents the lowest score and 10 the highest. This assessment is carried out using the skill assessment matrix S presented in (2). As seen, each yij value of the matrix represents the score of jth candidate based on each individual ith skill.

(2) Finally, to assess the importance of each required skill

set, a weight vector W is created where ri represents the importance of the si skill using the previously identified 0 – 10 scale. The weight vector W is presented in (3).

(3) Once the information of X, S, and W is collected,

desirability values can be computed using the desirability matrix d presented in (4). As seen, each dij value of the matrix represents the desirability of the jth candidate based on each individual ith skill.

(4) Each individual desirability value dij is computed

according to decision-makers’ goals. For maximization and minimization, the desirability values are computed using (5) and (6) respectively [12],

Ty

TyLLTLy

Ly

d

ij

ij

rij

ij

ij

i

1

0

(5)

Uy

UyTTUyU

Ty

d

ij

ij

rij

ij

ij

i

0

1

(6)

where L and U are the lower and upper limits (i.e., 0 and 10 respectively), T is the target objective (e.g., 10 for maximization, 0 for minimization), and ri is the desirability weight for the ith skill. A desirability weight of r = 1 results in a linear desirability function; however, when r > 1, curvature is exposed by the desirability function to emphasize on being close to the target objective (T). When 0 < r < 1, being close to the target objective is less important. These concepts are illustrated in Figure 3 [12].

Figure 2. Maximization and Minimization Desirability Functions

Desirability functions can also be created to find

responses on a given range. In this case, the response yi is transformed using (7) [12], which results in the desirability function presented in Figure 4.

Uy

UyTTUyU

TyLLTLy

Ly

d r

r

ij

0

0

2

1

(7)

nc

cc

X�2

1

mnnn

m

m

m

yyy

yyyyyy

sss

S

����

21

22212

12111

21

mr

rr

W�2

1

mnnn

m

m

ddd

dddddd

d

����

21

22212

12111

134129139

Page 4: [IEEE 2010 12th International Conference on Computer Modelling and Simulation - Cambridge, United Kingdom (2010.03.24-2010.03.26)] 2010 12th International Conference on Computer Modelling

Figure 3. In Range Desirability Function

Once individual desirability values for each skill are computed, the overall candidate desirability value can be computed using (8). As seen, each overall desirability value is computed as the geometric mean of all m individual desirability values for candidates 1, 2, …, n.

(8)

V. CASE STUDY This section presents results of a resource allocation case

study using the proposed approach. The case study assumes a scenario where 10 candidates are available. The identified required skill set involves knowledge of the C# language, windows platform, web programming, and knowledge of the satellite communications domain. In addition, cost is identified as a decision making unit. Using synthetic data, the skill assessment matrix is presented in tabular form using Table I.

TABLE I. SKILL ASSESSMENT MATRIX FOR CASE STUDY 1

Candidate Skill Set

C# Windows Web SATCOM Cost 1 6 9 10 5 9 2 3 3 3 9 2 3 5 7 4 8 7

4 8 9 8 9 9 5 7 2 5 4 8 6 9 2 3 7 5 7 10 2 4 9 3 8 6 1 10 1 9 9 5 1 8 7 9

10 3 6 5 10 2

Using the candidates from Table I and the parameters

presented in Table II, the individual desirability values and overall desirability are presented in Table III. As seen, for this particular scenario, candidates 10, 4, 7, and 3 present the best overall fit for the required skills. These candidates have desirability values of 59%, 55%, 55%, and 50% for the particular task at hand. These results are representative of real world scenarios where none of the candidates are strongly desirable for the position.

TABLE II. DESIRABILITY FUNCTION PARAMETERS FOR CASE STUDY 1

Parameters Skill Set C# Windows Web SATCOM Cost

Target (T) 10 10 10 10 0 Weight (r) 1 1 1 1 1 Upper (U) 10 Lower (L) 0

TABLE III. SOLUTION SPACE FOR CASE STUDY 1

Candidate Desirability

d1 d2 d3 d4 d5 D 1 0.600 0.900 1.000 0.500 0.100 0.486 2 0.300 0.300 0.300 0.900 0.800 0.455 3 0.500 0.700 0.400 0.800 0.300 0.507

4 0.800 0.900 0.800 0.900 0.100 0.553

5 0.700 0.200 0.500 0.400 0.200 0.355 6 0.900 0.200 0.300 0.700 0.500 0.452 7 1.000 0.200 0.400 0.900 0.700 0.550 8 0.600 0.100 1.000 0.100 0.100 0.227 9 0.500 0.100 0.800 0.700 0.100 0.309

10 0.300 0.600 0.500 1.000 0.800 0.591 To show the effects of desirability weights on the overall

selection process, the case study is modified to presents results of the allocation process when domain knowledge (i.e., SATCOM) and cost are identified as the most important skills. This scenario is typical of the selection of software leads, where domain knowledge would be preferred over programming skills. The available candidates are presented in Table IV; the desirability functions’ parameters in Table V; and the desirability results in Table VI. As seen, when domain knowledge and cost are most important, the best identified candidates are 6, 9, and 7. In this case, it is evident that some candidates (e.g., 10) are completely undesirable for the position.

mm

iin

mm

ii

mm

ii

d

d

d

D

1

1

1

12

1

11

135130140

Page 5: [IEEE 2010 12th International Conference on Computer Modelling and Simulation - Cambridge, United Kingdom (2010.03.24-2010.03.26)] 2010 12th International Conference on Computer Modelling

TABLE IV. SKILL ASSESSMENT MATRIX FOR CASE STUDY 1A

Candidate Skill Set

C# Windows Web SATCOM Cost 1 10 8 5 4 4 2 1 8 6 7 3 3 2 6 5 8 8

4 9 7 3 2 6 5 9 5 5 7 6 6 4 9 8 10 5 7 8 4 7 8 1 8 9 1 4 8 2 9 10 6 5 9 3

10 3 4 7 6 10

TABLE V. DESIRABILITY FUNCTION PARAMETERS FOR CASE STUDY 1A

Parameters Skill Set C# Windows Web SATCOM Cost

Target (T) 10 10 10 10 0 Weight (r) 1 1 1 10 2 Upper (U) 10 Lower (L) 0

TABLE VI. SOLUTION SPACE FOR CASE STUDY 1A

Candidate Desirability

d1 d2 d3 d4 d5 D 1 1.000 0.800 0.500 0.000 0.360 0.109 2 0.100 0.800 0.600 0.028 0.490 0.231 3 0.200 0.600 0.500 0.107 0.040 0.192 4 0.900 0.700 0.300 0.000 0.160 0.020 5 0.900 0.500 0.500 0.028 0.160 0.252 6 0.400 0.900 0.800 1.000 0.250 0.591 7 0.800 0.400 0.700 0.107 0.810 0.455 8 0.900 0.100 0.400 0.107 0.640 0.301 9 1.000 0.600 0.500 0.349 0.490 0.552

10 0.300 0.400 0.700 0.006 0.000 0.000

VI. CONCLUSION The research presented in this paper develops a

systematic approach for planning resource allocation in software projects based on multiple criteria. Specifically, it presented a methodology that uses Desirability Functions to create a unified metric that represents how well software engineers fit a specific task. Through several case studies, the approach is proven successful in providing a way for analyzing resource assignment for application-specific projects.

There are several important contributions from this research. First, the approach is simple and readily available for implementation using a simple spreadsheet. This can

promote usage in practical scenarios, where highly complex methodologies for resource allocation are impractical due to schedule and budget constraints. Another important contribution from the approach presented in this research is the ability to consider numerous decision-making factors in the decision-making process. For example, besides the skills presented in the case studies, the approach can be easily extended to incorporate project-specific factors, such as expected availability, level of clearances, etc. Finally, the results provided by using this approach can be used by program managers to tailor scheduling goals to make them more realistic. For example, using the presented case studies, in some cases, it was shown that only a maximum of 59% candidate desirability was possible. In other cases, candidate desirability was as low as 0%. Depending on the overall desirability of all candidates in a team, program managers can determine if either more resources need to be allocated for the task, or scheduling requirements need to be relaxed to complete the project. Overall, the approach presented in this research proved to be a feasible technique for efficiently managing and planning the resource allocation process in software engineering projects.

VII. REFERENCES [1] Acuña, S. T., Juristo, N., Moreno, A., “Emphasizing human

capabilities in software development,” IEEE Software, pp. 94–101, 2006.

[2] U.S. General Accounting Office (GAO), “Defense Acquisitions: Stronger Management Practices Are Needed to Improve DOD’s Software Intensive Weapon Acquisitions,” Document number GAO-04-393, 2004.

[3] Tsai, H., Moskowitz, H., Lee, H., “Human resource selection for software development projects using Taguchi’s parameter design,” European Journal of Operational Research, vol. 153, issue 1, pp. 167-180, 2003.

[4] Linberg, K. R., “Software developer perceptions about software project failure: a case study,” The Journal of Systems and Software, vol. 49, pp. 177-192, 1999.

[5] Derringer, G., Suich, R., “Simultaneous Optimization of Several Response Variables,” Journal of Quality Technology, vol. 12, pp. 214-219, 1980.

[6] Duggan, J., Byrne, J., Lyons, G., “A task optimizer for software construction,” IEEE Software, pp. 76 – 82, 2004.

[7] Acuña, S. T., Juristo, N., “Assigning people to roles in software projects,” Software-Practice and Experience, vol. 34, pp. 675 – 696, 2004.

[8] Roy, R. K., “Design of Experiments Using the Taguchi Approach,” John Wiley & Sons, Inc., 2001.

[9] Ross, P., “Taguchi Techniques for Quality Engineering,” McGraw-Hill, 1996.

[10] Ho-Leung, R., “Using Analytic Hierarchy Process (AHP) Method to Prioritise Human Resources in Substitution Problem,” International Journal of the Computer, The Internet Management, vol. 9, issue 1, 2001.

[11] Otero, L. D., Centeno, G., Ruiz-Torres, A., Otero, C.E., “A Systematic Approach for Resource Allocation in Software Projects,” Computers and Industrial Engineering, vol. 56, pp. 1333 – 1339, 2009.

[12] Montgomery, D., Design and Analysis of Experiments, Wiley, 7th Edition, 2008.

136131141