Professional Documents
Culture Documents
net/publication/220631675
CITATIONS READS
21 1,248
3 authors:
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
Consistent Evolution of UML Models by Automatic Detection of Change Traces View project
A reuse-based approach to define processes aiming at processes high maturity View project
All content following this page was uploaded by Márcio de Oliveira Barros on 29 May 2014.
⎛ ⎛ (IniDate( Ai ) ≥ IniDate(UPn )) ∧ ⎞
demanded;
⎞
⎜⎜ ⎟ ⎟
(β) A person can only be allocated to an activity if he or she ⎜⎜ ( IniDate( Ai ) ≤ EndDate(UPn )) ⎟ ⎟
is available to perform the activity in the period it needs to ⎜⎜ ∨ ⎟ ⎟
be performed (reasons of unavailability could be allocation ⎜⎜ ⎟ ⎟
to other activities, vacation, etc). ⎜ ⎜ (EndDate( Ai ) ≥ EndDate(UPn )) ∧ ⎟ ⎟
⎜⎜
(EndDate( Ai ) ≤ EndDate(UPn)) ⎟ ⎟⎟
⎟
Expressing it in a formal way: ¬∃(PUn ∈ PU ⊂ HRk )⎜ ⎜
⎜⎜ ∨ ⎟ ⎟
Let P be a set of projects. Each element Pi ∈ P is composed ⎜⎜ ⎟ ⎟
by a name and a set of activities (Aij); ⎜ ⎜ (IniDate( Ai ) ≤ IniDate(UPn )) ∧ ⎟ ⎟
⎜ ⎜ (EndDate( Ai ) ≥ EndDate(UPn )) ⎟ ⎟
P = { Pi } ⎜ ⎝ ⎠ ⎟
Pi = [name, {Aij}] ⎜ ⎛ MaxHoursDay (HRk ) ⎞⎟
⎜ ∧ ⎜⎜ ⎟⎟ ⎟
Let HR be a set of professionals from the organization, ⎝ ⎝ < NumHours(UPn ) + NumHours( Ai )⎠ ⎠
available to be allocated to project activities. Each HRi
∈ HR is described by a name, cost (per hour), maximum The above formula establishes that there is no period over which
number of workable hours per day, a set of periods in which the developer will be unavailable for the project that intersects the
the developer will not be available to take part in the project period in which the activity is scheduled to be accomplished. It
(PUij), and a set of characteristics (CHRij); also states that the developer’s daily effort is greater or equal to
the effort required by the activity.
HR = { HRi }
HRi = [name, $hour, #hour, {PUij}, {CHRij}]
3. STAFFING UTILITY FUNCTIONS
Let Ai be a set of activities from a given project Pi. Each Aij Staffing a software project, to account for the characteristics
∈ Ai is described by a name, initial and final dates, required by activities and those possessed by developers is not
minimum daily effort that should be spent by a developer on always enough. Several other values may distinguish
the activity (expressed in hours), and a set of desired development teams, according to project or organizational
developer characteristics (CAij); characteristics. For instance, a project may require the most
qualified and skilled team available, when considering aspects
Aij = [name, initial_date, final_date, #hours, {CAijk}] like productivity, client satisfaction, product reliability, time-to-
Let UPi be a set of periods in which a given developer HRi market and so on.
will not be available to take part in the project. Each UPij On the other hand, the better usage of the skills available in an
∈ UPi is described by initial and final dates, and the number organization may be more important, and these skills should not
of hours per day that the professional will not be available; be wasted. So, a manager may choose the team that minimizes
UPij = [initial_date, final_date, #hours] skills’ overusage (in other words, where the distance between the
needed and employed skills is minimal). In a different scenario, a
Let C be a set of characteristics possessed by a professional manager may need to choose the cheapest team that can execute
HRj or desired by an activity Ak. Each Ci ∈ C is described the project, considering developers’ salaries and overhead costs.
by a name, a scalar value that denotes a maximum intensity Sometimes large teams are a problem, because there are so many
for such characteristic among software developers or communication channels that the productivity can be affected. So,
required by activities, and its intensity for a specific the manager may want to choose the smallest possible team to the
developer or required by an activity; project.
Moreover, though accounting for the characteristics required by best partial solution team: the optimizer indicates a team that
the project activities is important, sometimes it is not possible to is the best partial solution to the problem. This solution is
get a team where members possess all the characteristics required usually applied when the available developers’
by the project activities. So, a manager may choose to minimize characteristics do not satisfy all requirements of the project
the distance between what is needed and what the team possesses, activities. So, the optimizer searches for a solution (that is, a
building a team as close as possible to the desired characteristics. team) that minimizes the number of broken constraints:
Considering these issues and that their importance may differ for o Let T be the set of possible teams. Let Broken (Tk)
distinct projects, our approach suggests that the manager staffs the be a function that returns the number of broken
project considering one of these utility functions: constraints of a team Tk. The selected team Ti ∈ T
is chosen according to the following equation:
most qualified team: team in which the distance between the
demanded characteristics and the possessed ones is maximal. ¬∃ (T j ∈ T )(Broken (T j ) < Broken (T i ))
In other words, the optimizer will suggest a team in which
developers are more capable than project activities require We suggest these five functions to show how our approach could
them to be: be used, but it would be possible to define and use other functions
based on project or organizational needs.
o Let T be the set of possible teams that satisfy all
the constraints. Let Overusage (Tk) be a function
that returns the distance between the qualification 4. EXAMPLE USE OF THE TECHNIQUE
of a given team Tk and the qualification demanded To illustrate the use of our approach, in this section we present an
by the project. The selected team Ti ∈ T is chosen example situation where the approach could be used.
according to the following equation: The fictitious project is composed by five activities and seven
Professional 7 75,00 - Java (4) The null hypothesis of the study states that the use of the
- Object Oriented Analysis (4) proposed approach and its supporting tool brings no benefits to
- Object Oriented Design (4) staffing a software project, i.e., there is no significant difference
- Experience in telecommunications in the time needed to perform the activity and in the quality (with
(4) respect to the cost) of the chosen teams if the activity is
- Databases (4) performed ad-hoc or using the proposed approach.
- Negotiation (3) H0: µ cost without technique = µ cost with technique and
- Team Work (3)
µ time without technique = µ time with technique
- Relationship with people (3)
Table 2 – Professionals The alternative hypothesis, on the other hand, states that the
subjects will get worse results, once they will not use the
Considering the activities and professionals described above, it is
proposed approach, i.e., their chosen team will be more expensive
possible to select a team that satisfies all the constraints in 84
then the ones chosen by the supporting tool, and they will take
different ways, which would be difficult to the manager to
more time to choose the team than the tool will.
consider.
In this example, the values of the cost functions vary as described H1: µ cost without technique > µ cost with technique and
in table 3. µ time without technique > µ time with technique