This article deals with management of resources in software project management
Introduction
Resources are always limited, not just in software development projects, but projects all over. Decisions to go in for software development are taken only when business demands are not met by existing methods of working. Pressure mounts on software project management to complete the project ASAP. That pressure limits the time available for project execution. Human resources and computer resources are always limited as they service multiple projects. Therefore, the bonus is that a software project manager to marshal his resources carefully, and use them diligently, to achieve the objectives set for the project. Second, the feasibility of deploying more resources to reduce the calendar time has limited applicability in software development projects. Therefore we need to manage the available resources effectively.
We use the following resources in software development –
- Time
- Human Resources – most crucial of all the resources
- Computer Resources
- Money
Classification of Resources
Resources can be viewed from four standpoints –
1. Availability
- Recurring – such as human resources that are available in the same quantity day-after-day – spending these resources does not deplete them
- Non-Recurring – like time and money – spending these resources depletes them
2. Place of availability
- Static availability – available wherever they are situated – they can not be moved from place to place – such as computer resources
- Dynamic availability – these resources can be moved from place to place – such as human resources and money
3. Elasticity
- Elastic Resources – their supply can be increased or decreased – such as human resources and money
- Plastic Resources – their supply can not be extended, such as time
4. Sharability
- Dedicated resources – these ought 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
We need different skill-sets from the human resources required for the software development projects.They are –
- 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 would be 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
We perform the following resource management activities –
1. Planning Activities
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 series.
Resource Management in Software Project Management
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.