冗談のように聞こえるけど効果的なデバッグ手法「ラバーダッグ・デバッグ」

コンピューターなどでプログラミングを行う際にはバグ(想定どおりに動かない)はつきものです。このバグを自分自身で解決するための手法(デバッグ)として、ゴムでできたアヒルの人形に話しかける事で解決するという、冗談のように聞こえるけど、とても有効な方法があります。

この手法はプログラムのデバッグだけでなく、応用すれば自分自身のタスク管理にも役立てることができます。まずはラバーダック・デバッグの方法を簡単にご紹介します。

「ラバーダッグ・デバッグ」の手順

参考: Rubber Duck Debugging – Rubber Duck Debugging – Debugging software with a rubber ducky

ラバーダッグ・デバッグの様子(Wikipediaより)
  1. 机の上に置いたアヒルの人形に向かって、プログラムコードを確認する事を伝える
  2. アヒルの人形にプログラムコードが、どの様に動作するものなのか、1行ずつ説明する
  3. 説明しているうちに、プログラムコードのミス(バグ)が見つかる

自分がアヒルに言葉で説明している事と、実際のプログラムコードの内容の違いに気づく

コンピューターのプログラムのデバッグの方法はデジタル、アナログ問わず様々ありますが、ラバーダックデバッグの良さは、何よりもその手軽さに対しての効果の高さがあります。

複雑なプログラムコードを書き続けていると時折、実現させたい機能に対して適切なコードが書かれていなかったり、矛盾した記述、とても回りくどい処理の仕方をしていたりと、どんどんおかしなプログラムになる可能性が高くなります。優れたプログラマーであっても当たり前に起こる事のようです。
これはプログラムのコード作りだけではなく自分自身タスクリストや行動管理の見直しを行う上でも、有効な手法です。

アヒルの人形に向かって語りかけることを通じて自分が書こうとしているプログラムコードのミスに気づいたり、より良い作り方が閃くことにも繋がるのです。
私たちが、やらなければいけない事、やりたいことを細分化したり、最適化する事には困難がつきまといます。
随分と後になってからリストを見直すと矛盾や無理の多いリストであることに気づくことは少なくありません。

これは、タスクリストにバグがあると言えることでしょう。こうした状況をスマートに効果的に解決する方法として一見冗談のように見えるラバーダック・デバックの方法を用いることによって解決を図ることができます。

「ラバーダッグ・デバッグ」を行動管理にも役立てる方法

では、実際にラバーダックデバッグをプログラムコードではなく自分自身の行動のタスクリスト作りやメンテナンスに役立てる方法を紹介します。

1.アヒルの人形に向かって今日これからやる事を伝える

サトウ(仮)
おはよう!アヒルちゃん!これから今週の僕のタスクについて説明するね!

アヒルの人形に、自分のタスクリストの項目が具体的に何をするものなのか、1項目ずつ説明する

サトウ(仮)
まず「ジョギング」の項目は近くの川沿いを2km走って帰ってくる事を目標にする物なんだけど、走り始めても気分が乗らないときは、直ぐに帰ってきても良い事にしてるんだよ。なにはともあれ、一度家を出て走り始める事が大事だと思ってるんだ。

説明をしているうちに、タスクリストの問題点に気づく

サトウ(仮)
あれ?この「企画書を書く」のタスクの中には「資料の調査」や「○○さんへの連絡」等、結構大変なサブタスクが沢山あるな。これはもっと分割した方が取り組み易いだろうなー。
サトウ(仮)
……色々アヒルちゃんに自分のやることを説明したけど、これ、明らかに多すぎるなぁ。色々やりたいことはあるけど、優先順位付けた方が良さそうかな。

「物」に語りかける事は人間の根源的な特性を活かしている?

声に出して物に語りかけることによる効果はシンプルながらも大きいです。よく人に対して語ることで自分自身の作ろうとしているものの問題に気がついたり、フィードバックを得られたりすることでいい気づきが得られるとは言いますが、無機物に語りかけることでもとても大きな効果を得ることができます。

よくよく考えてみればラバーダックデバッグは人間が自然に行っている根源的な良い方法に従っている手法なのかもしれません。

ぬいぐるみに話しかける子供、神像に祈る宗教

ラバーダッグ・デバックの方法は、実は人間が本来持っている根源的な仕組みに基づいた方法なのかもしれません。

小さな子供の多くは(大人になっても?)、ぬいぐるみに話しかけたり人形遊びを通して自分の世界を広げたり楽しんだりします。この遊びによって豊かな心が育まれると言われていますし、単純に子供にとってとても楽しいものであることに疑いはありません。

また、宗教によっては、神様の絵や像に向かって祈ったり語りかけることを大切にします。宗教は、生活全体のフレームワークとしての役割があるとも言われています。そういった宗教を大切にしている人にとって、その神様に向かって祈ったり語りかけることによって、心の調子を整えたり、良い考えを得たりすることに効果があるようです。

このように人形に語りかけることは、人間の根源的な仕組みに根ざした調整法、問題解決法につながる方法なのかもしれません。

ToDoリストや手帳に向かっても上手くいかない時に

ラバーダックデバッグを行うにあたり、可愛いアヒルの人形に話しかけるからこそ生まれる成果もあるかもしれませんがみんなの机の上にいつでもあるものではありません。

手軽な方法として、スマートフォンに好きなキャラクターの画像を表示させてそこに語りかけるようなところから始めてみてはいかがでしょうか?

ラバーダッグ・デバックの限界「語りかけてくれない」事

何でも聞いてくれるアヒルちゃんの弱点は語りかけてくれない事なんです……

このように行うことによってとても有効な効果が期待できるラバーダックデバッグですが弱点と言うか限界もあります。
それはアヒルの方からは語りかけてくれないことです。行うことによってとても大きな成果が期待できるものでありますが、どうしても人はそれを行うためのちょっとしたモチベーションが沸かなかったり、やろうと思いつつ、ついつい後回しになりがちです。

やれば大きな効果があるとわかっていてもなかなかできないことがあるとても優秀なアヒルちゃんですがあなたに対して、語りかけてはくれません。
とても有効な問題解決法だけど最初の一歩を踏み出すためにそれなりの力が要求されることがあるのは、この手法の限界と言えるでしょう。

タスク管理パートナーは「語りかけます」

このことを解決するのがタスク管理パートナーです。
タスク管理パートナーではほぼ毎日メッセージや通話を通してあなたに現在の状況を語って頂くようにご連絡差し上げます。

人形や機械ではない、人間からの連絡となるので、強い動機付けの効果が期待できます。
ラバーダックデバッグは間違いなく素晴らしい手法ですが、この習慣をうまく続けることに難しさを感じた時などにタスク管理パートナーのご利用を検討いただければと思います。