読者です 読者をやめる 読者になる 読者になる

Tbpgr Blog

Ruby プログラマ tbpgr(てぃーびー) のブログ

専門分野の内容を専門外の相手にわかりやすく伝える方法

f:id:tbpg:20160331232225j:plain

専門分野の内容を専門外の相手にわかりやすく伝える、
そんな必要性が増えてきて、自分の説明の下手さを身にしみて感じたため
どのように伝えるべきか整理します。

本題の前に

過去

説明対象を愚直に説明することが多かったです。
たまたま相手がいろんな分野への好奇心が強く、頭の回転が非常に早い人物の場合は
それほど工夫しなくてもあっさり伝わりましたが全ての相手がそうとは限りません。
図解や、具体例の提示などは状況に応じて使っていました。

注意事項

この文章はあくまで

専門外の人間への説明があまりうまくない人間が、
説明する力を向上させるためにまとめたもの

であり、説明の達人がまとめたノウハウのようなものではありません。

わかりやすい説明

準備

わかりやすい説明は説明を受ける側によって異なります。
相手に合わせた説明をするためには、まず相手を知る必要があります。
可能な場合は事前にその特徴を把握しておきます。

  • 相手を知る
    • 該当領域の予備知識
    • 頭の回転(察する力)
    • 興味分野
    • 分かったふりをするタイプか?

事前の把握が不可能な場合は、実際に会話をしながら探っていくことになります。

今回は記事のテーマとして「説明者側の専門分野のことを知らない人」を対象としています。

導入

  • 会話の目的を最初に伝える
  • 興味のありそうな内容で興味を引く
  • 身近な例で例える

相手のことを詳しく知らない場合はピンポイントで興味分野を狙い撃ちするのは
難しいでしょうから、誰でもよく知っているような一般的な例にするのがよさそうです。
相手が不特定多数の場合も同様でしょう。

説明手法

  • 全体像から話す
  • 説明内容を絞る
  • 平易な言葉で説明する
    • 専門用語を一般的な表現に置き換える
    • 難しい表現を平易な表現に置き換える
  • 具体的な事例で理解を強化する
  • 相手のスピードに合わせる

禁止事項

  • 曖昧に説明する
    • 代名詞の多用
    • 語尾にやたらと「かもしれない」がつくなど説明内容が事実かどうかはっきりしない
    • 省略
  • 脱線しない
    • 本題と異なる話は別途行う

理解を確認

  • 会話をしながら相手の理解度を判断
    • 表情、しぐさ、相槌
    • 受け答えの内容
  • 本当に理解できているか確認の質問をする
    • プレッシャーを与えないこと
    • 間違ってもOK

実践する

  • 実際にその知識を一緒に実践する

支援ツール

理解を支援するツール

  • 図やイラストを活用する
  • 補足資料を提示する
    • WebのURL
    • 書籍

事例

愚直版とわかりやすい説明の例を作ってみました。
説明対象は git です。

  • git とは?
  • 分散バージョン管理とは?

について説明します。
説明相手は文系出身の新人プログラマー田中君です。
田中君にはシステム開発に必要な基礎知識はほとんどありません。
田中君はドラクエが大好きです。

愚直版の例

  • 説明者:愚直氏
  • 被説明者:田中君
Name Message
愚直氏 git は分散バージョン管理システムです
田中君 はぁ(分散?バージョン管理??。コロッケ食いたい)
愚直氏 分散バージョン管理システムリポジトリを分散して持つことができ、
開発形態や規模に合わせて柔軟に利用することができます。
田中君 はぁ(リポジトリ??開発形態とか規模ってどんな感じなのか全然わからんデスなぁ。満漢全席食いたい)
愚直氏 わかりましたか?
田中君 ( ˘ω˘)スヤァ

わかりやすい説明の例

  • 説明者:平易氏
  • 被説明者:田中君

導入

Name Message
平易氏 てー♪てれれてってってー♪( ドラクエのファンファーレ と共に入場)
田中君 お、ドラクエだ!
平易氏 今日はgitについて説明します。これからの開発で必ず使うのでまずは概要を理解してもらいます。
田中君 はい
平易氏 gitは少し手強いです。エスタークぐらいだと思ってください
田中君 めっちゃ手強い!

バージョン管理

Name Message
平易氏 田中くん、バージョン管理って知ってる?知らない場合は遠慮なく言ってね!
田中君 知らないっす
平易氏 オーケー!これからも分からないことは遠慮なく言ってね
田中君 ありがたいっす
平易氏 では、バージョン管理について。ドラクエでセーブデータがあるよね?
田中君 うんうん
平易氏 セーブデータみたいに「いつ、だれが、何をしたのか」という履歴を記録しておくことで、
以前のデータに簡単に戻せます
田中君 それは便利ですね
平易氏 例えば、カジノで大当たりがでるまで粘って、
大当たりが出なかったらカジノを始める前まで戻って確実に大儲けするとか
田中君 人生でもそれができたら嬉しいです
平易氏 ソフトウェア開発なら、

ある機能を開発してリリースしたんだけどバグが含まれていたので
バグを埋め込んだ機能の前まで差し戻す

とかが簡単にできます。
田中君 それは便利ですね(2回目)
平易氏 バージョン管理についてはおおまかにわかった?
田中君 いえっさー
平易氏 てれれれっ♪てってってー♪( ドラクエのレベルアップ音)。田中はgit使いレベル2になった
田中君 (๑•̀ㅂ•́)و✧

分散バージョン管理

Name Message
平易氏 デレレレデレレレ♪デーン♪デレレレレーン♪レーン♪・・・
田中君 戦闘の曲・・・しかもドラクエ1
平易氏 では次に。分散バージョン管理について
田中君 どきどき
平易氏 バージョン管理システムには集中型と分散型があります。
田中君 うう、難しそう・・・
平易氏 ここでもセーブデータの例を使いましょう。
集中型はスクエニと直接ネットワークが繋がっていないとセーブできないものとします
田中君 不便きわまりないでござる
平易氏 ロンダルキアへの洞窟を抜けた直後にセーブをしたいけどプロバイダが不調でスクエニと接続できない。
しかもそろそろ電源を切らないとママンがマジギレして本体を破壊して社会的にニュースになってしまう、とかね
田中君 泣けます
Name Message
平易氏 分散型はスクエニと接続してなくてもセーブできます。
また、セーブデータを複数持つこともできます。
田中君 それが普通に思えるけど、めっちゃ便利
平易氏 例えばゲーム本体Aとゲーム本体Bとスクエニにセーブデータがあるとします。
田中君 ほうほう
平易氏 ゲーム本体Aでメタルキングをやっつけたセーブデータを保存しました。
田中君 うんうん
平易氏 ゲーム本体Bはカジノで大儲けしました。
田中君 うんうん
平易氏 ゲーム本体Aとゲーム本体Bの双方のセーブデータを合わせて、
メタルキングをやっつけてカジノで大儲けしたデータにして
それをスクエニのセーブデータに反映したりできます
田中君 チートっすね!分散パネェっす
平易氏 スクエニにつながらない時も、ゲーム本体A・ゲーム本体Bにはセーブ可能です。
スクエニにつながるようになったらスクエニにもセーブすればオッケーです
田中君 それが普通に思えるけど、めっちゃ便利(2回目)
平易氏 分散バージョン管理についてはおおまかにわかった?
田中君 いえっさー
平易氏 てれれれれー♪(敵を倒した音)
田中君 よっしゃ倒した
平易氏 てれれれっ♪てってってってれれれっ♪てってってー♪( ドラクエのレベルアップ音 2連発)。
田中はgit使いレベル3になった。
田中はgit使いレベル4になった。
田中君 (๑•̀ㅂ•́)و✧✧✧

※この説明が分かりやすいかどうかは微妙ですが、あくまで例として。