Answer — small teams
How can a small team clear a big backlog without hiring?
Updated 20 August 2026
Do three things in order. Delete honestly: most old backlogs are half decisions nobody will ever make, and closing them costs nothing and clarifies everything. Automate the recurring work: dependency updates, release chores, flaky tests, and the small requests that arrive every week. Then add throughput for what is left, either by hiring or by running an autonomous dev loop such as Keelen alongside the team, which works tasks in parallel with your developers and gates every change on your tests and CI.
Be careful what you point the extra throughput at. More parallel work also means more code review, and a small team's review capacity is usually the real constraint. Start with one project and a low concurrency, and raise it only when merged work is keeping up.
What to do, in order
Close what you will never do
Anything older than a year that nobody has asked about since. A backlog you do not believe in is a source of guilt, not a plan.
Group the rest by cause
Twenty tickets often share three roots. Fixing a root closes the cluster and is usually less work than any two of its symptoms.
Automate the chores
Dependency updates, release notes, changelog entries, routine upgrades. This work is genuinely repetitive, and it is a significant share of a small team's week.
Add throughput where the work is well-specified
Tasks with clear acceptance criteria are the ones extra capacity clears fastest, whether that capacity is a contractor or a loop. Vague tickets stay slow no matter who picks them up.
Watch your review capacity, not your ticket count
Throughput that outruns review just moves the queue. Measure how much work is merged, not how much is opened.
A backlog is a review-capacity problem
Small teams usually diagnose a backlog as a coding-capacity problem and are half right. Adding raw output without adding review just relocates the queue from "not written" to "not reviewed", which is worse because it looks like progress. That is why Keelen limits how much unlanded work a project can accumulate, and why it is worth starting conservatively.
Running a loop alongside the team
The Operator plan runs 5 concurrent runs across 10 projects. Work arrives as ordinary pull requests on ordinary branches, so it reviews exactly like a colleague's. Autonomy is a per-project setting, not a personality. Plan review makes a human approve the plan before any code is written. Manual merge means Keelen opens the pull request and you click merge. Branch-only means it pushes a branch and never opens a pull request at all. Pause one project or the whole fleet whenever you want the keyboard back.
What keeps the extra work trustworthy
Five gates stand between the loop and your main branch. New tests are applied without the implementation first and must fail, so tests born green are rejected. An independent reviewer that shares no context with the run that wrote the code reviews the diff. Your own test suite runs on a clean checkout. Nothing merges over a red required CI check. And a review window stands before gated auto-merge, which you can replace with plan-review sign-off, manual merge, or branch-only mode.
The tickets it hands back
Work that is underspecified, missing a dependency, or too large to build as one task is refused at planning time and returned as a question rather than attempted. That is a feature: a plausible implementation of a badly specified ticket costs more review time than writing the ticket properly would have.
When Keelen is not the answer
- Your backlog is mostly unspecified ideas. Specification is the bottleneck, and more capacity will not help until it is fixed.
- The team is already at its review limit. Adding parallel work makes the queue worse, not better.
- The work needs deep context that lives in one person's head.
Hand the work to a loop
Connect a repository, write what you want in plain language, and review the tested pull requests that come back.
FAQ
Will this create more code review work for my team?
Yes, and that is the constraint to plan around. Start with one project and low concurrency, measure how much is merged rather than opened, and raise the limit only when merged work keeps up.
Can it work on the same repository as our developers?
Yes. Work lands as normal pull requests on branches, and merge conflicts are rebased server-side. Keep it scoped to areas where acceptance criteria are clear, at least while you calibrate.
What kind of backlog work suits it best?
Well-specified tasks with testable outcomes: bug fixes with reproductions, small features with acceptance criteria, dependency and test upkeep. Exploratory or architectural work suits it least.