25
Practical Human Resource Allocation in Software Projects Using Genetic Algorithm Jihun Park, Dongwon Seo, Gwangui Hong, Donghwan Shin, Jimin Hwa, Doo-Hwan Bae KAIST, South Korea SEKE 2014

[SEKE 2014] Practical Human Resource Allocation in Software Projects Using Genetic Algorithm

Embed Size (px)

DESCRIPTION

[SEKE 2014] Practical Human Resource Allocation in Software Projects Using Genetic Algorithm

Citation preview

Page 1: [SEKE 2014] Practical Human Resource Allocation in Software Projects Using Genetic Algorithm

Practical Human Resource Allocation in Software Projects Using Genetic Algorithm

Jihun Park, Dongwon Seo, Gwangui Hong, Donghwan Shin, Jimin Hwa, Doo-Hwan Bae

KAIST, South Korea

SEKE 2014

Page 2: [SEKE 2014] Practical Human Resource Allocation in Software Projects Using Genetic Algorithm

2

Outline• Introduction• Problem Definition• Practical Considerations• Genetic Algorithm for Human Resource Allocation• Case Study• Related Work• Conclusion• Discussion

Page 3: [SEKE 2014] Practical Human Resource Allocation in Software Projects Using Genetic Algorithm

Introduction• Software planning is becoming more complicated as

the size of software project grows.

• Software project managers can significantly benefit from the human resource allocation technique.

• Existing human resource allocation approaches only focused on minimizing the project cost.

Page 4: [SEKE 2014] Practical Human Resource Allocation in Software Projects Using Genetic Algorithm

4

Research Goal• We elicit the practical considerations on human re-

source allocation problem with a group of software project experts.

• We then suggest a novel Genetic Algorithm (GA) sat-isfying the practical considerations.

Page 5: [SEKE 2014] Practical Human Resource Allocation in Software Projects Using Genetic Algorithm

5

Problem Definition• Tasks– Defined by type, effort, and precedence relationship

• Developers– Defined by staff level and ability level.

Task A

Task B

Task C

Task D

Task E

Task F

Task information

Task Name Task F

Task Type Test

Effort needed 200 MH

Preceding Tasks Task C, Task E

Page 6: [SEKE 2014] Practical Human Resource Allocation in Software Projects Using Genetic Algorithm

Name Staff level

Anal-ysis … Test

Engi-neer 0.7 1.0

Man-ager 1.0 1.2

Direc-tor 1.5 0.8

Problem Definition• Tasks– Defined by type, effort, and precedency relationship

• Developers– Defined by staff level and ability level.

Task A

Task B

Task C

Task D

Task E

Task F

Task information

Tom

Jane

April

Developer information

Page 7: [SEKE 2014] Practical Human Resource Allocation in Software Projects Using Genetic Algorithm

Problem Definition• Tasks– Defined by type, effort, and precedency relationship

• Developers– Defined by staff level and ability level.

Task A

Task B

Task C

Task D

Task E

Task F

Name Staff level

Anal-ysis … Test

Engi-neer 0.7 1.0

Man-ager 1.0 1.2

Direc-tor 1.5 0.8

Tom

Jane

April

Developer informationTask information

Developer Assignment

Page 8: [SEKE 2014] Practical Human Resource Allocation in Software Projects Using Genetic Algorithm

8

Practical considerations• Eliciting practical considerations with a group of

software experts from..– Military research and development company– Software process consulting company– University

C1. Short project plan

The basic objective of human resource allocation.The plan should be finished within minimum timespan.

C2. Minimization of multitasking time

If a developer work for multiple tasks at the same time, productivity will decrease.

C3. Assignment on relevant tasks

Assigning a developer to both of pre-task and post-task is efficient in terms of minimizing the context-switching cost.

C4. Balance of allo-cation

Task size and staff level should be considered in the alloca-tion.

Page 9: [SEKE 2014] Practical Human Resource Allocation in Software Projects Using Genetic Algorithm

9

Genetic Algorithm• Evolutionary search-based algorithm

Representation

Selection

Crossover

Mutation

Representing an assignment result as a chromosome.

Selecting good chromosomes among the population.

Making a new chromosome from two parent chromosomes.

Mutating a chromosome to maintain genetic diversity.

t1 {d1} t2 {d2, d4} t3 {d1, d2, d3} t4 {d3, d5}

gene1 gene2 gene3 gene4

t1 {d1} t2 {d2, d4} t3 {d1, d2, d3} t4 {d3, d5}

t1 {d1} t2 {d2, d3, d4} t3 {d1, d2, d3} t4 {d3, d5}

Page 10: [SEKE 2014] Practical Human Resource Allocation in Software Projects Using Genetic Algorithm

How chromosomes evolve?

Initial population(randomly generated)

nth generation

Selection Crossover Mutation

2nd generation

A population has population_size chromosomes

Generation_countth

generation

Pick the best one.

Page 11: [SEKE 2014] Practical Human Resource Allocation in Software Projects Using Genetic Algorithm

11

Representation• Each gene contains a task and a set of developers.– Gene n represents a set of developers assigned to the task n

t1 {d1} t2 {d2} t3 {d1, d2, d3} t4 {d3}

gene1 gene2 gene3 gene4

Task 1

Task 2 Task 3

Task 4

d1

d2

d3

Task and developer information

An example of chromosome representation

Assignment example of the chromosome

Page 12: [SEKE 2014] Practical Human Resource Allocation in Software Projects Using Genetic Algorithm

Selection• Each chromosome is evaluated by fitness function• Elitism selection– Keep the best chromosome until the next generation.

• Tournament selection– Select two parent chromosome for a new chromosome.

Fitness score: 0.9

Fitness score: 0.87

Fitness score: 0.76

Fitness score: 0.6

Elitism selectionKeep the fittestchromosome to the next generation.

Randomly select k chromosomes

Pick two fittest chromosomes as parents

Tournament selection

Page 13: [SEKE 2014] Practical Human Resource Allocation in Software Projects Using Genetic Algorithm

13

Crossover• Uniform crossover– Using parent chromosomes which are selected by tourna-

ment selection process.– Generating a new chromosome for the next generation.– Randomly taking a gene among two genes from the parents.

t1 {d1} t2 {d2, d4} t3 {d1, d2, d3} t4 {d3, d5}

t1 {d2, d3} t2 {d1} t3 {d1, d5} t4 {d1, d3, d5}

c1 :

t1 {d1} t2 {d1} t3 {d1, d2, d3} t4 {d1, d3, d5}0.3 0.6 0.15 0.8

c2 :

cnew :

Random number :

Page 14: [SEKE 2014] Practical Human Resource Allocation in Software Projects Using Genetic Algorithm

14

Mutation• With a certain probability of the mutation (mutation

rate), each gene is mutated.• Three mutation operators– Assigning a random developer to the task.

– Removing a random developer from the task.

– Replacing an assigned developers with a random devel-oper.

t1 {d1} t2 {d2, d4} t3 {d1, d2, d3} t4 {d3, d5}

t1 {d1} t2 {d2, d3, d4} t3 {d1, d2, d3} t4 {d3, d5}

Before mutation :

After mutation :

t1 {d1} t2 {d2, d4} t3 {d1, d2, d3} t4 {d3, d5}

t1 {d1} t2 {d2} t3 {d1, d2, d3} t4 {d3, d5}

Before mutation :

After mutation :

t1 {d1} t2 {d2, d4} t3 {d1, d2, d3} t4 {d3, d5}

t1 {d1} t2 {d2, d3} t3 {d1, d2, d3} t4 {d3, d5}

Before mutation :

After mutation :

Page 15: [SEKE 2014] Practical Human Resource Allocation in Software Projects Using Genetic Algorithm

Scheduling simulation• The fitness function is calculated based on the scheduling

simulation.• Principles

– At every time tick, assigned developers reduce the remaining MH of a task.

– Developers start to work for a task, if every pre-task of the task is fin-ished.

time

developer

T1

T2

T4

T3T1

T5

T6

T1

T2

T3

T4

T5

T6

Page 16: [SEKE 2014] Practical Human Resource Allocation in Software Projects Using Genetic Algorithm

16

Fitness Function• The fitness function evaluates a chromosome by cal-

culating fitness score.

• The fitness function reflects practical considerations.

• The fitness score is weighted sum of four sub-scores.– Cost Minimization (CM) score– Concentration Efficiency (CE) score– Continuity Consideration (CC) score– Balance of Allocation (BA) score

Page 17: [SEKE 2014] Practical Human Resource Allocation in Software Projects Using Genetic Algorithm

17

Fitness Function (cont’d)• Cost Minimization (CM) score– Assessing whether the solution finishes early.– Comparing the timespan of the given solution with an

ideal timespan.

• Concentration Efficiency (CE) score– Assessing the burden of multitasking.

Taking 100 days Taking 80 days

<

T2

T5

T6

T2

T5

T6

<

Page 18: [SEKE 2014] Practical Human Resource Allocation in Software Projects Using Genetic Algorithm

Fitness Function (cont’d)• Continuity Consideration (CC) Score– Assessing consideration on the precedence relationships

between tasks.

• Balance of Allocation (BA) Score– Assessing how evenly the developers are allocated.

<

Manager only

Director only

Director

Engineer only

Engineer Manager,Engineer

EngineerManager,

ManagerDirector,

EngineerManager,

ManagerDirector,

<<100MH

300MH

100MH

300MH

Page 19: [SEKE 2014] Practical Human Resource Allocation in Software Projects Using Genetic Algorithm

19

Case Study• Assessing how well our GA reflects the practical con-

siderations.

• Comparing the results when GA only considers cost minimization and when considering the all objectives .

• Weights for fitness score :

𝐶𝑎𝑠𝑒𝑡𝑖𝑚𝑒 : {1 ,0 ,0 ,0 } ,𝐶𝑎𝑠𝑒𝑎𝑙𝑙={0.25 ,0.25 ,0.25 ,0.25 }

Page 20: [SEKE 2014] Practical Human Resource Allocation in Software Projects Using Genetic Algorithm

20

Case Study• Experimental setup– Three experiment sets

• Set1: 11 tasks / 7 developers• Set2: 11 tasks / 10 developers• Set3: 21 tasks / 10 developers

– Population size: 100, Generation count: 400, – Mutation rate: 0.05

Task set Developer set

Page 21: [SEKE 2014] Practical Human Resource Allocation in Software Projects Using Genetic Algorithm

21

Case Study

• Time: < • Multitasking time: > • # no precedence assignments: > • # tasks only one level assigned: > • Evenness of allocation: <

Experiment results

Overall, our GA reflect practical considerations better than an approach only considering cost minimization.

Page 22: [SEKE 2014] Practical Human Resource Allocation in Software Projects Using Genetic Algorithm

22

Related Work• Chang et al. (IST 2008) and Chen et al. (TSE 2013)– GA/ACO (Ant colony optimization) techniques considering

three-dimensional array with time, tasks, employee axes. – They only concentrated on minimizing cost in terms of

time and money.

• Kang et al. (SPE 2011)– A constraint-based approach considering constraints affect-

ing project schedule.– They assumed each program modules can always be de-

veloped in parallel.

Page 23: [SEKE 2014] Practical Human Resource Allocation in Software Projects Using Genetic Algorithm

23

Conclusion• We elicit practical considerations for human resource

allocation problem with a group of experts.

• We design a genetic algorithm reflecting the practical considerations by encoding them in fitness function.

• Our GA generates a practical human resource alloca-tion considering multitasking time, precedence rela-tionship, and balance of allocation.

Page 24: [SEKE 2014] Practical Human Resource Allocation in Software Projects Using Genetic Algorithm

24

Discussion• Threats to validity– Many previous approaches used skill sets to represent re-

quired capability of a task, but we use task types.– Our approach generates only one fittest solution. MOEA

approach can be used to generate more than one solution.

• Future work– Finding optimal parameters for GA.– Identifying more practical issues.– Studying the applicability of our approach in real-world.

Page 25: [SEKE 2014] Practical Human Resource Allocation in Software Projects Using Genetic Algorithm

Practical Human Resource Allocation in Software Projects Using Genetic Algorithm

Jihun Park, Dongwon Seo, Gwangui Hong, Donghwan Shin, Jimin Hwa, Doo-Hwan Bae

KAIST, South Korea

SEKE 2014

Thank you for lis-tening