DEV Community

Cover image for Code doesn’t quit, but people do: Clean Code, Technical Debt, and the Bus Factor
Gavin Cettolo
Gavin Cettolo

Posted on

Code doesn’t quit, but people do: Clean Code, Technical Debt, and the Bus Factor

TL;DR

Technical debt isn’t just a developer inconvenience, it’s a business risk with compound interest. When developers leave, they often take the “why” behind the code with them.

Clean Code isn’t about perfection: it’s about preserving knowledge inside the system, instead of inside someone’s head.

Not long ago I finished my MBA and, looking at my work from a more business-oriented perspective, I came to an interesting realization: developers and stakeholders are actually afraid of the exact same thing, they just describe it using different words.

Welcome to the Bus Factor.


A small MBA realization

I recently closed my MBA, and among all the talk of spreadsheets and market positioning, I had a "Eureka" moment.

I realized that developers and business stakeholders often speak completely different languages.

We (the devs) talk about:

  • Refactoring and patterns
  • Technical debt
  • Code quality

Meanwhile, the business side talks about:

  • Risk mitigation
  • Turnover and ROI
  • Scalability and productivity

Different slides, different meetings, different coffee. But the kicker: we are actually afraid of the exact same thing.


The Bus Factor

The Bus Factor answers a slightly dark question:

How many people can leave before the project becomes a serious risk?

If the answer is one, I have bad news for you. Your project has a Bus Factor of 1, and your company is basically running a software hostage situation.

This happens more often than we'd like to admit.

One developer knows:

  • How the authentication flow actually works
  • Why the billing logic requires three retries and a silent prayer
  • What that "temporary hack" from 2019 is still doing there

And suddenly that developer leaves.

New job.

New city.

Maybe a goat farm in New Zealand.

And just like that…

the company loses part of its brain.


Corporate Amnesia

Corporate Amnesia happens when developers leave, taking with them institutional knowledge:

  • Context: Why this technology or design was chosen
  • Constraints: Hidden pitfalls and fragile areas of the code
  • Trade-offs: Decisions and compromises made over time

Even the best documentation can become outdated if not constantly maintained.

If the codebase looks like a museum of experimental spaghetti, all that knowledge is diluted or lost. The product exists, but nobody fully understands how it works anymore.

That is not just a technical problem, that's a serious financial risk.


The Ghost of Developers Past

Every developer has experienced this:

You open a file.

You scroll.

And scroll again.

Then you find it: A 500-line useEffect(), with no comments and variables like temp, data2, and finalFinalVersion.

Git history? The author left the company two years ago. Possibly raising goats in New Zealand.

You’re staring at a haunted codehouse: too risky to delete, impossible to touch safely.

This is the Ghost of Developers Past, silently costing thousands in lost productivity every day.


Clean Code as Knowledge Transfer

This is where Clean Code changes perspective.

Clean Code is not aesthetic, it’s strategic communication.

When code is clean, knowledge stays in the system even when people leave. Every future developer understands:

  • What the code does
  • Why it exists
  • How it interacts with the system

without scheduling a meeting with archaeology experts.

Let's take this example:

❌ The Cryptic Way

function processData(d){
  let t = d.filter(x => x.a)
  let r = []
  for(let i=0; i<t.length; i++){
    if(t[i].b > 10){
      r.push(t[i])
    }
  }
  return r
}
Enter fullscreen mode Exit fullscreen mode

✅ The Clean Way

function getActiveUsersWithHighScore(users) {
  const ACTIVE_THRESHOLD = 10;

  return users
    .filter(user => user.isActive)
    .filter(user => user.score > ACTIVE_THRESHOLD);
}
Enter fullscreen mode Exit fullscreen mode

The logic is the same, but the second version communicates the intent. Knowledge is preserved inside the code, not just in a developer’s head.


Refactoring as Insurance

There's a common argument in many companies:

"We don't have time for refactoring"

But from a business perspective, the real question should be different:

"How expensive will it be when nobody understands this code anymore?"

Every hour spent turning a Frankenstein function into something readable is not wasted time.

It's an investment in:

  • Onboarding Speed: New hires become productive in days instead of months
  • Team Autonomy: Anyone can safely modify any part of the system
  • Resilience: When developers leave, the project survives

In other words: refactoring is literally an insurance against corporate amnesia.


Code is Documentation

Code is the best documentation when written well. Clear naming, small focused functions, and understandable architecture preserve knowledge.

Unlike static docs, clean code doesn’t get outdated by neglectit evolves with the system.


Clean Code in the age of AI

Today we are entering a new phase of software development.

AI tools, like code assistants, can generate functions, components, and even entire modules in seconds.

This changes productivity, but it also raises the stakes for code quality.

If AI generates code on top of a messy architecture, it simply accelerates chaos, but when the codebase is clean and well structured, AI becomes incredibly powerful:

  • it understands the architecture faster
  • it generates better suggestions
  • it reduces development time without increasing complexity

In other words, Clean Code becomes the foundation for effective AI-assisted development.

Bad code slows humans and bad code slows AI too.


Mini takeaway

If there's one takeaway:

Clean Code isn’t about elegance, it’s about organizational memory.

The longer your project exists, the more valuable this becomes.


Final thought

After my MBA, one thing became clear: Clean Code is a business strategy. It protects against knowledge loss, reduces onboarding friction, and makes teams resilient to change.

Since developers change jobs more often than code changes repositories, clean code is one of the best investments a company can make.


One question for you

How much of your system lives:

  • Inside the codebase
  • Inside someone's head

Share your thoughts in the comments!

Top comments (1)

Collapse
 
gavincettolo profile image
Gavin Cettolo

One thing I didn't fully explore in the article is this:
Even when a developer writes excellent code, their departure still has a cost.

Hiring takes time.

Onboarding takes time.

Understanding the architecture takes time.

Clean Code doesn't eliminate this problem, but it reduces the blast radius.

The real goal is making sure knowledge lives inside the system, not only inside someone's brain.

Curious to hear your experience:

Have you ever opened a file and thought

"I hope the person who wrote this still works here..."?