This article deals with management of resources in software project management. In part one of this three part series, we discuss classifications and skill sets.
You Can't Do It Without the Resources
Resources are always limited--not just in software development projects, but for projects all over. Pressure mounts on resource managers who work in software project management to complete any given project ASAP. Human resources and computer resources are always limited as they service multiple projects. Therefore, the onus is on a software project manager is to marshal his resources carefully and use them diligently to achieve the objectives set for the project. The feasibility of deploying more resources to reduce the calendar time has limited applicability in software development projects. What we really need to do is manage the available resources effectively.
Consider the use the following resources in software development:
- Human Resources – the most crucial of all the resources
- Computer Resources
Classification of Resources
Resources can be viewed from four standpoints:
Recurring – such as human resources that are available in the same quantity day-after-day – spending these resources does not deplete them.
Depleting – like time and money – spending these resources depletes them.
2. Place of Availability
Immovable – available wherever they are situated – they cannot be moved from place to place, such as computer resources.
Movable – these resources can be moved from place to place – such as human resources and money.
Elastic Resources – their supply can be increased or decreased – such as human resources and money.
Plastic Resources – their supply cannot be extended, such as time.
4. Shared and Dedicated
Dedicated resources – these should be dedicated to the project for the required duration – such as computer systems and programmers.
Shared resources – these are resources that are needed for short durations but would not be utilized for the entire duration of the project – such as DBAs (Database Administrators), programming language experts, functional specialists, etc.
Skill Sets Needed From the Resources
Use different skill sets for human resources required for software development projects, such as:
Programmers – to develop the software programs needed for the project – experts in the chosen programming language.
Graphic Designers – to design the graphics and the web pages / front-end required for the project.
Database Administrator – to design the database and assist the programmers in optimizing data retrieval queries so that the response time is shorter.
System Architects – to develop the software architecture for the project.
System Integrators – to integrate various components of the project and ensure that the end product is built conforming to the specifications.
Functional Experts – who are experts in the application domain of the project.
Next, perform the following resource management activities:
1. Planning Activities
- Estimate requirement of resources
- Request for requisite resources
- Schedule resource utilization
- Resource Leveling
2. Utilization Activities
- Allocation of resources to various activities
- Ensure the activities are performed
3. De-allocation and Release Activities
- Performance appraisals for human resources
- Reconciliation for monetary resources – planned vs. actual utilization
- Document lessons learned in planning and utilization of resources including best and worst practices
- Release resources
We'll look at each of these sections in detail throughout this three-part series on resource management in project software management.