Speaker: Laurent Bossavit

📌 The Premise

The speaker wasn’t here to discuss how to fix bugs once they exist — but rather to ask why bugs appear in the first place.
His theory:
➡️ Bugs in code are the result of bugs in our own brains.

They’re the byproducts of:

  • Cognitive biases (as described in Daniel Kahneman’s Thinking, Fast and Slow)

  • Miscommunication and ambiguous exchanges between teammates

  • And sometimes from the tools and abstractions we choose


📌 Communication & Cognitive Biases

A significant source of bugs comes from the semantic gaps in human communication.
Example: repeat a word like AI a hundred times, and it gradually loses meaning — a phenomenon called semantic saturation.

This disconnect leads to:

  • Differing interpretations of requirements

  • Assumptions made without alignment

  • And code built on misunderstandings

AI won’t fix that, because the problem isn’t technical — it’s human.


📌 On Tools & Paradigms

The speaker then touched on how some bugs aren’t purely human — sometimes our tools make them easier to introduce.

For example:

  • In object-oriented languages (like Java, Ruby), dealing with concepts like a card game can get unnecessarily complex and error-prone (e.g., two mutable instances of the same card in a game)

  • In functional languages (like Haskell), you can define constraints in the type system itself, making certain bugs (like an invalid card type) literally impossible to compile

This wasn’t a full-on sales pitch for functional languages, but a clear statement:
Some languages and paradigms actively help prevent entire classes of bugs through their design.


📌 Conclusion

The core message:

  • Most bugs don’t come from tech limitations, they come from how humans think and communicate

  • Better tools and paradigms can mitigate some of these problems

  • But fundamentally, we need to acknowledge the human factors in software design and development

A thought-provoking session blending psychology, programming languages, and software heuristics.