Summary

Jimmy Miller’s commentary on Peter Naur’s paper arguing that intuition is the fundamental, irreplaceable substrate of software development. Naur’s radical thesis: no method (agile, TDD, formal methods, types) can substitute for intuition, because any method must itself be understood through intuition to be applied. The only exception: checklists.

Jimmy Miller 對 Peter Naur 論文的評論,該論文認為直覺是軟件開發的根本、不可替代的基礎。Naur 的激進論點:沒有任何方法(敏捷、TDD、形式方法、類型)可以替代直覺,因為任何方法本身都必須通過直覺才能被應用。唯一的例外:清單。

Key Points

  • Naur’s definition of intuition (via Quine): not mystical sixth sense; rather “habitual ways of using terms without reflecting on definitions or presuppositions” — the things we do without conscious reflection
  • Software development is “an interplay of intuitive knowledge had by the programming person and the real world accessible to that person” — knowledge changes over time as an essential feature of development
  • No method can substitute for intuition: to apply a method, you need intuition to understand the method’s terms, know when it applies, and connect it to your problem
  • Only checklists work: all other methods (agile, TDD, formal methods) are insufficient without intuition
  • Practical implication: people who prefer dynamic typing, dislike heavy documentation, or reject your method are not ignorant — their intuitions are different from yours
  • Jimmy Miller’s framing: Naur provides a “definitive end to all sorts of method debates”

Insights

Naur’s point dissolves the “which methodology is correct?” debate by showing that methods are tools that work in the hands of practitioners whose intuition is already doing the heavy lifting. The insight explains why methodology wars are intractable: practitioners who succeed with TDD credit TDD; those who fail blame TDD; both are actually describing their intuition’s interaction with the method. The checklist exception is precise: checklists don’t require judgment to apply — they’re pure procedure. Everything beyond checklists requires human interpretation. This maps to software: automated linters, type checkers, CI gates (checklist-like) add value; “write clean code” or “use SOLID” requires the intuition that methodology advocates already have.

Connections

Raw Excerpt

No method can be substituted for our intuition, because any proposed method would itself need to be comprehended by our intuition. Our intuition is what tells us when to apply certain methods.