How to Keep Your Systems Running When the Team Gets Smaller

When a team contracts—whether through layoffs, attrition, or a quiet shift in priorities—the first casualty is rarely a person. It’s the unwritten, accumulated knowledge of how things actually work. The script nobody documented. The memory of a database crash during a holiday weekend. The gut feeling for which log line matters and which one is just noise. At Gray Haven Lab, we’ve watched this pattern unfold across startups, agencies, and infrastructure teams: operational knowledge is the most perishable asset in any technical organization, and it becomes dangerously exposed when headcount drops.

This is a practical guide to holding onto that knowledge. It’s not about tools alone, and it’s not about hiring. It’s about the habits, documentation patterns, and team rituals that let a smaller group run complex systems without panicking at 2 a.m.

Server rack with organized cabling in a data center

Why Operational Knowledge Fades Faster Than You Think

Operational knowledge isn’t just “how to restart a service.” It’s the layered understanding of why a service was built a certain way, what its failure modes are, and which alerts you can safely ignore for an hour versus which ones demand immediate action. When a team shrinks, the people who leave often take with them the context that never made it into a runbook. The remaining team members are left with fragments: a wiki page last updated two years ago, a Slack thread that trails off, a monitoring dashboard that nobody fully understands.

This decay accelerates under pressure. A smaller team means each person is responsible for a wider surface area. When incidents happen, there’s less time to investigate, less redundancy in expertise, and a higher chance that the person who knows the fix is asleep or no longer employed. The goal isn’t to document everything—that’s impossible—but to make the critical knowledge durable and shareable.

Map What You Actually Depend On

Before you can preserve knowledge, you need to know what knowledge matters. Most teams have a mental model of their systems that’s incomplete or outdated. Start with a dependency map: not an architecture diagram from a design doc, but a live list of what your services actually talk to, what they expect, and what happens when each dependency fails.

This map should be simple enough to sketch on a whiteboard. For each component, answer three questions:

  • What does it need? (databases, APIs, credentials, DNS, certificates)
  • What breaks if it’s gone? (user-facing features, internal tools, monitoring)
  • Who knows the most about it? (and who’s the backup)

If the answer to “who knows the most” is a single person who just left, you’ve found your first priority. This map becomes the skeleton for everything else: runbooks, alerting rules, onboarding guides. Keep it in a place where it’s easy to update, not buried in a Confluence space that requires a search query to find.

Write Runbooks That Assume You’re Tired

Most runbooks are written by someone who understands the system deeply, for an audience they imagine is equally informed. That’s a mistake. The person reading a runbook at 3 a.m. is tired, possibly stressed, and may not have touched this system in months. They need clarity, not completeness.

A good runbook for a small team follows a few rules:

  • Start with the symptom, not the architecture. “If users see 503 errors on the checkout page” is more useful than “Overview of the payment service.”
  • Give one verified path, not all possible paths. Document the fix that works 90% of the time. Edge cases can go in an appendix or a linked postmortem.
  • Include the commands, not just descriptions. “Restart the service” is vague. “Run systemctl restart payment-api on host prod-pay-01” is actionable.
  • Link to related resources. Dashboards, log queries, and previous incident reports should be one click away.

We’ve written before about the value of having a recovery checklist ready before an incident hits. That post, Write the Recovery Checklist Before You Need It, goes deeper into the structure of a checklist that works under pressure. The same principles apply here: make it easy to follow when cognitive load is high.

Shift from Tribal Knowledge to Shared Practice

Tribal knowledge—the unwritten, unspoken understanding that lives in a few people’s heads—is the single biggest risk to a shrinking team. When those people leave, the knowledge leaves with them. The fix isn’t to document everything they know; that’s a losing battle. Instead, make knowledge sharing a continuous, low-effort part of how the team works.

Pair on Everything That Matters

When a team is small, pairing can feel like a luxury. It’s not. Pairing on operational tasks—deployments, incident response, database migrations—spreads knowledge in real time. The person observing asks questions that the expert wouldn’t think to document. “Why did you check that log file first?” “What does that error code actually mean?” These conversations surface the tacit knowledge that never makes it into a wiki.

Even asynchronous pairing works. Record a screen share of a routine maintenance task with voiceover. Keep it short—five to ten minutes—and store it where the team can find it. The goal is to create a library of micro-demonstrations that show not just what to do, but how an experienced operator thinks while doing it.

Rotate On-Call Responsibilities

If only one person carries the pager for a particular service, that service has a single point of failure. Rotate on-call duties across the remaining team members, even if it means pairing a less experienced person with a veteran during the rotation. The first few shifts will be rough, but the learning curve is steep. After a month, you’ll have multiple people who can handle common incidents, and the bus factor for that service drops significantly.

Two people working together at a desk with multiple monitors showing code and dashboards

Document Decisions, Not Just Configurations

Configuration files and infrastructure-as-code tell you what the system looks like right now. They don’t tell you why it looks that way. When a team shrinks, the “why” becomes critical because the remaining members may need to change things without fully understanding the original context.

Adopt a lightweight decision record practice. For any significant operational choice—a database index that was added, a retry policy that was tuned, a monitoring threshold that was adjusted—write a short note explaining the reasoning. Store these notes alongside the code or configuration they affect. A simple format works:

  • Date: When the change was made
  • Context: What problem were we solving?
  • Decision: What did we change?
  • Consequences: What got better? What trade-offs did we accept?

These records become invaluable when the person who made the change is gone. They prevent the new person from reversing a carefully considered decision because “it looked weird” or “I didn’t understand why it was there.”

Build Resilience Through Deliberate Practice

Small teams can’t afford to learn only during real incidents. The cost of mistakes is too high, and the stress of learning under fire leads to burnout. Instead, build deliberate practice into your operational rhythm.

Run Game Days

A Game Day is a scheduled event where the team simulates a failure in a controlled environment and practices responding to it. For a small team, this doesn’t need to be elaborate. Pick one scenario—a database failover, a certificate expiry, a spike in traffic—and walk through it together. The goal isn’t to test the system (though that’s a side benefit); it’s to test the team’s response. Who gets paged? Who knows where the runbooks are? Does the runbook actually work?

After each Game Day, hold a brief retrospective. What surprised us? What did we have to look up? What would we do differently next time? Update the runbooks and decision records based on what you learn. Over time, these sessions build a shared operational memory that doesn’t depend on any single person.

Practice Reading Code and Configs Aloud

This sounds odd, but it’s effective. Once a week, have someone share their screen and walk through a piece of infrastructure code, a Terraform module, or a Kubernetes manifest. The rest of the team asks questions. The goal is to surface assumptions and build a common understanding of how the system is put together. When the original author leaves, the team still knows why that weird sleep 30 is in the deployment script.

Simplify the Stack

A smaller team has less capacity to manage complexity. Every custom tool, every bespoke script, every service that only one person understands is a liability. After a team shrinks, take time to audit the stack with a bias toward simplification.

Ask these questions for each component:

  • Can we replace this with a managed service? Managed services cost money, but they transfer operational burden to a provider with a larger team. For a small team, that trade-off often makes sense.
  • Can we consolidate? Two similar services that do slightly different things might be merged into one, reducing the surface area the team needs to understand.
  • Can we remove it? Some services were built for a use case that no longer exists. If nobody can explain why it’s still running, turn it off in a controlled way and see what breaks.

Simplification isn’t just about reducing work. It’s about reducing the number of things that can go wrong in ways the team doesn’t understand. A smaller, well-understood stack is more resilient than a larger one with dark corners.

A person working on a laptop with server equipment in the background

Create a Culture of Writing Things Down

Documentation is often treated as a chore—something you do after the real work is done. In a small team, that mindset is dangerous. Writing things down needs to be part of the work itself, not an afterthought.

This doesn’t mean producing polished manuals. It means keeping a shared log of operational changes, decisions, and discoveries. A simple approach: maintain a team operations journal. This can be a shared document, a wiki page, or a channel in your messaging platform. Every time someone does something that affects production—a deploy, a config change, a manual intervention—they add a short entry. What they did, why they did it, and any relevant links.

The journal serves multiple purposes. It’s a searchable history when something breaks. It’s a training resource for new team members. And it’s a forcing function: if you can’t explain what you did in two sentences, you probably don’t understand it well enough yourself.

Prepare for the Worst with a Recovery Checklist

When a team is small, the loss of even one more person can be catastrophic. That’s why having a recovery checklist—written before you need it—is so important. We covered this in detail in Write the Recovery Checklist Before You Need It, but the core idea is worth repeating: a recovery checklist is a pre-written, step-by-step guide for restoring critical services after a major outage or when key people are unavailable.

This checklist should include:

  • Access procedures: How to get into accounts, servers, and tools when the usual person isn’t available. This means break-glass credentials, stored securely, with clear instructions for who can access them and under what circumstances.
  • Service dependencies: The order in which services need to be started, and what checks to perform at each step.
  • Contact information: Who to call for each system, including external vendors and former team members who’ve agreed to be available for emergencies.

Store this checklist somewhere that doesn’t depend on your primary infrastructure. A printed copy in a safe, a secure cloud document accessible with personal accounts, or a USB drive in a known location. When your team is small, you can’t assume that your normal communication channels will be available during a crisis.

Frequently Asked Questions

What’s the first thing we should document when a team member leaves?

Start with the systems and processes that only that person understood. Ask them directly, before they leave, to walk through anything that isn’t already written down. If they’ve already left, check their recent activity—commits, deployments, tickets closed—to identify what they were working on. Prioritize anything that’s customer-facing or that would trigger a pager alert if it broke.

How do we keep documentation from going stale?

Stale documentation is often worse than no documentation, because it gives a false sense of security. The best approach is to tie documentation updates to operational workflows. Every time someone uses a runbook, they should update it with what they learned. Every time a deploy happens, the deploy guide should be reviewed. Make it a habit, not a project. If you treat documentation as a living artifact that’s part of the work, it stays fresh.

What if we don’t have time for Game Days or pairing?

Small teams are always short on time, but the cost of not doing these practices is higher than the time they take. A one-hour Game Day once a month can prevent a twelve-hour outage later. Pairing during a deploy might add thirty minutes, but it ensures two people can handle it instead of one. Start small: pick one routine task and pair on it this week. The time investment pays off quickly when the expert is unavailable.

How do we handle knowledge that’s too complex to write down?

Some knowledge is genuinely hard to capture in text—debugging instincts, pattern recognition, the feel for when a system is “acting weird.” For this, use recorded walkthroughs and pair programming sessions. The goal isn’t to document the instinct itself, but to show enough examples that others can start to develop their own. Over time, the team builds a shared intuition that doesn’t depend on a single person.

Maintaining operational knowledge when a team shrinks isn’t about preserving everything. It’s about being intentional: identifying what’s critical, making it shareable, and building habits that keep knowledge flowing even as people come and go. At Gray Haven Lab, we believe that resilience isn’t a property of systems—it’s a property of teams. And the most resilient teams are the ones that treat knowledge as a shared, living resource, not a private collection of secrets.