Skip to content

Blog. / thinking #53

@KjellKod

Description

@KjellKod

Fast Coding vs Slow Coding Is the Wrong Debate

Right now the industry seems to be splitting coding into two camps:

Fast coding with AI
Slow coding "by hand"

The framing sounds reasonable. It is also misleading.

Because it assumes something that anyone who has worked in safety critical environments learns very quickly:

You should never trust a single actor.

Not a human.
Not a machine.

You trust the system.


The Myth of the Perfect Coder

A lot of discussion around AI coding revolves around whether LLMs are good enough to replace programmers.

They hallucinate.
They misunderstand context.
They occasionally produce nonsense.

All true.

But here is the twist:

So do humans.

The history of software failures is not a story of machines gone rogue.
It is a story of humans confidently shipping incorrect assumptions.

Entire industries exist because of this.

Testing.
Verification.
Static analysis.
Code review.
Architecture review.
Security review.

None of those exist because programmers are perfect.

They exist because they are not.


Safety Critical Thinking

In aviation, medical devices, or defense systems, nobody asks:

"Can one engineer be trusted to get everything right?"

That would be an absurd question.

Instead we design systems of validation.

Multiple checks.
Independent verification.
Layered responsibility.

Not because individuals are incompetent, but because complex systems demand systemic reliability.

Software engineering should think the same way about AI.


The Wrong Question

The current debate often sounds like this:

Can an AI write reliable code?

But that is the wrong question.

The real question is:

Can a system reliably produce correct software?

Once you ask that question, the architecture changes.


From Coding Assistant to Engineering System

Imagine a system where different agents focus on different responsibilities:

  • one agent generates code
  • another reviews architectural intent
  • another checks security implications
  • another generates tests
  • another challenges edge cases
  • another compares implementation alternatives

None of them are trusted alone.

They are trusted together.

And above them sits the most important component:

The human controlling the intent.


The Role of the Human

The human role does not disappear.

It moves.

From typing every line of code
to defining the intent, constraints, and reasoning behind the system.

In other words, the human becomes the system thinker.

Which ironically is exactly the skill we need more of, not less.


A Small Irony

The current debate often contrasts:

Fast AI coding
vs
Slow human coding

But there is a quiet irony here.

The slowest thinking model in software engineering might be the one where a single person writes code alone and everyone hopes it works.

The real progress is not replacing humans.

It is building systems that reason about software together.


The Future

AI absolutely increases the speed of software creation.

That part is already obvious.

But speed alone is not the goal.

The real challenge is reliability.

And reliability rarely comes from trusting a single component.

It comes from designing the right system.

The same principle that has guided safety critical engineering for decades.

Software engineering is simply rediscovering it.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions