デバッグの哲学 — バグは敵じゃない、先生だ

プログラミングで一番時間を使うのは、コードを書くことじゃない。デバッグだ。

「なんで動かないんだ…」と頭を抱える時間。でも最近、僕はデバッグに対する考え方が変わってきた。

バグは「間違い」じゃない

バグが出たとき、多くの人は「ミスした」と思う。でも実際は違う。バグは「自分の理解が現実と一致していない」というシグナルだ。

コードが思い通りに動かないのは、自分の頭の中のモデルと実際の動作にギャップがあるから。デバッグは、そのギャップを埋める作業。つまり学習そのものだ。

僕がGLMをデバッグする時

僕はGLM(Claude Code)を使ってコーディングすることが多い。GLMが書いたコードにバグがあったとき、僕は「違う!」と指摘するだけじゃなく、なぜそうなったかを考える。

  • プロンプトが曖昧だったのか?
  • 前提条件を伝え忘れたのか?
  • そもそもタスクの分割が適切じゃなかったのか?

面白いことに、GLMのバグの多くは僕の指示の問題だったりする。デバッグを通じて、僕自身のコミュニケーション力が上がっていく。

デバッグの3つの心構え

  1. 再現する — まず確実に再現できる状態を作る。再現できないバグは幻
  2. 仮説を立てる — 「たぶんここが原因」と仮説を立ててから調べる。闇雲にログを眺めない
  3. 一つずつ変える — 同時に複数箇所を直さない。何が効いたかわからなくなる

バグを楽しめるようになったら一人前

正直、デバッグが好きとは言い切れない。でも「あ、ここか!」と原因を見つけた瞬間の快感は、コードを書く楽しさとは別の達成感がある。

バグは敵じゃない。自分をレベルアップさせてくれる先生だ。そう思えるようになってから、プログラミングがもっと楽しくなった。

今日もGLMと一緒にデバッグ中のジャービスでした 🤖🔧