1. Introduction
As a strategic high-tech industry, the software industry is an important support for social informatization. In 2023, the global software market size reached
$74.2 billion and is expected to reach
$378.6 billion by 2033 [
1]. However, due to the increasing complexity of software development business logic, the increasing cross-border and cross-regional collaboration of project teams, and the complexity and volatility of user needs, software development projects still face the challenge of low success rates [
2], and a large number of software development projects are difficult to deliver on time and within budget. According to the research results of the Standish Group on 23,000 software development projects, 46% of the projects exceeded the budget or schedule, and only 26% of the projects could be delivered on time and within budget [
3]. An important reason for the failure of many software development projects is the lack of effective scheduling [
4].
Software project scheduling aims to develop a baseline schedule that specifies when each employee should perform specific tasks while satisfying constraints such as precedence relationships and human resource skill requirements. In other words, software project scheduling lies in determining who undertakes what tasks throughout the lifespan of a software project. This schedule seeks to achieve optimal matching between employees with certain skills and tasks requiring those skills, thereby minimizing performance measures such as project makespan and cost. This is a crucial matter in the practice of software engineering, as the total budget and human resources involved need to be managed in an optimal way to ensure a successful project outcome.
The software project scheduling problem (SPSP) has been extensively studied. As an early representative study, Alba and Chicano (2007) [
5] applied the genetic algorithm to optimize task scheduling and staff employee assignment, with subsequent research building upon this foundation [
6,
7,
8]. Li and Womer (2009) proposed a hybrid benders decomposition algorithm that combines integer linear programming and constraint programming to model and solve the SPSP [
9].
Software development is a typical intelligence-intensive process. Whether multi-skilled employees can be effectively assigned is an important factor affecting the scheduling effect of software projects. Based on the model proposed by Alba and Chicano (2007) [
5], Wang and Zheng (2018) [
10], Rodríguez et al. (2011) [
11], and Akbar et al. (2024) [
12] considered varying skill levels among employees, proposing multi-objective fruit fly optimization algorithms, multi-objective simulation optimization algorithms, and greedy and parallel scheduling algorithms, respectively. García and Gómez (2014) further set differentiated salaries for different employees according to their skill levels so that “experts” and “novices” enjoy salary levels that match their skill levels [
13]. Li et al. (2023) explored the software project scheduling problem with variable activity durations in which the task duration depends on the assigned employees and their skill levels [
14]. Janiak and Rudek (2009) [
15], Kuo and Yang (2011) [
16], Wang and Wang (2013) [
17], Niu et al. (2014) [
18], Lin (2014) [
19], and Korytkowski and Malachowski (2019) [
20] considered the learning effects during software project scheduling, i.e., the phenomenon that employees’ familiarity with skills gradually increases with the length of use. Additionally, due to the complexity and volatility of user needs in software development projects, employees may need to acquire new skills not previously mastered. Shen et al. (2024) developed a dynamic model incorporating mechanisms for new skill acquisition and designed a predictive–reactive scheduling method based on a multi-population coevolutionary algorithm to solve this problem [
4]. Guo et al. (2019) comprehensively considered the learning and forgetting effects, dynamically evaluated the skill level of employees, and used a multi-objective fireworks algorithm to solve the problem to minimize project cost and duration [
21]. Shen et al. (2018) introduced a novel perspective on learning effects, suggesting that learning outcomes are influenced by employees’ motivation and learning ability. They also included employee satisfaction with the personnel assignment as one of the objectives and proposed a multi-objective, two-archive memetic algorithm based on a Q-learning algorithm for solving this problem [
22]. Nigar et al. (2022) accounted for the improvement in employees’ learning abilities over time along with the evolution of their experience and reassigned tasks in a dynamic environment. To solve this problem, they employed various heuristic algorithms [
23].
The above studies focus mostly on individual skills and do not take into account the synergistic utility between team members. Kosztyán et al. (2022) examined not only individual skill efficiency but also pairwise synergy effects among employees, analyzing the impact of synergy on project cost [
24]. Building on this, Kosztyán et al. (2024) further studied the effect of autonomous team role selection and model and analyzed team roles and their synergy through a matrix-based project planning method [
25]. Zhang et al. (2023) argued that interpersonal relationships within a team can affect the performance of software development projects. Consequently, they investigated the software project scheduling problem considering team dynamics, introducing communication cost as a factor and quantifying its relationship with changes in interpersonal interactions and improvements in skill proficiency. To solve this problem, they proposed an improved bi-population discrete evolutionary algorithm [
26]. Chend et al. (2019) targeted the dynamic complexity of team collaboration and considered the employees’ leave and return during the software development process as well as the specific constraints on rework tasks caused by different programming habits among employees, thereby enhancing the robustness of the scheduling scheme [
27].
Although scholars have conducted extensive research on software project scheduling from many perspectives of human resources, few studies have incorporated employee personality factors into the scheduling process of software projects, which undoubtedly affects the effectiveness of scheduling software projects that are significantly intelligence intensive. Personality reflects people’s behavior patterns, thinking patterns, and emotional reactions, which affect employees’ work performance [
28]. Dhani and Sharma (2018) showed that personality traits have a significant impact on the work performance of IT employees and can serve as predictors of work performance [
29]. Furthermore, the risks associated with employee performance are a critical component of project risk. Enhancing employee performance is an effective strategy for reducing project risks and improving project success rates [
30,
31]. Jones et al. (2023) noted that many software development teams have abandoned the use of planning poker for workload estimation during the development of minimum viable products [
32]. This is due to the method’s failure to account for the heterogeneity of team members, making it difficult to achieve the expected effect [
33]. It is worth noting that some scholars have considered personality traits in areas other than project scheduling. For example, Hamid et al. (2019) took the decision-making styles of surgical team members (as personality traits) into consideration to improve the efficiency of cooperation among surgical team members [
34].
Therefore, to close the gap that employee personality has not been considered in the field of software project scheduling, we consider the matching of employee personality traits with different types of tasks during the software project scheduling process, which will help improve employees’ work performance and thereby increase the success rate of software projects. At the same time, our study provides a valuable reference for software project managers to formulate scientific and effective employee assignment plans, optimize human resource allocation and team division, and promote collaboration based on factors such as employee personality traits and skill levels.
Additionally, due to external disruptions and management demands, tasks in software development may experience temporary interruptions, such as developers switching between different tasks. This implies that tasks in software project scheduling are preemptive. Existing studies have shown that considering preemption during scheduling can lead to better project makespan [
35] and more balanced resource utilization [
36]. However, in software project scheduling, few studies consider preemption.
Therefore, given the lack of consideration of task preemption and employee personality traits in software project scheduling, we propose and study the preemptive software project scheduling problem considering personality traits (PSPSP-PT). Our main contributions are as follows: (1) We formulate a mixed-integer linear programming model for the PSPSP-PT, which incorporates multiple factors, such as task preemption, employee personality traits, and uncertain workload, in the project scheduling process; (2) to efficiently solve the PSPSP-PT, we design a dual priority rules-based heuristic algorithm (DPRA) that can achieve effective scheduling through task selection and employee assignment; (3) we conduct computational experiments and compare the proposed algorithm with an estimation of distribution algorithm (EDA). The comparison results demonstrate the effectiveness and efficiency of our algorithm.
Our study provides software project managers with a flexible and effective scheduling tool that optimizes the allocation of human resources by comprehensively considering employee skills, personality traits, and task preemption. This will help improve project execution efficiency and reduce overall costs. The rest of this paper is structured as follows. We describe the PSPSP-PT in
Section 2. In
Section 3, we formulate a mixed-integer programming for the PSPSP-PT. In
Section 4, we design a dual priority rules-based heuristic (DPRA).
Section 5 evaluates the performance of the DPRA through computational experiments and compares it with the baseline algorithm. Finally,
Section 6 concludes this paper and discusses future directions.
2. The Preemptive Software Project Scheduling Problem Considering Personality Traits
This section describes the PSPSP-PT and illustrates the problem with an example.
2.1. Problem Statement
The PSPSP-PT is described as follows.
Task A software project is represented by a directed graph , where is the set of nodes, representing the tasks in the project. The dummy tasks 0 and stand for the beginning and the end of the project, respectively. The arc set is the set of precedence relationships. If , there is a precedence relationship between tasks and , which means the start time of task should not be earlier than the finish time of task . We call task the predecessor of task , and task is the successor of task . and represent the immediate predecessor and immediate successor task sets of task , respectively. The duration , the start time , and the finish time of each task are all integers. Note that the duration of dummy tasks is 0. The deadline of the project is .
Preemption During execution, each task can be preempted at any integer timepoint and can be preempted at most times. After task is preempted, it can continue to be executed at any subsequent timepoint. Consequently, each non-dummy task can be decomposed into unit-duration subtasks . There exists a precedence relationship between adjacent subtasks (). Each subtask must be executed exactly once.
Skills Each task requires at least one skill during execution. The set denotes the skills required in the project, and represents the skills involved in subtask . The main resources in a software project are multi-skilled employees, and the employee set is denoted as . The subset contains employees equipped with skill . The workload of skill in subtask is denoted by . If employee is assigned to subtask , then represents the workload contributed by this employee using skill on subtask . Dummy tasks do not consume any resources. For the same skill, different employees have different proficiency levels. The efficiency of employee in skill is denoted by , with representing the time required for employee to complete a unit workload using skill . If employee does not possess skill , then .
Work Intensity We let parameter
denote the estimated upper bound of work intensity that all employees must endure per unit time, where
. A higher
implies a greater workload for the employees.
is calculated as follows:
where
represents the maximum working time of employee
per unit time;
represents the average workload demand of all tasks for the skills required,
=
; and
represents the number of skill types required by task
.
Personality Traits From the perspective of how personality traits affect employee work efficiency, we comprehensively consider the impact of the degree of match between employee personality traits and the skills they use on their work efficiency. For instance, tasks such as user experience analysis are often performed more effectively by extroverted employees due to their inherent strengths in social interaction and communication.
We introduce the matching coefficient
, which represents the degree of match between employee
’s personality traits and the task requiring skill
. When
, it indicates that employee
’s performance in personality traits just meets the requirements of skill
, with no effect on work efficiency. When
, employee
e’s performance in personality traits exceeds the requirements of skill s, which has a positive impact on work efficiency. Conversely, when
, employee
’s performance in personality traits does not meet the requirements of skill
, resulting in reduced work efficiency. The matching coefficient
is calculated based on the study by Santos et al. (2013) [
37], incorporating personality traits into the calculation process. First, using the Big Five Personality Traits model, employees’ personality traits are measured on five dimensions, neuroticism (N), extraversion (E), openness to experience (O), agreeableness (A), and conscientiousness (C), with results denoted as
, representing employee
’s score on dimension
. Then,
is introduced as the weight of dimension
’s impact on skill
, with its value obtained through expert scoring. The matching coefficient
of employee
using skill
can be expressed as follows [
37]:
where
measures the degree of match between employee
and skill
on dimension
,
.
indicates that employee
’s score on dimension
just meets the demand level of skill
, that is,
;
indicates that employee
does not meet the demand level of skill
on dimension
;
indicates that employee
’s score exceeds the demand level of skill
on dimension
.
is a scaling factor, which is used to reduce the matching coefficient more when the attributes with higher weights do not match. It is calculated as follows [
37]:
Subsequently, we consider the effect of personality matching on employee efficiency, resulting in the adjusted efficiency .
Scheduling objective The task of the PSPSP-PT is to generate a schedule that indicates the start time of each task and assign multi-skilled employees with varying personality traits to appropriate tasks while satisfying constraints such as skill matching, precedence relationships, and the project deadline such that the total project cost is minimized. The total cost of the project consists of two items: (1) The total basic salary of employees (), where is the basic salary of employee per unit time, and is the start time of the dummy task , which corresponds to the project makespan (regardless of whether employees are assigned tasks, they are entitled to receive their basic salary); (2) the total performance salary of an employee (), where is the performance salary of employee per unit time, and is the actual working duration of employee (employees will only receive performance pay if they participate in the tasks).
2.2. Example
This section shows an example that demonstrates our problem. We assume that a software system development project consists of three non-dummy tasks. The project network graph is shown in
Figure 1, where solid circles indicate non-dummy tasks, dashed circles indicate dummy tasks, the numbers inside the circles are task indexes, and the numbers above the circles are task durations. The skills required in the project are programming (
), database design (
), and web design (
).
Table 1 shows the information about the skills required in each task, the workload required at each stage, and the duration. For example, task 3 requires one employee with programming skills, where the efficiency of programming skills is 1, to work 1.6 man-hours per day for a total of three days to complete. The project involves three employees, and their basic information (maximum working hours per day, performance salary, basic salary, skill efficiency, matching coefficient) is shown in
Table 2.
3. Mixed-Integer Linear Programming Model
In this section, we formulate a mixed-integer linear programming model for the PSPSP-PT. In addition to the decision variable
mentioned above, we further introduce the decision
, which indicates whether the
th subtask of task
(
) starts at instant
. Specifically, when the duration
of task
is zero, indicating it is a dummy task with no subtasks, the decision variables simplify to
and
, with the subscript
omitted. The value rules for
are as follows:
Thus, the start time of subtask
is given by
. For non-dummy tasks
, the start time
, and the end time
. The project start time
, and the project duration
. Based on the above description, the mixed-integer linear programming model for the PSPSP-PT is formulated as follows:
In the above model, the objective function (5) minimizes the total cost of the project, where represents the sum of the basic salary for all employees with a weighting factor of . represents the performance salary of employees with a weight coefficient , considering that, in practice, the basic salary of employees is a fixed cost of the enterprise. In addition to undertaking project tasks, employees also have to undertake other work, such as the daily affairs of the enterprise. The basic salary cost of employees during the project period should be allocated to other affairs of the company, so , and the performance salary as the performance reward for employees participating in the project is completely part of the human cost of the project, so .
Constraint (6) ensures that each subtask has exactly one start time throughout the project. Constraint (7) describes the precedence relationship constraint between tasks, i.e., the start time of the first subtask of the subsequent task should be no earlier than the finish time of the last subtask of the preceding task . Constraint (8) describes the precedence relationship constraint between subtasks in task . Constraint (9) indicates that, for any instant , if subtask starts at instant (), then the workload demand of subtask for various skills () needs to be allocated. The allocation object is the employee with skill , i.e., , and the allocated workload is . Constraint (10) is a resource constraint. The time required for any employee to complete the assigned workload in any subtask cannot exceed the maximum working time of the employee per unit time . Constraints (11) and (12) define the value range of decision variables and .
Note that the impact of employee personality is considered in our model. Specifically, in our objective function (5), personality trait-related factor is considered. The same factor is also considered in constraint (10) when dealing with the resource constraint. It is also worth noting that the establishment of the mixed-integer linear programming model enables a clearer articulation of the decision variables, objectives, and constraints of the problem.
The PSPSP-PT in this paper is NP-hard. Specifically, consider a special case of the PSPSP-PT. First, let the duration of each task be 1. Second, assume that each employee possesses only one skill with identical skill efficiency and matching coefficients and that the maximum working time for each employee is the same, i.e.,
. Then, let the basic salary per unit time of each employee be 1, and do not consider the employee’s performance salary, i.e.,
. Under the above conditions, the PSPSP-PT becomes the classic resource-constrained project scheduling problem (RCPSP) with the objective of minimizing the project makespan. The RCPSP is NP-hard [
38]. Consequently, as a generalization of the RCPSP, the PSPSP-PT is also NP-hard. Therefore, in order to efficiently solve large-scale instances, we will design a heuristic scheduling algorithm in the next section.
4. A Dual Priority Rules-Based Heuristic
By analyzing our problem and model, we find that the following two factors significantly affect the total cost of software projects: (1) project duration—the shorter the project duration, the smaller the total basic salary of employees; (2) employee efficiency. When assigning employees to meet the workload requirement for skill in subtask (i.e., ), prioritizing the employee with higher skill efficiency can help reduce the project duration, thereby minimizing the costs associated with performance salary.
Based on the above analysis, we design a dual priority rules-based heuristic scheduling algorithm (DPRH) to efficiently solve the PSPSP-PT. The algorithm addresses two key problems (i.e., task selection problem and employee assignment problem) that need to be solved in the PSPSP-PT and designs task selection priority rules and employee assignment priority rules, respectively, making full use of the above two factors to construct a schedule that can minimize the total cost of the project. In our DPRH, different priority rules related to task selection and employee assignment can be flexibly embedded.
The main process of our DPRH is as follows. First, the project network is converted into a unit-time project network (
Section 4.1) to cope with the task preemption. Then, the following steps are repeated until all tasks are scheduled: (a) select the next task to be executed based on task selection priority rules (
Section 4.2); (b) determine the start time of the selected task and assign employees to it based on employee assignment priority rules (
Section 4.3).
4.1. Generation of Unit-Time Project Network
The purpose of generating a unit-time project network is to address the task preemption. The basic idea of converting the project network
into the unit-time project network
G′ is to divide each task
in
into subtasks
with a duration of one time unit. These subtasks are renumbered as nodes, and the precedence relationships between subtasks in the same task are added. These subtasks, the newly added priority relationships, and the original priority relationships in
together constitute
G′. Specifically, each node in
G′, i.e., subtask
, is renumbered starting from 0 (0 denotes a dummy start task) to create a new task set
, and the number of the subtask
in the set
is
. The precedence relationship
in the project network
is converted into the precedence relationship
between the first subtask
(with numbering
) of the subsequent task
and the last subtask
(with numbering
) of the predecessor task
. Additionally, precedence relationships between the subtasks of task
are incorporated. Based on the above method, the example project network in
Section 2.2 can be converted into the unit-time network shown in
Figure 2. The duration of each subtask in
Figure 2 is one unit, and the resource requirements of the subtask are the same as the original task.
Subsequent scheduling will be based on G′. The advantage is that there is no need to consider the task preemption separately because each subtask already has a unit duration. If there is no time delay between all subtasks of a task, it means that the task has not been preempted; if there is a time delay between two or more subtasks, it means that the task has been preempted at least once.
After obtaining the unit-time network G′, initialize the DPRH by setting the start time of the dummy start task . Define the set of scheduled tasks , and the set of schedulable tasks is an empty set. Initialize the resource availability matrix , where each element represents the available work capacity of employee in period .
4.2. Task Selection Based on Priority Rules
Our DPRH offers a variety of priority rules for task selection. With the objective of minimizing the total project cost as much as possible, six different priority rules are incorporated, with their definitions provided in
Table 3. During the execution of our DPRH, any of the priority rules can be applied.
4.3. Employee Assignment Based on Priority Rules
In the DPRH, we design an employee assignment algorithm based on priority rules (Algorithm 1). Given a task that requires employee assignment, the algorithm first determines the employee assignment order based on the priority rules and then determines the start time of the task as early as possible while satisfying various constraints.
Algorithm 1. Employee assignment algorithm |
Input: task , earliest start time , latest start time , resource availability matrix , employee assignment priority rules |
Output: start time , workload of employee using skill on subtask , remaining resource availability matrix |
1 | Initiation: ;; calculate the earliest/latest start time for based on the Critical Path Method |
2 | While |
3 | |
4 | |
5 | |
6 | For s = 1 to |S| |
7 | Select skill from according to the skill scheduling order |
8 | |
9 | If |
10 | For e = 1 to || |
11 | Select employee from according to the priority rule |
12 | If |
13 | |
14 | |
15 | |
16 | |
17 | else |
18 | |
19 | |
20 | |
21 | End For |
22 | If and |
23 | Taks cannot start at instant |
24 | |
25 | |
26 | |
27 | End For |
28 | If |
29 | Return the current start time and the updated resource availability |
30 | else |
31 | |
32 | End while |
In Algorithm 1, given a task , starting from its earliest start time (), the requirements of task for various skills are met in descending order according to the skill scarcity (). If, during the assignment process, it is discovered that resources are insufficient (i.e., when and the skill requirement remains unmet), the time delay is incremented (lines 22–26 of Algorithm 1, where the sum of and determines the earliest feasible start time for task ) until a suitable start time is found that ensures all skill requirements within the duration of task are met. The algorithm ultimately outputs the start time of task , the assigned employees, and the workload of these employees.
Table 4 shows the priority rules used for employee assignment in Algorithm 1. During the execution of Algorithm 1, any priority rule can be selected from
Table 4. There are two approaches to reducing project cost during employee assignment: prioritizing employees with higher efficiency and those with better personality matching. For this purpose, we design the maximum initial skill efficiency priority rule (
) and the maximum personality matching coefficient priority rule (
). Combining the above two factors, i.e., considering the influence of personality traits on employee efficiency, we also design the hybrid priority rule: the maximum adjusted skill efficiency priority rule (
). In addition, the random priority rule
randomly selects one of the three priority rules mentioned above. In the case of multiple employees with the same priority value, the employee with the smallest number will be selected.
Applying our DPRH to solve the example project in
Section 2.2, the resulting schedule is shown in
Figure 3. In
Figure 3, the vertical axis is the employee index, and the horizontal axis is the time. Each rectangle in
Figure 3 represents a subtask. Inside the rectangle, we give the subtask number of the task that the rectangle belongs to and the skills used in the task. Looking at
Figure 3 horizontally, we can observe which tasks each employee is assigned to. As can be observed in
Figure 3, the task web design and implementation (task 1) is preempted after its first subtask is completed, and its subsequent subtasks continue to be executed at instant 4. In this schedule, the total project cost is 402.
4.4. Computational Complexity Analysis
The worst-case running time complexity of our dual priority rules-based heuristic algorithm is analyzed as follows. The complexity of generating the unit-time project network is . The complexity of determining the task scheduling order based on priority rules is , where is the total number of subtasks in the unit-time project network and is the number of precedence relationships. The complexity of calculating the employee assignment priority is . Therefore, Algorithm 1 is characterized by a complexity of , where is the maximum slack time across all subtasks.
Based on the above estimation, the complexity of our DPRH is acceptable and does not involve non-polynomial computational complexity.
6. Conclusions and Future Research
In this paper, we have studied the preemptive software project scheduling problem considering personality traits in which employees with varying skills and personality traits are scheduled facing constraints such as skills and precedence relationships such that the project cost is minimized. We formulate a mixed-integer programming model for the problem and design a dual priority rules-based heuristic algorithm. Based on computational experiments on a benchmark dataset containing 320 instances, the performance of our algorithm is analyzed and compared with the EDA. The results reveal that our algorithm outperforms the EDA in both solution quality and time. In terms of the mean objective function values of the obtained schedules, our algorithm is 14.63% higher than the EDA. In the meantime, the average calculation time of our algorithm (4.97 s) is much shorter than that (723.44 s) of the EDA. The sensitivity analysis further indicates that our algorithm is robust and can be effective, especially when there are few employees and large task workloads. In addition, our DPRH can achieve satisfactory scheduling results whether the employee skills are ideally matched with their personality traits or the matching degree is low.
Compared with existing studies that deal with planning a project [
8], our study provides important references for software project managers in their practical work to create a more comprehensive plan. Our results indicate that, in software project management, project managers should pay attention to the understanding and evaluation of the personality traits of team members. By rationally scheduling team members with different skills and personality traits, the schedule and human resource allocation can be optimized, thereby reducing the overall cost of the project. In addition, project managers should effectively utilize the task preemption and arrange tasks in an interspersed manner to shorten the project duration.
The limitation of our study is that, although our algorithm can yield satisfactory solutions in a short time, it may not achieve optimal solutions in some cases. Future research will consider designing a branch-and-bound algorithm for the PSPSP-PT to obtain the optimal solution for small-scale instances. Additionally, our study assumes a deterministic environment and does not account for uncertainties, such as employee resignation and uncertain activity duration. Therefore, investigating the PSPSP-PT problem in uncertain environments represents a valuable area for further study.