One of the biggest planning activities for any software project is making sure that you have adequate resources to get the job done within the time allowed. What's the best way to accomplish this planning goal?
slide 1 of 1
Planning Activities – Resource Leveling
The prelude to this activity is software estimation – that is, the estimation of software size, software development effort, cost and schedule; especially the estimation of software development effort (which may be derived from the software size) and deriving software development schedule are necessary steps for estimating resource requirement.
The software development schedule gives us the requirement of resources both skill-wise as well as the calendar datewise. We then make a list of the resources that are needed for the project in two classes:
Resources that need to be dedicated to the project with the duration of requirement; and
Part-time resources with the durations of their requirement for the project.
Using the human resource requirement, we can derive the requirement of computer system resources including hardware, software, networking, servers etc. The schedule gives us the time requirement directly in calendar days. Monetary requirement is estimated using the resource estimation and adding up requirements for additional software, training, travel etc.
Request for Requisite Resources
Using the resource requirement estimates derived as explained above, we raise resource requests on –
HR Department or Resource Allocation Department for human resources
Purchase Department or Administration Department for procurement of hardware or software
HR department or Training Department for project-specific training requirements
Finance Department for requisite monetary resources
Travel Desk or Administration Department for travel arrangements, if required
Schedule Resource Utilization
Scheduling is assigning calendar dates for the planned activities. This is part of software estimation. Using the WBS (Work Breakdown Structure), we allocate the requisite resources against each task (or activity) in the WBS and set dates based on the precedence relationships between the activities. Resources would include all the resources including human resources, computer resources, and monetary resources. Then, we either adjust the resources or adjust the schedule through resource leveling.
When we allocate resources to various tasks and assign calendar dates in the schedule, it is possible that no resource is over-allocated. But in the most practical situations, there would be some amount of over-allocation of at least some human resources for some time periods. When there is over-allocation for any given time period, we need to either –
Adjust the schedule in line with the available resources and extend the activity and/or project completion date. In this we just delay the completion of the task for which over-allocation occurs. This causes the subsequent tasks to be delayed and perhaps delay the completion of the project. This is called Resource-Constrained Scheduling and is practiced by software packages such as MS-Project.
Level the resource utilization and minimize the impact on the project completion date using Resource Leveling methodology. This is achieved using the Slack(or Float) available for the task. Slack is the difference in the time between the Earliest and Latest times for an activity.
This series of articles deal with management of resources in software project management including planning activities, allocation activities and de-allocation and release activities. Planning activities include resource estimation, request for resources, allocate resources, level & resources.