Keywords

1 Introduction

One of the most important task for project managers is to prepare the schedule. To arrange an optimal schedule the manager must have knowledge of tasks structure and their workload. Tasks structure is based on the execution order, determining predecessors and successors of each task. Workload is defined as the standard time needed to complete each task [1, 5, 6, 9,10,11,12,13,14]. In many works the authors consider the situation where co-operators are allowed [2,3,4]. However, it is not assumed that co-operation is not additive. In addition, co-operation does not reduce the costs, but shorten the execution time of a set of tasks. In this paper is considered exactly such a problem.

In fact, duration of the task execution depends on the employee who performs the task. In many situations, experience and skills of workers can result in significant differences in the execution time of tasks. According to the conducted research, an experienced employee can perform assigned tasks several times faster than a novice worker.

The manager usually has a team composed of both experienced and novice staff. Therefore, it is crucial which worker will perform a given task. The correct assignment of the task performers can result in a significant shortening duration of the overall project.

In practice, the knowledge about the productivity of each team member increases with the development time. If the manager is able to measure productivity, he can reschedule next stages of the project in a way to achieve optimal results. Therefore, the toolkit of a project manager must be equipped with computer-aided tools, allowing him/her to prepare the schedule as a result of a defined optimization problem. Preparing the schedule project manager should take into account individuals’ productivity determined by analyzing historical data of tasks implementation. Consequently, measured productivity is used in preparing the schedule in an optimal manner (minimizing the time needed to complete project tasks by a team of workers with different skills).

In the article we assume scheduling of the project on the understanding that employees can cooperate and divide daily working time between tasks. It means that a task can be performed by more than one worker at the same time and a worker can perform more than one task at a time.

2 Mathematicl Model

2.1 The Problem Formulation

We assume that:

\( R = \left\{ {1,2,3, \ldots ,r, \ldots ,R} \right\} \) :

- is a set of numbers of the project task types

\( Z = \left\{ {1,2,3, \ldots ,z, \ldots ,Z} \right\} \) :

- is a set of numbers of project tasks

The types of project tasks, that have to be performed, can be described by the vector:

$$ R^{Z} = \left( {r_{1} ,r_{2} , \ldots ,r_{z} , \ldots ,r_{Z} } \right) $$

where \( r_{z} \) - is the number of the type of the z-th task, \( r_{z} \in R,z \in Z. \)

The task performance time is defined as an average time needed to perform the task by a worker without special skills. This time is called the reference time. The reference time is used to determine the task performance time of more qualified worker. The reference times for project tasks can be described by the vector:

$$ C^{w} = \left( {c_{1}^{w} ,c_{2}^{w} , \ldots ,c_{z}^{w} , \ldots ,c_{Z}^{w} } \right),z \in Z $$

The project tasks can include information about the need to perform other tasks before you started current task. Predecessors can be described by a matrix

$$ D = \left[ {d_{ij} } \right]_{z \times z} $$

where

$$ \begin{array}{*{20}l} {d_{{z_{1} z_{2} }} = \left\{ {\begin{array}{*{20}l} {1 - {\text{if}}\,{\text{the}}\,{\text{execution}}\,{\text{of}}\,{\text{task}}\,{\text{z}}_{2} \,{\text{have}}\,{\text{to}}\,{\text{precede}}} \hfill \\ {\quad \,\,\,{\text{the}}\,{\text{execution}}\,{\text{of}}\,{\text{task}}\,{\text{z}}_{1} } \hfill \\ {0 - {\text{otherwise}}} \hfill \\ \end{array} } \right.} \hfill \\ {\begin{array}{*{20}l} {} \hfill & {z_{1} ,z_{1} \in Z} \hfill \\ \end{array} } \hfill \\ \end{array} $$

For the description of workers we assume that

\( P = \left\{ {1,2,3, \ldots ,p, \ldots ,P} \right\} \) – set of number of employees, to be taken into account in the tasks execution.

The suitability for performance of specific types of tasks can be defined for each employee. Let it be described by following matrix

$$ U = \left[ {u_{pr} } \right]_{P \times R} $$

where

$$ \begin{array}{*{20}l} {u_{pr} = \left\{ {\begin{array}{*{20}l} {1 - {\text{when}}\,{\text{the}}\,{\text{p}}^{th} \,{\text{employee}}\,{\text{is}}\,{\text{able}}\,{\text{to}}\,{\text{accomplish}}\,{\text{the}}\,{\text{task}}\,{\text{of}}\,{\text{type}}\,{\text{r}}} \hfill \\ {0 - {\text{otherwise}}} \hfill \\ \end{array} } \right.} \hfill \\ {\begin{array}{*{20}c} {} & {p \in P,r \in R} \\ \end{array} } \hfill \\ \end{array} $$

The productivity of individual employees is different during the performance of different types of tasks. The difference in productivity of a given employee at a particular type of task is defined by a coefficient \( \beta \), that represents how many standard time units assigned to perform a particular task the worker performs in one unit of his working time. Thus, the effectiveness of workers in the tasks of different types is defined by vector

$$ \beta_{p} = \left( {\beta_{p1} ,\beta_{p2} , \ldots ,\beta_{pr} , \ldots ,\beta_{pR} } \right),p \in P $$

Of course, if the p-th employee is not suitable for the task of r-type, which is defined in the matrix \( U \): \( u_{pr} = 0 \), then there is also equality \( \beta_{pr} = 0 \).

Taking into account the productivity of the employee, the time for the task by the p-th worker (provided that the employee p suited to this type of task, namely \( \beta_{pr} > 0,\,u_{pr} = 1 \)) is:

$$ c_{pz} = \frac{{c_{z}^{w} }}{{\beta_{{pr_{z} }} }} $$

where

$$ p \in P,z \in Z,r_{z} \in R^{z} ,c_{z}^{w} \in C^{w} $$

2.2 Decision Variables

The decision relating to the project schedule is described by matrix-vector:

$$ \left( {X,T, X^{\prime}} \right) $$

where:

$$ X = \left[ {x_{pz} } \right]_{P \times Z} $$

and

$$ \begin{array}{*{20}l} {x_{pz} = \left\{ {\begin{array}{*{20}l} {1 - {\text{if}}\,{\text{the}}\,{\text{p}} - th\,{\text{worker}}\,{\text{will}}\,{\text{perform}}\,{\text{z}} - th\,{\text{task}}} \hfill \\ {0 - {\text{otherwise}}} \hfill \\ \end{array} } \right.} \hfill \\ {\begin{array}{*{20}c} {} & { p \in P,z \in Z,} \\ \end{array} } \hfill \\ \end{array} $$
$$ T = \left( {\tau_{1} ,\tau_{2} , \ldots ,\tau_{z} , \ldots ,\tau_{Z} } \right), $$
$$ \tau_{z} - {\text{start}}\,{\text{time}}\left( {{\text{number}}\,{\text{of}}\,{\text{an}}\,{\text{hour}}} \right){\text{of}}\,{\text{the}}\,{\text{z}} - {\text{th}}\,{\text{task,}} $$

and

$$ X^{{\prime }} = \left[ {x_{pz}^{{^{{\prime }} }} } \right]_{PxZ} $$
$$ x_{pz}^{{\prime }} = \left\{ {\begin{array}{*{20}l} {t_{pz}^{{\prime }} - {\text{if}}\,{\text{x}}_{pz} = 1} \hfill & {{\text{than}}\,t_{pz}^{{\prime }} \in \left\{ {1,2, \ldots ,l_{p} } \right\}{\text{means}}\,{\text{amount}}\,{\text{of}}\,{\text{hours}}\,{\text{during}}\,{\text{a}}\,{\text{day,}}} \hfill \\ {} \hfill & {{\text{when}}\,{\text{p - th}}\,{\text{worker}}\,{\text{perfoms}}\,{\text{z - th}}\,{\text{task}}} \hfill \\ {0 - {\text{if}}\,{\text{x}}_{pz} = 0} \hfill & {} \hfill \\ \end{array} } \right. $$

\( x^{\prime}_{pz} \) can also be represented using binary variables \( x^{\prime}_{pzl} \), and then becomes:

$$ x^{\prime}_{pz} = \sum\limits_{l = 1}^{{l_{p} }} {x^{\prime}_{{pz{^{\prime}}l}} } $$

2.3 Problem Constraints

CA: each task must be completed by exactly one worker

$$ \sum\limits_{p = 1}^{P} {u_{{pr_{z} }} x_{pz} = 1,z \in Z} \quad \left( {CA} \right) $$

CB: each worker has to perform at least one task

$$ \sum\limits_{z = 1}^{Z} {u_{{pr_{z} }} x_{pz} \ge 1,p \in P } \quad \left( {CB} \right) $$

CC: task precedence must be taken into account

The condition that the task \( z^{{\prime \prime }} \) must precede task \( z^{{\prime }} \) can be written as follows:

$$ \tau_{{z^{{\prime }} }} \ge d_{{z^{{\prime }} z^{{\prime \prime }} }} \cdot \left( {\tau_{{z^{{\prime \prime }} }} + \sum\limits_{{\begin{array}{*{20}c} {p = 1} \\ {u_{{pr_{{z^{{\prime \prime }} }} }} \ne 0} \\ \end{array} }}^{P} {x_{{pz^{{\prime \prime }} }} \cdot \frac{{c_{{z^{{\prime \prime }} }}^{w} }}{{\beta_{{pr_{{z^{{\prime \prime }} }} }} }}} } \right)\quad \left( {\text{CC}} \right) $$

for \( z^{{\prime }} ,z^{{\prime \prime }} \in Z,z^{{\prime }} \ne z^{{\prime \prime }} \)

CD: the worker cannot work more than \( \varvec{l}_{\varvec{p}} \) (i.e. 8) hours per day

To check the condition that the employee does not work more than eight hours a day, for each of the individual tasks, check for all tasks occurring at the time of its initiation, if the amount of time spent per day on their implementation does not exceed eight hours.

To select tasks that are performed at the start time of another task it should be noted that the task \( z^{{\prime }} \) continues at the start time of the task \( z^{{\prime \prime }} \) if each of the following inequalities is true:

$$ \left\{ {\begin{array}{*{20}c} {\begin{array}{*{20}c} {\tau_{{z^{{\prime }} }} \le \tau_{{z^{{\prime \prime }} }} } \\ {\tau_{{z^{{\prime }} }} + c_{z '} \ge \tau_{{z^{{\prime \prime }} }} } \\ \end{array} ,z^{{\prime }} ,z^{{\prime \prime }} \in Z} & {\begin{array}{*{20}c} {\left( {CDA} \right)} \\ {\left( {\text{CDB}} \right)} \\ \end{array} } \\ \end{array} } \right. $$

Where inequality \( \left( {\text{CDA}} \right) \) means that the task \( z^{{\prime }} \) begins earlier than the task \( z^{{\prime \prime }} \) and inequality \( \left( {\text{CDB}} \right) \) means that the task \( z^{{\prime \prime }} \) begins at the time the task \( z^{{\prime }} \) lasts.

The way to check if the inequality \( \sum\nolimits_{j} {a_{j} x_{j} \le b} \) is satisfied in [15].

Inequality \( \tau_{{z^{{\prime }} }} \le \tau_{{z^{{\prime \prime }} }} \) is equal to \( \tau_{{z^{{\prime }} }} - \tau_{{z^{{\prime \prime }} }} \le 0 \), and the inequality \( \left( {\text{CDA}} \right) \) becomes:

$$ \left\{ {\begin{array}{*{20}c} {\begin{array}{*{20}c} {\tau_{{z^{{\prime }} }} - \tau_{{z^{{\prime \prime }} }} + M \cdot e_{{z^{{\prime }} z^{{\prime \prime }} }}^{1} \le M + 0} \\ {\tau_{{z^{{\prime }} }} - \tau_{{z^{{\prime \prime }} }} - \left( {m - \varepsilon } \right) \cdot e_{{z^{{\prime }} z^{{\prime \prime }} }}^{1} \ge 0 + \varepsilon } \\ \end{array} ,z^{{\prime }} ,z^{{\prime \prime }} \in Z} & {\begin{array}{*{20}c} {\left( {CDA1} \right)} \\ {\left( {{\text{CDA}}2} \right)} \\ \end{array} } \\ \end{array} } \right. $$

where \( m \) and \( M \) are, respectively, the lower and upper bound of the expression \( \left( {\tau_{{z^{{\prime }} }} - \tau_{{z^{{\prime \prime }} }} } \right) \) and \( \varepsilon \) is a small number that causes the failure of inequality.

If the set of all possible occurrences of the expression \( \left( {\tau_{{z^{{\prime }} }} - \tau_{{z^{{\prime \prime }} }} } \right) \) is defined as:

$$ W = \left\{ {\left( {\tau_{{z^{{\prime }} }} - \tau_{{z^{{\prime \prime }} }} } \right):z^{{\prime }} ,z^{{\prime \prime }} \in Z} \right\} $$

then the lower and upper bound should be considered as such values of \( m \) and \( M \), that satisfy the inequalities:

$$ \left\{ {\begin{array}{*{20}c} {m \le y} \\ {M \ge y^{\prime}} \\ \end{array} y \in W} \right. $$

After applying these transformations indicator variable \( e_{{z^{{\prime }} z^{{\prime \prime }} }}^{1} = 1 \), when the inequality. \( \left( {CDA} \right) \) is satisfied.

The way to check if the inequality \( \sum\nolimits_{j} {a_{j} x_{j} \ge b} \) is satisfied in [15].

Inequality \( \tau_{{z^{{\prime }} }} + c_{{z^{{\prime }} }} \ge \tau_{{z^{{\prime \prime }} }} \) can also be written as \( \tau_{{z^{{\prime }} }} - \tau_{{z^{{\prime \prime }} }} + c_{{z^{{\prime }} }} \ge 0 \).

In addition, substituting \( c_{z '} = \sum\nolimits_{p = 1}^{P} {\frac{{c_{{z^{{\prime }} }}^{w} }}{{\beta_{{pr_{{z^{{\prime }} }} }} }} \cdot x_{{pz^{{\prime }} }} } \) inequality can be written as

$$ \tau_{{z^{{\prime }} }} - \tau_{{z^{{\prime \prime }} }} + \sum\limits_{p = 1}^{P} {\frac{{c_{{z^{{\prime }} }}^{w} }}{{\beta_{{pr_{{z^{{\prime }} }} }} }} \cdot x_{{pz^{{\prime }} }} \ge 0} $$

and then we have constraints in the form of:

$$ \left\{ {\begin{array}{*{20}c} {\begin{array}{*{20}c} {\tau_{{z^{{\prime }} }} - \tau_{{z^{{\prime \prime }} }} + \mathop \sum \limits_{{\begin{array}{*{20}c} {p = 1} \\ {\beta_{{pr_{{z^{{\prime }} }} }} \ne 0} \\ \end{array} }}^{P} \frac{{c_{{z^{{\prime }} }}^{w} }}{{\beta_{{pr_{{z^{{\prime }} }} }} }} \cdot x_{{pz^{{\prime }} }} + m \cdot e_{{z^{{\prime }} z^{{\prime \prime }} }}^{2} \ge m + b } & {\left( {CDB1} \right)} \\ {\tau_{{z^{{\prime }} }} - \tau_{{z^{{\prime \prime }} }} + \mathop \sum \limits_{{\begin{array}{*{20}c} {p = 1} \\ {\beta_{{pr_{{z^{\prime}}} }} \ne 0} \\ \end{array} }}^{P} \frac{{c_{{z^{\prime}}}^{w} }}{{\beta_{{pr_{{z^{\prime}}} }} }} \cdot x_{{pz^{\prime}}} - \left( {M + \varepsilon } \right)e_{{z^{{\prime }} z^{{\prime \prime }} }}^{2} \le b - \varepsilon } & {\left( {CDB2} \right)} \\ \end{array} } \\ {,z^{{\prime }} ,z^{{\prime \prime }} \in Z} \\ \end{array} } \right. $$

That means that \( e_{{z^{{\prime }} z^{{\prime \prime }} }}^{2} = 1 \), when the inequality \( \left( {\text{CDB}} \right) \) is satisfied.

If \( l_{p} \) is the number of allowable hours of work per day for a p-th worker, then:

$$ \sum\limits_{{z^{{\prime }} = 1}}^{Z} {\left( {e_{{z^{{\prime }} z^{{\prime \prime }} }}^{1} \cdot e_{{z^{{\prime }} z^{{\prime \prime }} }}^{2} \cdot x^{\prime}_{{pz^{{\prime }} }} } \right) \le l_{p} ,p \in P,z^{{\prime \prime }} \in Z} $$

In the further considerations it is necessary to use binary variables. Thus \( x^{\prime}_{pz} \) can be written as:

$$ x^{\prime}_{pz} = \sum\limits_{l = 1}^{{l_{p} }} {x^{\prime}_{{pz^{{\prime }} l}} } $$

and after substitution:

$$ \mathop \sum \limits_{{z^{{\prime }} = 1}}^{Z} \left( {e_{{z^{{\prime }} z^{{\prime \prime }} }}^{1} \cdot e_{{z^{{\prime }} z^{{\prime \prime }} }}^{2} \cdot \sum\limits_{l = 1}^{{l_{p} }} {x^{\prime}_{{pz^{{\prime }} l}} } } \right) \le l_{p} ,p \in P,z^{{\prime \prime }} \in Z\left( *\right) $$

It should be noted that the sum is over all \( z \), also for the case where \( z^{{\prime }} = z^{{\prime \prime }} \).

It is a non-linear inequality. Linearization method for such inequalities is described in [15]. Let \( y^{\prime}_{{pz^{{\prime }} z^{{\prime \prime }} l}} = e_{{z^{{\prime }} z^{{\prime \prime }} }}^{1} \cdot e_{{z^{{\prime }} z^{{\prime \prime }} }}^{2} \cdot x^{\prime}_{{pz^{{\prime }} l}} \) . We then have:

$$ \sum\limits_{{z^{{\prime }} = 1}}^{Z} {\sum\limits_{l = 1}^{{l_{p} }} {y^{\prime}_{{pz^{{\prime }} z^{{\prime \prime }} l}} \le l_{p} ,p \in P,z^{{\prime \prime }} \in Z} } \quad \left( {\text{CDC}} \right) $$

With additional constraints defined as:

$$ \begin{array}{*{20}c} {\left\{ {\begin{array}{*{20}c} {e_{{z^{{\prime }} z^{{\prime \prime }} }}^{1} + e_{{z^{{\prime }} z^{{\prime \prime }} }}^{2} + x^{\prime}_{{pz^{{\prime }} l}} - y^{\prime}_{{pz^{{\prime }} z^{{\prime \prime }} l}} \le 2} \\ {e_{{z^{{\prime }} z^{{\prime \prime }} }}^{1} + e_{{z^{{\prime }} z^{{\prime \prime }} }}^{2} + x^{\prime}_{{pz^{{\prime }} l}} - 3y^{\prime}_{{pz^{{\prime }} z^{{\prime \prime }} l}} \ge 0} \\ \end{array} \begin{array}{*{20}c} {\left( {CDD1} \right)} \\ {\left( {{\text{CDD}}2} \right)} \\ \end{array} } \right.} \\ {p \in P,z^{{\prime }} z^{{\prime \prime }} , \in Z,l \in L} \\ \end{array} $$

After this transformation, we obtain the linear inequalities.

2.4 Objective Function

We have the objective function:

$$ F\left( {X,T,X^{\prime}} \right) = \mathop {\hbox{max} }\limits_{z \in Z} \left\{ {\tau_{Z} + c_{Z} } \right\} $$

and optimization problem:

$$ \mathop {\hbox{min} }\limits_{{X,T,X^{\prime}}} F\left( {X,T,X^{\prime}} \right) $$

So we have:

$$ \mathop {\hbox{min} }\limits_{{X,T,X^{\prime}}} \mathop {\hbox{max} }\limits_{z \in Z} \left\{ {\tau_{Z} + c_{Z} } \right\} $$

what can be replaced with a linear optimization problem:

\( \mathop {\hbox{min} }\limits_{{X,T,X^{\prime}}} g \) :

- new linear objective function

\( g \ge \tau_{Z} + c_{Z} ,z \in Z \) :

- additional constraint

or, considering that:

$$ c_{z} = \frac{{c_{z}^{w} }}{{\mathop \sum \nolimits_{{\begin{array}{*{20}c} {p = 1} \\ {\upbeta_{{{\text{pr}}_{\text{z}} }} \ne 0} \\ \end{array} }}^{P} \beta_{{pr_{z} }} \cdot x_{pz} \cdot \frac{{\bar{x}_{pz} }}{{l_{p} }} }} $$

we have additional constraint as follow:

$$ g \ge \tau_{z} + \frac{{c_{z}^{w} }}{{\mathop \sum \nolimits_{{\begin{array}{*{20}c} {p = 1} \\ {\upbeta_{{{\text{pr}}_{\text{z}} }} \ne 0} \\ \end{array} }}^{P} \beta_{{pr_{z} }} \cdot x_{pz} \cdot \frac{{\bar{x}_{pz} }}{{l_{p} }} }},z \in Z\quad \left( {\text{CX}} \right) $$

2.5 Optimization Problem

Accordingly, the full optimization problem is as follows:

$$ \mathop {\hbox{min} }\limits_{{X,T,X^{\prime}}} g $$

subject to

$$ \sum\nolimits_{p = 1}^{P} {u_{{pr_{z} }} x_{pz} = 1,z \in Z} \quad \left( {\text{CA}} \right) $$
$$ \sum\nolimits_{z = 1}^{Z} {u_{{pr_{z} }} x_{pz} \ge 1,p \in P} \quad \left( {\text{CB}} \right) $$
$$ \tau_{{z^{\prime}}} \ge d_{{z^{{\prime }} z^{{\prime \prime }} }} \cdot \left( {\tau_{{z^{{\prime \prime }} }} + \sum\nolimits_{{\begin{array}{*{20}c} {p = 1} \\ {u_{{pr_{{z^{{\prime \prime }} }} }} \ne 0} \\ \end{array} }}^{P} {x_{{pz^{{\prime \prime }} }} \cdot \frac{{c_{{z^{{\prime \prime }} }}^{w} }}{{\beta_{{pr_{{z^{{\prime \prime }} }} }} }}} } \right)\quad \left( {\text{CC}} \right),z^{{\prime }} ,z^{{\prime \prime }} \in Z,z^{{\prime }} \ne z^{{\prime \prime }} $$
$$ \begin{array}{*{20}c} {\left\{ {\begin{array}{*{20}c} {\tau_{{z^{{\prime }} }} - \tau_{{z^{{\prime \prime }} }} + M \cdot e_{{z^{{\prime }} z^{{\prime \prime }} }}^{1} \le M + 0} \\ {\tau_{{z^{{\prime }} }} - \tau_{{z^{{\prime \prime }} }} - \left( {m - \varepsilon } \right) \cdot e_{{z^{{\prime }} z^{{\prime \prime }} }}^{1} \ge 0 + \varepsilon } \\ \end{array} \begin{array}{*{20}c} {\left( {CDA1} \right)} \\ {\left( {CDA2} \right)} \\ \end{array} } \right.} \\ {,z^{{\prime }} ,z^{{\prime \prime }} \in Z} \\ \end{array} $$
$$ \left\{ {\begin{array}{*{20}c} {\tau_{{z^{{\prime }} }} - \tau_{{z^{{\prime \prime }} }} + \sum\limits_{{\begin{array}{*{20}c} {p = 1} \\ {\beta_{{pr_{{z^{{\prime }} }} }} \ne 0} \\ \end{array} }}^{P} {\frac{{c_{{z^{{\prime }} }}^{w} }}{{\beta_{{pr_{{z^{{\prime }} }} }} }} \cdot x_{{pz^{{\prime }} }} + m \cdot e_{{z^{{\prime }} z^{{\prime \prime }} }}^{2} \ge m + b} } \\ {\tau_{{z^{\prime}}} - \tau_{{z^{\prime\prime}}} + \sum\limits_{{\begin{array}{*{20}c} {p = 1} \\ {\beta_{{pr_{{z^{\prime}}} }} \ne 0} \\ \end{array} }}^{P} {\frac{{c_{{z^{\prime}}}^{w} }}{{\beta_{{pr_{{z^{\prime}}} }} }} \cdot x_{{pz^{{\prime }} }} - \left( {M + \varepsilon } \right)e_{{z^{{\prime }} z^{{\prime \prime }} }}^{2} \le b - \varepsilon } } \\ \end{array} \begin{array}{*{20}c} {\left( {CDB1} \right)} \\ {\left( {CDB2} \right)} \\ \end{array} } \right.,z^{{\prime }} ,z^{{\prime \prime }} \in Z $$
$$ \sum\nolimits_{{z^{\prime} = 1}}^{Z} {\sum\nolimits_{l = 1}^{{l_{p} }} {y^{\prime}_{{pz^{{\prime }} z^{{\prime \prime }} l}} \le l_{p} ,p \in P,z^{{\prime \prime }} \in Z} } \quad \left( {\text{CDC}} \right) $$
$$ \begin{array}{*{20}c} {\left\{ {\begin{array}{*{20}c} {e_{{z^{{\prime }} z^{{\prime }} }}^{1} + e_{{z^{{\prime }} z^{{\prime }} }}^{2} + x^{\prime}_{{pz^{{\prime }} l}} - y^{\prime}_{{pz^{{\prime }} z^{{\prime \prime }} l}} \le 2} \\ {e_{{z^{{\prime }} z^{{\prime \prime }} }}^{1} + e_{{z^{{\prime }} z^{{\prime }} }}^{2} + x^{\prime}_{{pz^{{\prime }} l}} - 3y^{\prime}_{{pz^{{\prime }} z^{{\prime \prime }} zl}} \ge 0} \\ \end{array} \begin{array}{*{20}c} {\left( {CDD1} \right)} \\ {\left( {CDD2} \right)} \\ \end{array} } \right.} \\ {,p \in P,z^{{\prime }} ,z^{{\prime \prime }} \in Z,l \in L} \\ \end{array} $$
$$ \varvec{g} \ge\varvec{\tau}_{\varvec{z}} + \frac{{\varvec{c}_{\varvec{z}}^{\varvec{w}} }}{{\mathop \sum \nolimits_{{\begin{array}{*{20}c} {p = 1} \\ {{\varvec{\upbeta}}_{{{\mathbf{pr}}_{{\mathbf{z}}} }} \ne 0} \\ \end{array} }}^{\varvec{P}}\varvec{\beta}_{{\varvec{pr}_{\varvec{z}} }} \cdot \varvec{x}_{{\varvec{pz}}} \cdot \frac{{\bar{x}_{{\varvec{pz}}} }}{{\varvec{l}_{\varvec{p}} }} }},\varvec{z} \in \varvec{Z}\quad \quad \left( {{\mathbf{CX}}} \right) $$

3 Comparison of Scheduling and Without Scheduling Cooperation

Below provides results of sample solutions of the task of determining the schedule for versions with and without the cooperation of employees [1, 5, 6, 9,10,11,12,13,14]. The solution of the same problem in two versions gives you the opportunity to direct comparison of results.

The problem with no cooperation is described in detail in [7]. Let us compare the scheduling results concerning cooperation possibility described in the current article with the results based on the scheduling model described in [7].

For evaluation of the method for determining the optimal allocation of workers to the tasks let us consider the following case.

Let 3 equally complex design tasks will be performed by 2 employees of equal productivity. Individual tasks do not depend on each other, and so they can be performed at the same time and in any order. The workload for each task is 8 h, and the productivity of each worker is 1.

3.1 Case #1. Scheduling with no Cooperation

Let us consider the case where the cooperation of employees in carrying out the task is not allowed. The results of the calculations for such case is shown in the following table and is described in the Gantt chart and resource load chart. (Table 1, Figs. 1 and 2)

Table 1. Results for case #1 – no cooperation
Fig. 1.
figure 1

Gantt chart for case #1 – no cooperation

Fig. 2.
figure 2

Resource load chart for case #1 – no cooperation

On the resource load chart, it is shown the usage of the two employees labeled with different colors. The upper course of the graph for the selected worker means that the worker is working on a task, the lower - means that an employee at a given time is not used for the implementation of any task.

3.2 Case #2. Scheduling with Cooperation

Let us consider the case where the cooperation of employees in carrying out the task is allowed.

The results of the calculations for such case is shown in the following table and is described in the Gantt chart and resource load chart. (Table 2, Figs. 3 and 4)

Table 2. Results for case #2 – cooperation
Fig. 3.
figure 3

Gantt chart for case #2 – cooperation

Fig. 4.
figure 4

Resource load chart for case #2 – cooperation

Just like before, on the resource load chart, it is shown the usage of the two employees labeled with different colors. The upper course of the graph for the selected worker means that the worker is working on a task, the lower - means that an employee at a given time is not used for the implementation of any task.

Assuming the cooperation opportunities of workers in the implementation of the design tasks, significant reduction of the overall duration time and a better use of resources is achieved. Employees are equally loaded throughout the duration of the project.

4 Conclusion

The mathematical model followed by formulation of optimization problems has been developed for the purpose of a schedule creation. Productivity of project team members is taken into account in the model. The authors designed and built software that formulates a linear programming problem based on a mathematical model. The problem is then solved using numerical methods. The result of the conducted research is a complete IT solution package supporting project managers in determining productivity and scheduling.

As for the further research it is worth to examine the possibility to prepare models for other variants of the problem, as far as to rebuild the model in a way that could use the estimation of the future productivity. Furthermore, the impact of differentiation of the software development processes on the productivity is also worth researching.