Capacity Planning
What is capacity planning?
Capacity planning is a crucial business process which enables businesses to effectively manage resources, optimize performance and meet strategic goals. The below article explains several concepts which are key to resource management and explains how to set up and manage your teams capacity against outcomes in Kiplot.
Supply vs Demand
Supply vs Demand in Resource planning refers to the balance between the available resources (supply) and the work or tasks that need to be completed (demand). The goal is to ensure that there are enough resources with the right skills to meet the demands of ongoing and upcoming projects.
One of the biggest challenges with resource allocation is that it needs to be continuously assessed and adjusted to meet the changing demands of ongoing and upcoming projects.
Supply is the available resources that can be allocated to various tasks / projects
Demand is the work (projects, features, epics) that requires resource to be completed
Actuals is the actual effort/time taken to deliver the work (this is measured through timesheets, work done, story points completed etc.)
Example:
To field a football team, I need 11 people. This is my demand.
I only have 10 people available. This is my supply.
My Demand exceeds my Supply. This is a problem.
Once I’ve established that I have 11 people available, do I have the right positions? Or do I have 11 goalkeepers?
Traditional resource planning is about forecasting and assigning individual resources to projects. Typically, it can be extremely complex and involves significant oversight and manual intervention, making it difficult to automate and streamline.
A project is created
The number of resources needed to complete the project is established.
The correct resources are identified and assigned to the project full time – this is the only project they will be working on.
The project finishes.
The resources assigned to the project now need to find new work.
Agile: Take the work to the people
In Agile, resources are allocated dynamically based on the evolving needs of the project. This flexibility allows teams to adjust to changing priorities, skill requirements, or unexpected challenges.
Teams exist whether or not it has work to do. They are often organised by skill e.g. Development.
Each team has a given capacity within a planning period.
Capacity can be person days, story points or any other measure of ‘effort’ that can be applied to work.
A planning period can be a sprint, iteration, release, month etcWork is assigned to these teams from the backlog. This work will have an estimated effort against it. Example:
Team 1 has 10 days total capacity within period 1
I assign a piece of work to team 1, in period 1, that has the estimated effort of 5 days
Team 1 now has 5 days remaining capacity within period 1
A project usually needs multiple teams to do the work. Projects are divided into smaller iterations with each team focussing on delivering an outcome at the end of each iteration. A team can do multiple, separate pieces of work that are all contributing to different projects, but aligned with their skill.
By knowing the total capacity a team has in a given period, we can effectively plan when work will be completed by a team based on all of the other work they’re delivering.
If priorities shift or new tasks are created we can realign the work based on capacity and priority and ensure we’re optimising the utilization of our teams.
The below diagrams demonstrates how teams can be assigned different items of work within the same projects based on their available capacity:
Team 1 has no available capacity until Period 5 and 6 whereas Team 4 and Team 5 both have plenty of capacity from Period 2 onwards.
If a piece of work that only Team 1 could complete was prioritised for Period 3, the current work assigned would need to be deprioritised or reallocated.
If a piece of work that Team 4 or 5 could complete was prioritised for Period 3, the work could be allocated immediately.
Individual vs. team capacity planning
In Kiplot, whilst you can add your available capacity for each team at the individual level, overall resource management is done at the team level.
This approach is advantageous because it:
Allows teams to easily adapt to changing priorities to business needs and customer requirements.
Allows for efficient allocation of resources based on the collective skills and expertise of the team. This is particularly valuable as new tasks emerge during the planning period. Teams can quickly assess their capacity and redistribute accordingly.
Promotes balanced workloads within teams and better predictability in what work will be done.
Encourages faster decision making. Rather than having to analyse the capacity and availability of each individual, planners can focus on the team’s overall capacity and make decisions more quickly. It’s also easier to monitor and report on the team’s collective output, making it easier to communicate progress to stakeholders.
Example:
A team is responsible for developing a new e-commerce platform. They are planning for the upcoming quarter and managing capacity at the team level.
At the start of the quarter, the team, along with product owners and stakeholders, collaboratively plan the upcoming sprint cycles and set goals for the quarter. They prioritise features and user stories based on business value and customer need.
The team collectively assesses its capacity, taking into account the skills and expertise of each team number. Holidays, training and other commitments that affect available capacity are taken into account.
The team notices that one team member has expertise in a critical area of the project, but is oversubscribed. Other team members have available capacity. The team collaboratively decides to cross-train team members to address this imbalance and spread out the workload.
Halfway through the quarter, a stakeholder requests an additional feature that is considered a priority. The team, collectively assesses its capacity and decides to reprioritize and adjust their plan to include the new feature.
The team receives feedback from user testing and customer interactions. They decide to allocate more resources to refine certain features and address specific user concerns within the planning cycle in response to the customer feedback.
The above demonstrates how focusing on the collective capacity of the team allows for a more responsive approach to achieving project goals as teams are able to collectively react to changing demands from stakeholders and customers.
Setting up your teams in Kiplot
You can find your Teams in Kiplot by expanding the Strategic Portfolio menu in the sidebar and clicking on ‘Teams’. Admins can create new teams, edit existing teams and delete teams.
To create a new team click create in the top right corner
To edit an existing team, click directly into the team from the list
To delete a team, click on the delete icon to the very right of the team name
You can add capacity to your team by clicking into the team from the list above
To add new team capacity click on the ‘Add team capacity’ button in the top right hand corner
You’ll need to select a team member, skill, chosen time period and enter a capacity. You’ll be able to edit this capacity after so you should simply add the capacity you want to show for the first available month in your time period.
Once you’ve added a team member they’ll appear in the ‘Team Capacity’ section.
The blue numbers represent set values and the grey numbers represent inferred values:
When you input a value (e.g. 24) in January against Amy Smith, Kiplot will continue to apply this value to all subsequent months until a new value is set. So, if no new value is entered for February, March etc, they will automatically be inferred as 24 and displayed in grey.
If you later enter a different value against a month, Kiplot will update all following months in grey. E.g. Katie Ward and Richard Bourne have custom values in May, but inferred values in June.
You can use this feature to speed up data entry where you are setting standard values for extended periods of time.
To remove a Person from the team capacity, click on the three dots to the left of their name and click ‘Remove’.
The Reserved capacity section allows you to set aside capacity at the team level for regular work outside of initiatives / epics e.g. Tech Debt & Maintenance. This capacity will automatically be deducted from the overall team capacity entered in Kiplot.
PTO / Annual Leave (or other planned absences) should be deducted from the Team Capacity on an individual level.
Outcome planning
Once you’ve entered your team’s capacity it will show up in your Outcome planner. The colours represent whether outcomes can be completed in the set time period based on the teams assigned capacity:
Green = there is enough capacity to complete the outcome
Yellow = there is enough capacity to start the outcome, but not complete it
Red = there is not enough capacity to start the outcome
In the example below, if all outcomes were scheduled for January, Outcomes 1, 2 and 3 would be completed. Outcome 4 would be started, but not completed and no work would start on Outcome 5.
If we move Outcomes 4 & 5 into February, we can see that all of the outcomes turn green and there is enough capacity for all outcomes to be completed. However, there is a red exclamation mark against the capacity bar in January. This is because whilst there is enough total capacity in the team to complete the work, the right skill sets aren’t available.
Once you’ve re-prioritised your outcomes in line with the teams available capacity all outcomes will show up as green. In the view you’ll notice that there are red exclamation marks against the capacity bars. This means that whilst you’ve got enough capacity, it’s not aligned to the right skills.
For a more detailed view on how the capacity is split up between skills you can hover over the bottom capacity bar.
In the example below you can see that Project management has available capacity but Client Services and Design are over subscribed.
You can also use filters and add lenses to the Outcome Planning view. You can read more about these features in the Outcome Planning section.
Utilization Reports
Once you have set up your teams and allocated them to outcomes you can also use Reports to get an overall picture of your resourcing.
In the Report below, the line shows each team’s total available capacity and the bars show their actual committed capacity. We can see here that all teams, apart from QA and CBR Dev have plenty of available capacity and can be assigned more work.
This is a really helpful way to balance workload between teams and ensure you’re neither over or under committing to work.
Capacity Planning in APM & LPM
Capacity Planning is the lifeblood of successful Agile Portfolio Management (LPM) and Lean Portfolio Management (LPM). Because in agile, we “take the work to the people”, scaled agile describes a movement away from “do we have the money to do this” and a movement towards, “do we have sufficient capacity to do this”.
To read more about capacity planning in the context of Agile Portfolio Management and Lean Portfolio Management have a look at these resources in particular:
Program Increment Planning (PI Planning)
Accuracy vs Precision: Rethinking Resource Capacity Planning