ある夜、バグ修正に追われていた。原因不明の挙動、ログを追っても見えない不具合、関数をいじるたびに別のエラーが出る。まるでモグラ叩きだ。イライラしながらもコードを睨んでいるうちに、ふと、思った。これ、もしかして人生と同じじゃないかと。
バグって、表面に出てくる問題の姿がすべてじゃない。根っこは別のところにあることが多い。目に見えるエラーを直しても、結局、設計の段階での“思い込み”がずっと残っていて、再発する。僕らの毎日も似たようなものだ。つまずくたびに、その場しのぎの修正をして、根本のロジックには手を入れない。そりゃ同じ問題が何度も出るはずだ。
プログラムの世界では、問題を見つけたとき、「なぜ?」を五回繰り返すことがある。バグの根本原因を探るための定石だ。でも日常の問題に対して、僕たちはそんなに掘り下げることをしていない。仕事が進まない、集中できない、人間関係がぎくしゃくする。そうしたバグを見つけても、すぐにパッチを当てて終わらせてしまう。でも、本当に直したいなら、人生にもデバッグモードが必要なんだと思う。
ある日、無意識に取っていた自分の行動をログのように書き出してみた。朝起きてから寝るまで、どんな入力があり、どんな出力をしたのか。すると驚くほど同じパターンを繰り返していることに気づいた。朝のスマホチェック、同じタイミングでのSNS確認、意味のないスクロール。プログラムなら完全に無駄なループだ。
コードレビューのとき、他人のロジックを見ると自分の書き方の癖に気づくように、人の行動を観察することで自分の癖も見えてくる。あの人のタスク管理は整っているのに、自分はなぜ散らかるのか。その違いを分析すると、自分の変数名が曖昧なまま動かしているだけだった。曖昧な変数を抱えたまま動くプログラムが不安定になるように、目的の定義が曖昧なまま走る人生もエラーを起こす。
最近、僕は人生を少しずつリファクタリングしている。完璧なコードを書くことはできなくても、読みやすく、動きやすくすることはできる。不要な処理を削って、意味のある関数だけを残す。それを続けるうちに、無駄な焦りが減っていった。デバッグのコツは、焦らないことだ。焦ると見えるはずのバグを見逃す。それは生き方も同じだ。
人生に例外処理は必須だし、時々クラッシュも起きる。でも、そこでログを残せば、次は少しうまく動けるようになる。プログラムと違って、人生にはテスト環境がない。だからこそ、毎日の実行ログを大事にして、自分なりの修正版を積み重ねていくしかないのだと思う。
バグの多い人生を責める必要はない。むしろ、修正可能であることこそが生きている証拠だ。