ラバーダッキングとは?アヒルに話して問題を解決する思考整理術

  • このエントリーをはてなブックマークに追加

仕事中に問題が起きたとき、一人で考えても答えが見つからなかったのに、誰かに説明している途中で「あ、原因がわかった」と気づいた経験はないでしょうか。

このように、問題を言葉にして思考を整理する方法を「ラバーダッキング」といいます。

もともとは、プログラマーがコードのバグを見つけるために使う問題解決手法として知られています。しかし、ラバーダッキングが役立つのはプログラミングだけではありません。
仕事の進め方に悩んだときや、企画の問題点を整理したいときなど、さまざまな場面で活用できます。

ラバーダッキングとは?

ラバーダッキングとは、目の前の相手に問題を説明することで、頭の中を整理し、解決の糸口を見つける方法です。

アヒルに問題を説明して思考を整理する方法

「ラバーダック」とは、ゴム(ラバー)で作られたアヒル(ダック)のおもちゃのことです。

ラバーダッキングでは、机の上などにラバーダックを置き、発生している問題やコードの処理について順番に説明します。アヒルが質問や回答をしてくれるわけではありません。相手に伝わるように説明する過程で、自分の考えを整理することが目的です。

プログラマーがデバッグに使うことから、「ラバーダック・デバッグ」や「ラバーダックデバッグ」とも呼ばれています。

例えば、プログラムが想定どおりに動かないとき、頭の中だけで原因を考えていると、同じ場所を何度も確認してしまうことがあります。

そこで、次のように声に出して説明します。

「このボタンを押すと入力内容が送信されるはずです。
しかし、次の画面へ移動しません。
ここまでは正常に処理されていますが、特定の条件のみ実行されていないようです」

このように状況を言語化すると、「その条件だけ処理から漏れているのではないか」など、それまで見落としていた問題点に気づきやすくなります。

なぜ話すだけで問題を解決しやすくなる?

ラバーダッキングの効果は、問題を外から眺めるように整理できることにあります。

頭の中にある情報を整理できる

問題について頭の中だけで考えていると、事実や推測、思い込みなどが混ざってしまうことがあります。

例えば、「システムが動かない」と考えるだけでは、どこに問題があるのかはわかりません。しかし、誰かに説明しようとすると、自然に情報を分ける必要が生じます。

  • 何をしようとして
  • どこまでは正常に動いて
  • どの操作で問題が発生したのか
  • 毎回発生なのか、特定の条件なのか

このように分解すると、漠然としていた悩みが具体的な課題に変わります。原因を探す範囲も絞りやすくなり、問題解決へ進みやすくなるのです。

自分の理解が足りない部分に気づける

説明しようとして言葉に詰まる場所は、自分でも十分に理解できていない可能性があります。

コードについて説明する場合も、「この処理は何をしているのか」「なぜこの条件が必要なのか」と順番に確認すると、理解が曖昧な部分が見えてきます。

これはプログラミング以外でも同じです。仕事の目的や作業の流れをうまく説明できない場合は、前提条件や必要な情報が不足しているのかもしれません。

ラバーダッキングは、自分がどこまで理解しているのかを確認する方法でもあります。

問題とゴールの違いが明確になる

問題を解決するには、「現在どうなっているか」だけでなく、「本来どうなればよいか」を明確にする必要があります。

例えば、「登録後のメールが送られない」という問題があったとします。
しかし、メールの目的が「登録が完了したことを知らせる」なら、考えるべきゴールは「メールを送ること」ではなく「ユーザー登録を完了できること」です。

目的までさかのぼって考えれば、別のメール送信サービスを使う、別の通知方法に変えるといった解決策も検討できます。

ラバーダッキングで問題とゴールを分けて説明すると、目の前の方法にとらわれず、別の選択肢を見つけやすくなります。

ラバーダッキングの実践方法

ラバーダッキングに難しい準備は必要ありません。問題が起きたら、次の手順で説明してみましょう。

1.起きている問題を説明する

まずは、現在起きていることを事実に沿って説明します。

「動かない」「うまくいかない」だけではなく、何をしたときに、どのような結果になったのかを具体的にします。

エンジニアの場合は、使用している言語や環境、表示されたエラー、問題が発生する条件なども整理しましょう。

2.コードや処理を順番に説明する

次に、問題が発生するまでの流れを最初から説明します。

コードを一行ずつ読み上げる必要はありません。「何が入力され、どのような処理を通り、何が出力されるのか」を順番に追っていきます。

ほかの業種であれば、作業を始めてから完了するまでの手順を説明してみましょう。途中で説明できない箇所があれば、そこに確認すべき点が隠れている可能性があります。

3.期待する結果と実際の結果を比べる

続いて、「本来どうなるはずだったのか」と「実際に何が起きたのか」を比べます。

例えば、次のように整理します。

  • 期待する結果:ボタンを押すと情報が保存され、完了画面へ移動する
  • 実際の結果:情報は保存されるが、完了画面へ移動しない

差が明確になると、調べるべき処理を絞り込みやすくなります。そもそもの仕様やゴールが曖昧な場合は、関係者への確認も必要です。

4.気づいたことを試して結果を残す

説明するなかで原因や解決策を思いついたら、一つずつ試します。一度に複数の変更を加えると、どの対応が結果に影響したのかわからなくなるため注意しましょう。

試した内容と結果を記録しておけば、解決しなかった場合も次の調査に活かせます。周囲へ相談するときにも、「何を試して、どうなったか」を伝えやすくなります。

解決できないときは周囲に相談しよう

ラバーダッキングをしても、すべての問題を自己解決できるとは限りません。一定時間考えても進まない場合や、自分だけでは判断できない場合は、同僚や上司、有識者へ相談しましょう。

ラバーダッキングは、問題を一人で解決するための手法ではありません。
問題を整理し、周囲へわかりやすく相談するためにも役立つ方法です。

相談するときは、実現したいこと、発生している問題、確認した内容、試した解決策を伝えると、相手も状況を理解しやすくなります。

ラバーダッキングはチームの問題解決にも役立つ

ラバーダッキングを習慣にすると、個人の問題解決だけでなく、チーム内のコミュニケーションにもよい効果が期待できます。

エンジニアの自己解決力を高められる

エンジニアの仕事では、プログラムのバグから顧客の業務課題まで、さまざまな問題に向き合います。

ラバーダッキングを繰り返すと、問題を細かく分け、原因を考え、解決策を試す習慣が身につきます。すぐに答えを求めるのではなく、自分で調べるために必要な情報も整理しやすくなるでしょう。

質問対応や手戻りを減らしやすくなる

相談内容が整理されていないと、質問を受けた人は状況を把握するところから始めなければなりません。何度も確認が必要になり、回答する側にも質問する側にも負担がかかります。

ラバーダッキングによって問題が整理されていれば、必要な情報を相手へ伝えやすくなります。認識のずれも減り、チームとして早く解決策を考えられるでしょう。

企業がラバーダッキングを取り入れる目的は、社員からの質問を減らすことではありません。一人で考える時間と周囲へ相談するタイミングを使い分け、質の高い問題共有につなげることが大切です。

AIをラバーダック代わりにしてもよい?

生成AIに問題を説明し、思考を整理する方法もあります。

すぐに解決策を聞くのではなく、「問題を整理したいので、不明な点を質問してください」と依頼すれば、見落としている条件や曖昧な部分に気づけることがあります。

ただし、AIの回答が常に正しいとは限りません。提案されたコードや解決策は、そのまま使用せず自分で確認しましょう。
また、社内のコード、顧客情報、ユーザー情報、メールアドレスなど、機密情報を許可なく入力しないようにしましょう。

AIを利用する場合も、自分の言葉で説明し、自分で判断することが重要です。

行き詰まったら、まず問題を言葉にしてみよう

ラバーダッキングは、アヒルなどの物に問題を説明し、頭の中にある情報を整理する問題解決手法です。

もともとはプログラマーのデバッグ方法として知られていますが、問題を言語化し、現在の状態とゴールを比べる考え方は、さまざまな仕事に応用できます。

自己解決できなかった場合も、整理した内容はそのまま周囲への相談に使えます。仕事で行き詰まったときは、一人で考え続ける前に、「何をしようとして、実際には何が起きているのか」を誰かに伝えるつもりで説明してみてはいかがでしょうか。

⇒IT人材にお困りならボンズテックにご相談ください!適切な人材をご紹介します

  • このエントリーをはてなブックマークに追加

SNSでもご購読できます。