Project managers involved in software engineering projects have to accurately plan the resources from the very beginning to ensure that the project meets the deadlines, budgets and client’s requirements. To avoid negative consequences such as delays, decreased quality or increased costs, managers need to estimate, allocate and plan the resources and distribute them according to the highest priorities at any given time.
By resources, we usually mean people, their time and sets of skills. However, resources also include tools and equipment, money and services. Although types of resources are universal, the management approaches differ across the industries and depend on the needs of particular projects. Let’s see what you need to keep in mind when managing resources in software projects.
Ideally, successful software projects should meet 3 criteria: software is delivered on time, costs don’t exceed the budget, customer’s expectations are met. In reality, according to triple constraint theory, to determine which types of resources are right for your project, you need to focus on one of the three priorities — cost, scope or time.
- Time/Schedule — time frames required for the project to reach completion.
- Budget/Cost — financial constraints of a project. These include the cost of your team members with different skills and experience levels, the cost of contract workers and outsourcing.
- Scope/Performance — tasks required to finish the project. Typically, as the project unfolds, the project scope either grows or shrinks to meet the changing client expectations.
Let’s see how it works. If you focus on one of these priorities, the other two will suffer. Sometimes you need to adjust elements to achieve more balance, but sometimes you need to completely switch the priorities to attain maximum results in the given circumstances.
Let’s say, your client asked to develop a few more features for the software. It means that Scope becomes the focus of your project management efforts, which, in turn, requires more time and budget for development. In this case, you may assign more staff to the project or look for contractors and third-party services that would cost less than the efforts of your team members. This way, you will achieve a more balanced picture: more human resources will reduce development time, while lower costs of the outsourced workforce will, most likely, allow you to stay within the budget.
To manage resources in software projects effectively, you need to have a clear understanding of its development stages known as Software Development Life Cycle (SDLC). It refers to the process for requirement collection, planning, designing, creating, testing, and deploying the software.
What makes it stand out from other types of projects is that its final stage is product maintenance that is never really over. When a product requires updates, new features and bug fixes, the development process has to take a few steps back over and over.
In this section, we are going to give you a quick recap of resource management stages as listed in A Guide to the Project Management Body of Knowledge (PMBOK Guide®). According to Project Management Institute, resource management includes the following six stages.
Goal: Define how to estimate, acquire, manage and utilize all resources.
First of all, you need to make sure that you have sufficient amounts of available resources to successfully complete the project. It is essential to identify scarce resources and whether you should obtain them from the company’s assets or from third parties. You should also keep in mind that other projects may also compete for internal assets, which, in turn, may impact project costs, schedules, risks, quality, and other project areas.
At this step, you need to build a project management plan that defines how project resources should be categorized, allocated, managed, and released. It usually includes but is not limited to acquiring resources, roles and responsibilities, scope baseline, quality specifications, resource control throughout the project life cycle — everything you need to complete the project and meet the quality standards.
Goal: Estimate necessary human resources, equipment and supplies for the project.
After you decide on the types of resources, it’s time that you estimate your team resources and quantities of materials, equipment and supplies necessary to perform project work. As the project development unfolds, its scope, time frames and costs may change. To adjust to the changing circumstances, you may require to review your resources, which means that you may go back to this stage any time throughout the project to make new estimations.
To make accurate estimations, you need to develop a resource management plan that defines how to identify a lack of resources and quantify the right resource amounts for each activity. At this stage, you may want to develop cost estimates, resource calendars, weigh up the risks that can impact resource selection and availability.
Goal: Obtain the necessary resources.
When you know what types and amounts of resources you need to successfully deliver the product, it’s time to obtain necessary internal and external to the project-performing organization resources, such as team members, facilities, equipment, materials, supplies. Failure to acquire these resources may affect project schedules, budgets, customer satisfaction, quality, and risks. This process can be performed periodically throughout the project as the client makes changes to desired time frames, project scope or costs.
When acquiring resources, you may rely on the following criteria:
- Availability — the resource is available throughout the whole project period.
- Cost — the cost of the resource is within the budget.
- Ability — the resource provides the capability needed by the project.
Some criteria are unique for team resources:
- Experience — the employee has relevant experience for the project’s success.
- Knowledge — the employee is experienced in similar projects and understands the nuances of the project environment.
- Skills — the employee has relevant skills to use a project tool.
- Attitude — the employee has solid teamwork and communication skills.
- International factors — employee location, time zone, and communication capabilities.
Goal: Train your team members, establish communication inside the team, and prepare the environment for effective collaboration.
At this stage, you prepare your team for effective work and communication in the project environment: identify, build, maintain, motivate, lead, and inspire employees to achieve high performance and meet the project’s objectives. The project environment should encourage teamwork and motivate your team by offering challenges and opportunities, providing timely feedback and support, recognizing and rewarding good performance.
One of the models that describe this stage in more detail is known as the Tuckman ladder. It includes five stages of team development, which usually occur in order:
- Forming — team members learn about the project, their roles and responsibilities.
- Storming — team addresses the project work, technical decisions, and the project management approach.
- Norming — team members begin to work together, adjust their behaviors and learn to trust each other.
- Performing — team works as a stable and well-organized unit.
- Adjourning — team completes the work and moves on from the project.
If team members have never worked together before, the team may get stuck and have to get back to the earlier stages. On the contrary, experienced teams may skip some of the stages.
Goal: Track team member performance, provide feedback, resolve issues, and manage team changes to optimize project performance.
At the team management stage, project managers need to apply their leadership, communication, conflict management and negotiation skills, provide challenging tasks and recognition to build high-performance teams. At the same time, managers should be sensitive to the skills and motivation of their team members and choose appropriate leadership approaches.
To keep track of performance and generate data-based decisions, project managers build work performance reports. They can contain trends and forecasts, risk summaries, contract performance information, earned value graphs and more. Managers can review schedule, cost and quality control data, use it to predict future team resource requirements and update the resource management plan.
Goal: Ensure that project resources are available as planned, monitor the planned versus actual use of resources, and perform corrective action if necessary.
Resource control is performed continuously throughout the project life cycle to ensure that resources are assigned at the right time and the right amount to eliminate blockers and delays. This stage is concerned with physical resources such as equipment and infrastructure, while human resources are addressed in Step 5: Manage Team.
The importance of efficient resource planning cannot be undermined. It ensures that the project will be delivered on time, with minimum expenditure and maximum profit. But what are other benefits of effective resource management?
- Measures efficiency. Resource management provides a bird’s eye view on your project trends and needs, allowing you to track and manage resources in the best possible way.
- Eliminates blockers and delays. When you are focused on planning and monitoring your resources, you can prevent and troubleshoot gaps and problems early on.
- Prevents burnout. If you keep track of your team’s workload, you can notice overallocation cases, productivity trends and respond in a timely manner.
- Provides transparency. Transparency increases the client’s trust and employee engagement, prevents miscommunication between team members and managers.
To maximize all these benefits, you should consider resource management software where you could manage resources in a single environment. For example, in actiTIME, you can manage projects, track time and work progress, build data-driven reports to calculate costs, evaluate employee performance and assess your management decisions. Unlike other resource management tools, actiTIME provides leave management features including automated paid time off calculations and customizable types of work statuses and absences. Start a free 30-day trial to learn if actiTIME is a good fit for your company or request a product demo.