Managing team capacity and building in slack

Paradise Wright

December 6, 2024 · 4 min read

It can be tempting to fill your sprints and your roadmap to the brim with work. Ironically this actually tends to cause delays and missed deliveries - a better way is to instead think about your capacity and (productive) slack time.

view-of-a-desk-with-a-calendar-and-a-planning-journal

I recently read this article, by James Stanier. It explains how as a manager, you should not try to manage your time down to the minute, but instead focus on managing your capacity.


It’s a good principle, and something that can be more widely applied when looking at engineering teams and how their work is planned. It can be extended to sprints as well as longer-term plans as well; if you allocate 100% of your time then any interruption (a hotfix, waiting on 3rd party, an outage, etc) causes things to slip and means that overall delivery is delayed.


Building in some "slack capacity" also allows you to tell a better story - it's much nicer to say "we delivered X and Y this cycle, as well as W which was unplanned", versus "we delivered X and Y, but failed to deliver Z which we had on our roadmap, because of unplanned work required for W".


This is important for building trust in being able to do the things you put on your roadmap. And yes, we work agile, so roadmaps are more guidelines than promises, but that's not how our monkey brains work (we see shiny = we expect shiny) and so roadmaps tend to be more “real” than ideal


Something to keep in mind is that work expands to fill the time allocated to it, so if you just have empty slots then you'll find your deliverables always seem to take up that extra time. This is deliberately not the purpose; you want to keep the time for unexpected interruptions, not just regular work.

There are various strategies to compensate. The general idea is to not have unallocated "free-time", but instead have a backlog of low priority tasks that still bring value - small things like automations, paying off technical debt, or even time for learning.

The trick is to make sure the spare time is still active time - this is something you can see when one of your reports wants to learn something new, and so you allocate some time in the sprint for personal development (e.g. Friday afternoons).

If you just free up time, it takes a very disciplined person to actually use it for progressing - most of the time it ends up being used for product work, or vague "learning" that doesn't result in anything in the end. If you treat it as a task (eg: 1 chapter a week) then you can get further (further than just "read this book by X date").

If you make sure that slack time is still planned, you keep your velocity. It's important though that this work is low-priority (and small enough!) that it can be dropped easily, without impact, when you need the extra time back.

If each person in the team has a time reserve, and then a reserve for every sprint, and then also reserves in the cycle, doesn't that mean we will barely deliver anything? Well, yes but also no - looking at the backlog it may seem like fewer things will be delivered, however in reality you would not deliver a full backlog either. Having fewer items with higher confidence is more honest to reality, but gaps in the backlog don’t mean that stuff isn’t getting done either!

And this is why having a groomed backlog is important - if you actually finish on time (or even early!) it should be easy to pick up the next impactful item - anything delivered is now a bonus. If you actually need the buffer time, your overall commitments will not be impacted and it means you're able to deliver what you planned with minimal delays.

Recommended for you

pair programming

Pair Programming

March 7, 2024

2 min read

Pair programming is a great way to see a problem from a different perspective. It gives you the opportunity to learn and be inspired by the people around you. And most of all, it stops you from tunnelling in on a problem and going down the wrong path for too long.

Read more

cat-doing-code-review

Code Reviews

July 25, 2024

12 min read

As engineers, the quality of the codebase is one of our core responsibilities. Code reviews are the final line of defense before code enters a codebase. Once code is in place, it becomes a challenge to address issues that do not break core functionality. At limehome we are a fully-remote agile team, we want to take advantage of what code reviews have to offer.

Read more

Kayaking in the see

The Evolution of Our Release and Quality Process

February 12, 2025

5 min read

When I joined the team as the first QA engineer in 2019, we were preparing to release the first version of our website. At the time, our process relied heavily on manual testing. Later we did implement some automation but it had lower priority. As I was the only QA for a long time, we didn’t have enough time and team members to cover everything. Five years later, we've come a long way and made much progress in our quality process. It was a tough journey, but looking back, I believe it was worth it.

Read more

Back to Blog