Lecture 9: Resource Allocation: Software Development Project Management (CSC4125)
Lecture 9: Resource Allocation: Software Development Project Management (CSC4125)
MANAGEMENT
(CSC4125)
1
What is Resource Allocation?
• Resource allocation is the process of assigning and
scheduling resources to project tasks.
– Should be done in the most effective and economical
manner
• After the activities have been identified using
various techniques and tabulated into a Work-
Breakdown, the resources need to be allocated to
complete the identified tasks. This process is
considered resource allocation.
2
Resource Allocation
• Allocation of resources to activities leads to –
– Review and modify the activity plan
– Revise stages
– Revise project completion dates
3
Schedules
The final result of resource allocation will normally be a
number of schedules. These schedules will provide the basis
for the day-to-day control and management of the project.
• Activity schedule
– Indicating planned start and completion dates for each
activity
• Resource schedule
– Showing the dates on which each resource will be
required and the level of that requirement
• Cost schedule
– Showing planned cumulative expenditure incurred by
the use of resources over time
4
The Nature of Resources
• A resource is any item or person required for the
execution of the project.
• Some resources will be required for the duration of
the project (e.g. project manager) whereas others
might be required for a single activity (e.g. a specific
software developer).
• The project manager must concentrate on those
resources which, without planning, might not be
available when required.
5
Resource Categories
• In general, resources fall into one of the seven
categories –
1) Labor
2) Equipment
3) Materials
4) Space
5) Services
6) Time
7) Money
6
(1) Labor
• Members of the development project team; to
perform project activities.
– Project manager
– Systems analysts
– Software developers
– Test engineers
– Other support staff
– Any employee of the client organization who might be
required to undertake/participate in specific activities
7
(2) Equipment
• Used to permit the work of labor
• Workstations and other computing and office
equipment.
8
(3) Materials
• Materials are items that are consumed (rather than
equipment that is used) during the project.
– Consumed items , e.g. floppy disks
• They are of little consequence in most software
projects but can be important for some – software
that is to be widely distributed might require supplies
of disks to be specially obtained.
9
(4) Space
• Office space
– Room, cubicles
• For projects that are undertaken with existing staff,
space is normally readily available.
• However, if any additional staff (recruited/contracted)
should be needed then office space will need to be
found.
10
(5) Services
• Some specialist services –
– Telecommunication services
– Cleaning services
11
(6) Time
• Time is the resource that is being offset
against the other primary resources.
– Project timescales can sometimes be reduced by
increasing other resources and will almost
certainly be extended if they are unexpectedly
reduced
– Elapsed time can often be reduced by adding
more staff
– The most rigid item of all
12
(7) Money
• Money is a secondary resource – it is used to
buy other resources and will be consumed as
other resources are used.
– Money is the means by which one resource can be
converted to another. However, in practice this
may be problematic because of resource
constraints e.g. staff need time to become expert
in a new technology regardless of the amount of
money that might be available to buy expertise.
13
Resource Allocation
14
Resource Scheduling
• After all the required resources have been identified,
they need to be scheduled effectively.
• The earliest start dates, the latest start dates will
need to be taken into account to schedule resources
efficiently.
• Resources should be balanced throughout the
project.
15
Resource Allocation
• Note: At this point we have to assume that we are
dealing with, for example, ‘standard’ software
developers who have an average productivity. When
we allocate actual people we may find that we have a
trainee or a super-expert and this will affect
productivity. A short-coming in productivity in an
individual might be compensated for by a lower cost
(as would be expected with trainees).
16
Resource Histogram
• Resource histogram is specifically a bar chart that is
used for the purposes of displaying the specific
amounts of time that a particular resource is
scheduled to be worked on over a predetermined
and specific time period.
• The resource histogram helps us identify where the
demand for a resource exceeds the supply.
• If we use a tool such as MS Project, the tool will
generate the resource histograms for us.
17
Resource Histogram
Commonly used during planning to indicate
possible problem areas.
• # of People (by category) vs. Week Number
• For each individual – estimated number of tasks
(including complexity) over weeks
• This helps in reducing work load sometimes to help the
individual recover from any heavy load
18
Resource Histogram for Systems Analysts
5
1 2 3 4 5 6 7
WEEK
19
Resource Clashes
Resource clashes can be resolved by:
• Delaying one of the activities
– taking advantage of float to change start date
– delaying start of one activity until finish of the
other activity that resource is being used on
==> puts back project completion
• Moving resource from a non-critical activity
• Bringing in additional resource ==> increases costs
20
Prioritizing Activities
• Where more than one activity is competing for the same
limited resource at the same time then those activities
need to be prioritized.
• There are two main ways of doing this:
1) Total float priority – those with the smallest float have the
highest priority
2) Ordered list priority – this takes account of the duration of
the activity as well as the float
21
Prioritizing Activities
• Total Float Priority
– Activities are ordered according to their total float
– Activity with the smallest total float has the highest priority
– Activities are allocated resources in ascending order of total
float
– As scheduling proceeds, activities will be delayed (if resources
are not available at their earliest start dates) and total floats will
be reduced
– It is desirable to recalculate floats (and hence reorder the list)
each time an activity is delayed
– Changes to plan will require re-calculation of floats
Note: Float time = Slack time
22
Prioritizing Activities
Ordered List Priority
• Activities that can proceed at the same time are
ordered according to a set of simple criteria.
• An example of this is Burman’s priority list, which
takes into account activity duration as well as total
float.
23
Burman’s priority list
Give priority to:
1. Shortest critical activity
2. Other critical activities
3. Shortest non-critical activity
4. Non-critical activity with least float
5. Non-critical activities
24
Resource Usage
• Need to maximize % usage of resources, i.e. reduce
idle periods between tasks.
25
Critical path
• Resource scheduling will almost always change the activity network.
– Scheduling resources can create new critical path
• Scheduling resources can create new dependencies between activities –
recall critical chains
• It is best not to add dependencies to the activity network to reflect
resource constraints
– Makes network very messy
– A resource constraint may disappear during the project, but link
remains on network
• Instead, amend dates on schedule to reflect resource constraints
26
Allocating individuals to activities
• The initial ‘resource types’ for a task have to be
replaced by actual individuals.
• When allocating laborers to activities, we need to be
specific among individuals –
– Nature of software development
– Skill and experience influence
• Time taken
• Quality of the product
27
Resource Allocation Issues
Factors to be considered in allocating individuals to
tasks:
• Availability
• Criticality
• Risk
• Training
• Team building
28
Factors to be considered in allocating individuals to tasks
29
Cost Schedules
• Calculating cost is straightforward where the organization has
standard cost figures for staff and other resources. Where this
is not the case, the project manager will have to calculate the
costs.
• After having allocated the resources to activities and having
defined a schedule it is possible to derive the cost schedule
for the project on a weekly or monthly basis.
• In general, costs are categorized as –
– Staff costs
– Overheads
– Usage charges
30
Cost Categories
• Staff costs
– Staff salaries, employers contribution to social security, pension, holiday pay, sickness
benefit
– Contract staff is charged by the week/month (even if they are idle)
• Overheads
– Expenditures that organization incurs, which can not be directly related to individual
projects or jobs
– Space rent, interest charges, travel cost, insurance, costs of service departments (e.g.
human resources)
– These can equal or even exceed the direct employment costs
• Usage charges
– For external resources or contractors, leased/rental equipment
– Charged directly for use of resources, e.g. computer time
– Some charges can be on a ‘pay as you go’/ ‘as used’ basis, e.g. telephone charges,
postage, car mileage – at the planning stage an estimate of these may have to be
made
31
Cost Profile: Weekly Project Costs
This shows how much is going to be spent in each week. This could be
important where an organization allocates project budgets by financial year or
quarter and the project straddles more than one of these financial periods
32
Cumulative Project Costs
33
Balancing Concerns
35