software engineering

Resource Allocation in Four Simple Steps

A COO I worked with early in my career often recited a mantra: “All good company management is good resource management.” By that time, I had spent several years as a program manager getting teams to work more efficiently on projects. With the COO’s simple piece of advice, I took my first steps into operations management, getting the company to work more efficiently day to day.  

The role was strangely ideal for an operations newcomer: Resource management was effectively nonexistent at the company, which meant even a beginner could make significant improvements. In theory, resource planning and allocation were being handled by our traffic manager, a common position in creative agencies that is similar to operations or production roles in many project management offices. Yet all the information lived in the traffic manager’s head and routinely changed, which was a huge source of frustration. 

When project managers would ask the traffic manager to allocate staff for a project, they always received cheerful agreement, but the ensuing reality proved challenging: Developers didn’t know what they’d be working on each day and received new tasks with little notice. Project managers were even more frustrated, not knowing whether they had the staff needed to meet deadlines. The uncertainty also made client conversations difficult. Some of our best team members found the chaotic environment irritating and left. Clients got annoyed about delivery issues and the poor quality resulting from last-minute scrambles, and they left too. It was time for a change.

I was tasked with devising a more efficient resource allocation strategy. In this article, I walk through the activities that transpired, recounting how we took our organization from chaos to smooth routine by implementing and optimizing a simple resource management system. I also summarize tooling considerations I’ve uncovered over the years. This topic is especially relevant to professional services companies that deliver industry talent and expertise to clients. Here’s the process that I took to transform our operations, broken down into four actionable steps.

Step 1: Gather Data for Resource Allocation

What is resource allocation? It’s the process of determining which resources are available and then assigning them to specific projects as optimally as possible. In my resource allocation example, staff time was the main variable we needed to manage, whereas resources like equipment and software were relatively stable across projects. The first step I took in streamlining our resource allocation process was to capture information about who, what, and when and make it visible to everyone for the first time. I set up a simple spreadsheet to manage staff time; you’ll find similar fields in any resource management tool:

  • Who: One field records the person assigned to do the work; others should document a department or skill, plus the project manager making the request. The data can be flexible (“Anyone from Creative”), precise (“Jane”), or skill-specific (“3D rendering”).
  • What: The fields for a unique project ID and short title should match your timesheet system so people can easily log work for the right job. A field for extra details should give the assignee information about the task and can link to a creative brief or a set of tickets.
  • When: These fields record the date (or dates) and number of hours or days required.  

Once the core structure of the spreadsheet was in place, it was time to begin inputting data for the first draft. This is always a time-consuming process, and in this case, it took dozens of meetings to work out the plans for more than a hundred people and hundreds of projects. I recommend laying out the next few weeks and months in as much detail as seems reasonable. You don’t want to start every week from scratch, but you also don’t want to plan too far ahead and find yourself constantly updating incorrect information.

The resulting spreadsheet was ugly and long—but also a success. Each developer could see what they were doing. Project managers could see who they had booked. And everyone knew which project ID their hours would be logged under in their timesheets.

A resource management spreadsheet shows who is responsible for what, and when, along with unallocated hours and time off. Creative briefs can be linked in a details field.

When the first draft was in order, we iterated and improved. I scheduled a weekly deep dive with a few stakeholders to discuss staffing requirements, a common practice for resource allocation planning. Everyone will want to provide input initially, but I recommend skinning this down to the fewest possible participants after the first handful of meetings.

Sometimes, feedback on the schedule will conflict. A department head, for instance, might want to stretch an inexperienced person in a new skill, while a project manager will want an expert to complete the same tasks as soon as possible. One person may prefer saving small follow-up tasks from clients until the end of the week, while another will want to provide a same-day turnaround. Agree on rules of thumb in the early weeks and document them in writing, even getting input from senior staff such as the COO. Doing so will help make these decisions predictable and less time-consuming moving forward.

Modern resource management tools, which I discuss at the end of this article, allow for this and the next steps to be easier. However, if you struggle to obtain budget approval for a tool or your team is small, using a simple spreadsheet is better than continuing in chaos. When I was earning my MBA in 2010, my thesis was on resource management, and my research indicated that across dozens of UK agencies, most were happily using spreadsheets, even with hundreds of staff.

Step 2: Define a Resource Allocation Process

After gathering the data, I needed to create a tool so that project managers could request team members for jobs and amend existing requests. We didn’t want to have ad hoc discussions with every project manager for each resource allocation. Requests that pile in over Slack, email, and unplanned conversations will slip from anyone’s memory. Funneling these requests through one channel creates a single source of truth.

This can be accomplished with a relatively simple form based on the spreadsheet structure, allowing project managers and others to submit a request. Both Microsoft and Google have tools for creating forms. The form shouldn’t write any information to your main spreadsheet, as elements often need some adjustment. But design the form so that you can easily copy and paste the requests to the main spreadsheet.

A resource request form includes fields for job code, staff members needed, date, duration, extra details, and whether it’s a new or amended request.
A simple form for resource requests and amendments ensures project management teams can streamline how resources are allocated. (Google Forms)

When we did this for our team, a new traffic manager reviewed all the incoming requests, discussed them with the project managers as needed, and updated the spreadsheet. This person also did a quick “final” review of the week’s plans with all department heads. 

Once the tool was working, we iterated and improved. We created a simple spreadsheet script to email each developer and project manager a weekly plan. Soon after, we updated the spreadsheet to send a daily email to anyone affected by a change made that day, allowing for more dynamic resource allocation. Again, modern resource management tools come with many features like this built in, but you can go a long way with spreadsheet scripts if needed.

Step 3: Optimize Resource Allocation for Billability

Next, we optimized our new system to achieve the main goal of resource allocation in project management: improving billability. In a creative agency like ours, income depended on billing time to clients. If staff are not working on client jobs, you’re losing money, as you still have to pay them. So we needed to be able to see who was available when. 

We created another spreadsheet script that made it easy to see our capacity. Basically, we laid out all the dates for the next few months, populated them as “blank” by default, and as time got booked, our script calculated how many hours were still unassigned for each person.

A spreadsheet script checks which staff are scheduled for fewer than eight hours daily and marks unscheduled time as blank.
A resource management spreadsheet script automatically flags unallocated time with a “blank” entry. Each team member’s hours add up to an eight-hour day.

This naturally led to weekly inspections of who was available for the next week and simplified discussions with department heads and others. Did we have billable work to bring forward? Did we have training that people could do or new business they could help with? Once it became clear where we had capacity, it became much easier to fill it sensibly.

For an extra-easy win, cross-reference this resource management system with your timesheet system and check that team members are logging time more or less as planned. If someone forgets to log time for something that was booked, it can’t be billed. If they log more time than was planned, the project will go over budget (and may not be billable). So it’s worth running this simple audit weekly if possible.

Step 4: Fine-tune Resource Allocation for Staff

The final step of optimizing how resources were allocated was a very human one. Once we had the data, process, and billability in a reasonable place, we could start planning work to give our team members a more enjoyable and fulfilling experience. Here are several questions that a manager can ask at this stage:

Can Team Members Stretch to Develop New Skills? 

When teams are working in chaos mode, and you’re scrambling to respond to every request, it’s hard to plan. With more visibility and forethought about who does what, you can help the team upskill, allowing staff to enjoy and engage more with their work. Junior staff can start taking on more senior roles, for instance, and developers can practice new technical skills. This planning will also benefit the company in the long term. 

Obviously, avoid shortchanging the client. A newbie might take twice as long as an experienced person and may need a few hours from an expert for review and support. Plan and charge accordingly, perhaps assigning the extra time to a “training” job code.

Do Team Members Need a Break or a Change? 

Empathetic management can improve team and company outcomes. If someone is going through a tough time personally, they might find it helpful to work on a job they can do in their sleep. Likewise, someone who has completed a long, dull job might benefit from doing something more fun and creative.

How Should Staff Use Downtime?

Even a highly efficient organization will wind up with unallocated bench time. You can optimize this to benefit the company and your team members:

  • Training, in all its forms, is an obvious use of downtime. 
  • Staff can also be assigned to research and development tasks for internal initiatives—for example, building a design system for the company website or other internal tools. These can grow into massive time sinks, but when assigned judiciously, they provide a useful practice ground for new skills.
  • Rest time can also be valuable. Someone who has completed a strenuous project and has a short gap before the next project may benefit from having time off to recuperate. Employees appreciate this flexibility, although you’ll want to make it an exception rather than the rule.
  • Downtime can also be allocated for new business and business development, such as bolstering existing work, adding extra help to current pitches, or doing proactive work to impress a client. In one case, a developer was frustrated by how difficult it was to set up new projects on the client’s infrastructure, so we gave him time to solve the problem, making our future development work more efficient. The client loved our proactiveness, and this seeded a workstream worth millions of dollars to the company.

Decisions about how downtime should be spent usually involve a conversation between the staff member, their manager (who should be looking out for their career development), and the operations manager. It may also require input from stakeholders in sales or account management, or occasionally a blessing from the COO. Empowering staff to make their own choices is always good, so, if possible, give them a few options.

Many tools are now available to help with resource management, and most will do a more elegant job than a spreadsheet. However, you might still find a spreadsheet useful for the first few weeks, to model data and clarify your requirements. When it comes to selecting a long-term tool, there are several things to consider:

Integrate With Your Timesheet and Project Management Systems

The resource management system sits between two other tools: the timesheet and project management systems. You need a tool that communicates with both, but I’d recommend focusing on systems that are extensions of your timesheet system, as this is usually tied to invoicing and your company’s lifeblood. For instance, I’ve introduced Forecast to companies that use Harvest for timesheets because the tools are made by the same company. If you can’t easily integrate with timesheets, then see what works with your project management system, as this is where the work lives. Some systems like Asana include a workload management option for premium subscribers.

Whichever system you choose, ensure it’s easy to automatically pull data from a single source of truth for clients, projects, roles, and staff (including freelancers), with rate cards and project budgets. Include placeholders for potential projects and future hires. And make sure project managers can easily see the financial impact of their requests. With a combination of Harvest and Forecast, for instance, resource managers can generate reports when a project is likely to go over budget and when tracking estimated versus actual hours.

Determine How to Plan for Nonworking Time

You need to plan for part-time schedules, employee vacations, holidays, and other time off. If you have a leave management system, you can use a tool like Zapier to update your resource management system with time-off bookings. Otherwise, you’ll need to find other ways around it. With Asana, you could assign a recurring task for someone’s part-time working hours. Or with Forecast, you can schedule time off, whether for holidays, part-time hours, or otherwise.

Provide a Single Channel for Resource Requests

Resource request forms are especially valuable for large teams. Not all systems have request forms—Forecast doesn’t, whereas Asana does. If the tool you select doesn’t include this function, a simple form from Google or Microsoft will do fine. The form can stay detached from all other systems, as the information should be reviewed by a resource manager before going into the resource management system.

Remember to Look for Skills Management Solutions

As you optimize for staff, it becomes more important to track which skills people have (coding languages, software competencies, and so forth). Are there beginners who want to practice a new skill? Are there experts who can guide them? Few tools currently do this—it isn’t built into Asana or Forecast—so look carefully if this is important to you. If you can’t find a tool that suits your needs, keep a log of skills and levels of expertise in a spreadsheet. 

Ensure the System Is Easy to Use

Some enterprise resource planning systems are intended for giant corporations to plan manufacturing resources and for finance directors to perform audits and analyses with great detail. These tend to have complex, nonintuitive interfaces. Professional services companies—and agencies in particular—generally benefit from something visual that teams can use without much thought or effort. The resource manager will need something that easily answers questions about the team’s capacity. With a simple system, team members won’t have to waste time figuring out what work to do instead of doing the work.

The Results of Optimal Resource Allocation

The impact of creating a resource management system for our creative agency was huge. Beyond the direct financial benefit of meeting project budgets and increasing billable hours, it also had the less measurable results of lowering stress, improving clarity and quality of work, and boosting morale among employees and goodwill with clients.

Even the first release of the spreadsheet caused project managers and teams to breathe a sigh of relief. Employee turnover decreased that year, which I’m confident was related to the benefits of optimizing the allocation process with the interests of our team members in mind. I’m also confident that an increase in the number of clients and projects was at least partly because we became better at delivering higher-quality work on time. Plus, we reduced the internal financial impact of project budget overruns, and we started to make good use of people’s bench time. The finance director and the COO were delighted.

As our results illustrate, resource allocation can have a fundamental impact on a company’s profitability, and it deserves dedicated attention and a dedicated tool. The system should gather the data in one place to create a single source of truth. Remember to define the processes for requests and amendments. Then optimize the system for billability, filling the capacity you’ve uncovered with billable jobs, and fine-tune it for staff, finding ways to fill unused capacity that help the team upskill and enjoy their work. In the end, you may come to agree: All good company management is, indeed, good resource management.

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button