プログラムのデバッグを行う時、画面に向かって静かに奮闘するのではなく、机の上に置いたゴム製のアヒル人形にコードを1行ずつ説明しながら進める「ラバーダック・デバッグ」という手法が存在します。なぜラバーダック・デバッグは有効なのかについて、シドニー大学のコンピューター科学者であるエリオット・ヴァロイ氏が解説しています。
Stuck on a problem? Talking to a rubber duck might unlock the solution
https://theconversation.com/stuck-on-a-problem-talking-to-a-rubber-duck-might-unlock-the-solution-261675
例えば、あなたが購入した家具を自分で組み立てていて、途中で行き詰まってしまったとします。いつまでも完成しない家具を目の前にイライラしていると、パートナーが部屋に入ってきました。そこでパートナーに「全部その通りにやっているんだ。見てくれ」と話しかけると、「まず1番のネジを使ってAとBを繋ぐ、ついに3番のボルトでBとCをつなぐ、そしてBとCをDにつなぐ……あれ?」と、行程を解説している途中で自分が手順を飛ばしていることに気付きます。
何かに引っかかっている時、問題を声に出して説明しようとした瞬間、すべてが理解できるようになるという経験をしたことがある人は多いはず。プログラミングの世界では、これを「ラバーダック・デバッグ」と呼びます。
「ラバーダック・デバッグ」という言葉は、1999年に出版された大学向けの教科書「The Pragmatic Programmer: From Journeyman to Master」が初出だといわれています。この教科書はプログラミングとソフトウェアエンジニアリングに関して書かれた本ですが、体系的な理論を提示するよりも実践的な開発プロセスについてまとめられており、「茹でガエルの法則」や「石のスープ」など、例え話や民話を用いて開発方法論を説いています。ラバーダック・デバッグもこの本で紹介されました。
ラバーダック・デバッグの要点は、コードがなぜ動作しないのか分からない時、机の上に置いたゴム製のアヒル人形に向かって、コードが何をするのかを声に出して説明することです。すると、アヒル人形に話しかけているうちに、自分がやろうとしていることと実際にやったことに相違があると気付きます。
by Tom Morris
ヴァロイ氏は、「私たちの多くは、初めて本を読む時、声に出して考え、読み進めながら進んでいきます。声に出して表現することには、脳がこれまで認識できなかった問題を『聞く』のに役立つ、啓発的な力があります」と述べています。
他の人に説明するということは、強制的に「内容を概念的な部分に分解し、それを既存の知識と統合し、論理的に整理する」必要があります。2013年にアメリカで発表された研究によれば、他の人に教えるつもりで学習し、その後実際にそれを他の人に教えると、「内容に対する理解がより深く、より持続的になる」ことがわかりました。また、この研究では、自分で自分に説明することも戦略的に有効であると示されています。
そうであれば、わざわざアヒルの人形にしなくても誰かに話せばいいようなものですが、なぜアヒルの人形が使われるのでしょうか。ヴァロイ氏は「人間と話すことには、ある程度の限界があります」と述べています。
人間は文脈に依存し、過去の思考や経験に基づいて行動します。そのため、過去に問題解決を試みた際に何らかの仮定をしてしまい、間違いを見逃してしまう可能性があります。また、先入観によって、どこで間違えたのかを見極めるのが難しい場合もあります。
しかし、アヒルの人形にはそんなものはありません、とヴァロイ氏。アヒルの人形はただ無表情で可愛い顔をこちらに向けて見つめるだけで、自分は物事を細かく正確に説明するだけです。
もちろんアヒルは一例で、美少女フィギュアだったりサボテンだったりでも問題ありません。何も話さない物体に話しかけることに抵抗がある場合は、アヒルの代わりにChatGPTのような大規模言語モデルを使うことを提唱する研究者もいます。ChatGPTは人間ではありませんが、コードを1行ずつ説明していけばエラーを見つけ出し、修正案を提案してくれることもあります。対象に反応があると話しかけやすいことは示されており、実際に東京農工大学の研究者が2024年に発表した論文によれば、アヒルの人形に「ボタンを押すとうなずいたり短く中立的な返答をしたりする」というインタラクティブな機能を搭載したところ、人はアヒルの人形に話しかけることに抵抗を感じにくくなる傾向があることがわかっています。
ヴァロイ氏は「次に仕事で行き詰まったり、文章が書けなくなったり、複雑なメールのやり取りを理解しようとしたりしたときは、小さな黄色いアヒルに頼ってみてください。声に出して問題を説明することで、答えにたどり着けるかどうかを試してみましょう」と述べました。
この記事のタイトルとURLをコピーする
元の記事を確認する