Back to articles
Nov 4, 2025 - 1 MIN READ
Technical Debt

Technical Debt

A beginner-friendly look at how coding shortcuts today can create bigger problems tomorrow.

Roslan Saidi

Roslan Saidi

Technical debt means doing something quick today that saves time now but causes more work later.

For example, imagine we need to send emails from our system. The “clean” way is to use a job queue (background process). That way, the user clicks a button, and the email is sent in the background without slowing the app.

But if we’re in a hurry, we might just send the email directly in the request (“fire email immediately”).

  • Short term: It works, no need to build a job queue. We save time.
  • Long term: Problems start — the app gets slower, users wait for email sending, and if many emails are fired at once, the server crashes. Now we must rewrite the whole email process later.

That “extra work” is called technical debt.

It’s just like borrowing money: you get quick cash now, but you must repay it later with interest. In coding, the “interest” is bugs, crashes, and slow development speed.

Let me explain another analogy:

Real-life analogies

  1. Car Maintenance
  • Quick: Skip changing the oil to save time.
  • Later: Engine breaks, expensive repair.
    🟰 Weak foundation now = costly repair later.
  1. Building House Analogy
  • Quick: Use cheap wood to finish fast.
  • Later: Termites eat it, house repair costs more.
    🟰 Weak foundation now = costly repair later.

Software Development analogies

  1. Skipping Documentation
  • Quick: Don’t write docs to save time.
  • Later: New developer takes weeks to understand system.
    🟰 Debt = onboarding costs increase.
  1. Fire Email Without Job Queue
  • Quick: Send emails directly in request.
  • Later: Server slows, users wait, rewrite needed.
    🟰 Debt = shortcut now, pain later.
  1. Copy-Paste Code
  • Quick: Duplicate code instead of writing a reusable function.
  • Later: Bug found → must fix in 5 different places.
    🟰 Debt = more work every time change happens.

Summary

What is it?

  • Shortcuts in code/design to save time now.
  • But we pay the price later (bugs, slowness, rewrite).

Example

  • Fire email immediately instead of using job queue.
  • Works today → but tomorrow causes slowness and server crash.

Why it matters

  • More bugs
  • Slower system
  • Harder to add new features

When it’s okay

  • If deadline is very tight.
  • But we must “fix it later” (repay the debt).

Rule

  • Technical debt = shortcut today → headache tomorrow.
© 2024 Roslan Saidi