エンジニアがホワイトボードにお絵描きする理由
お絵描きしてますか?
たとえば言葉での説明
ここに架空のシステムがあるとする。
あなたはその仕様について、説明を受ける。
「このシステムの仕様ですが、対象を受け取った時には、中で三つに分かれて、いったん一つにまとまって、また三つに分かれるイメージです。受け取り側は発信側の情報をそのまま使うだけなので、オブジェクトにはまとまった情報が記録されます。なのでそれぞれのオブジェクトに全く同じ情報が入るのですが、オブジェクトに記録された値をキーにして判別はできるという状態です」
分からない。
そんなときは絵を描いてみる。
ホワイトボードや紙を片手に、相手に「これで合ってますか?」と確認しながら、話を進めてみる。
絵を描いて、それを相手にも見せた上で合意が取れれば、おそらく正しく理解できているはず。
なぜ分からないのか
知識の前提条件や、理解のレベルが違うと、コミュニケーションの死角が生じる。
だが、そもそもどの部分に「コミュニケーションの死角」があるのかさえ分からないような状態。
他にも、様々な条件により、自分の頭の中に「理解」を組み立てることが難しい場合がある。
そんな時に絵を描いてみる。
特に他のセクションなど、まったく前提知識が違う人と話す時は、コミュニケーションのギャップは生じやすい。
同じ話をしながら、片方はメロンを思い浮かべているのに、片方はオレンジを思い浮かべているかもしれない。
これを絵に描けば、お互いが同じ図を描きやすいし、理解を共有しやすい。
「これはメロンで合ってますか?」と聞くことが出来る。
お絵かきのメリット
- 分かりづらいことが分かりやすくなる。(これに尽きる)
- 「分かったつもり」を防ぐことが出来る。
- 「分かったことにしておこう」を防ぐことが出来る。
- 「理解した図面」を形に残すことが出来る。
お絵かきのメリット
- プロジェクトや技術面に対する「理解」を可視化出来る。
- 各メンバーの技術面や、プロジェクト歴のギャップを埋めやすくなる。
- メンバーや他セクションとの、コミュニケーション手段になる。
そもそもの話
僕らがおこなうコミュニケーションの99%は「文字」「言葉」によるもので、
絵や図を描いてのコミュニケーションというのは、あまり根付いてないように思う。
お絵描きしない理由
- そもそも絵を描く習慣がない
- すぐに絵を描ける環境がない
- お絵かきのメリットを肌で感じていない
お絵描きしないのは損してる
そもそも抽象的な理解が要求されるエンジニアという職業において、
文字情報だけで「立体的な理解」をするというのは、けっこうハードルが高いと思う。
なので「お絵かき」を補助ツールとして使うメリットはかなり大きいと思う。
弱点を武器に
世の中には、物事を考える時に「まず頭で絵を組み立てる」というタイプの人がいる。
個人的に、僕の場合はこの「立体的な理解」が弱いというような気がしている。
なので、お絵かきの習慣はかなり役立っている。
「絵を描く能力」にも、個人差があるはず。
ドメイン駆動開発 ≒ お絵かき
「ドメイン駆動開発」という分厚い本もあるけど、
この本の本質的メッセージは、要するに「絵を描こうぜ!」ということじゃないか。
と、僕は勝手に思っている。
言葉 VS 絵
普段僕らは、言葉を通して、立体的な理解を頭の中に組み立てている。
言葉は「立体的な理解をするため」の道具だ。
でもそれなら、そもそも絵を描くことで、理解を促進しても良いはずだ。
特に「言葉+絵」のタッグには強力な効果がある。
(絵だけでは全てを説明できないので、言葉も使い続ける必要がある)
たとえばプロジェクトに新メンバーを迎えた時
プロジェクト歴が長いメンバー同士は、話だけで「適切な絵」を頭に描けているかもしれないが、
新メンバーがいきなりそれを理解するのは至難の業だ。
「いずれ分かるようになる」
「自分で理解に努るのが良い」
という考え方もあるかもしれないけれど、個人の裁量に任せるのは、再現性が低いと思う。
たとえ古参メンバーが「話」だけでプロジェクトのことを伝えようとしても、
新メンバーには「うっすら」とした絵しか描けていないかもしれない。
だが具体的に「絵」を描いて説明することで、
より相手に「適切な理解図」を提供できるかもしれない。
これは理解のアップロード・ダウンロードだと言える。
やってみた
朝会・夕会(大きなホワイトボードの前で、立ちながらおこなう、短時間のミーティング)の後に、有志でお絵かきタイムを作ってみた。
ホワイトボードの表はアジャイル開発のカンバンなので、裏をフリーキャンバスとして使っている。
なぜこのタイミングかというと、皆が「今日やるストーリー」を話したすぐ後なので、
疑問に思ったことを連想したり、話をつなげたりしやすいから。
テーマに一番詳しい人が説明することになると思うけど、何か気付いたことがあれば、他の人も絵に加筆していっても楽しいと思う。
絵に描きたい事柄があれば、ホワイトボードの端にメモしておくと、忘れにくい。
こうやって描いた絵は、写真を撮ってすぐにWikiなどにアップして、文章も添えておくと、内容を忘れにくくなると思う。
(Wiki化は多少のコストがかかるけど、写真を撮るぐらいならタダだ)
ところでここでは「古参メンバー」「新メンバー」という比較で話したが、
メンバーそれぞれでプロジェクトの理解度、理解範囲には、常にギャップがあるのが普通だ。
プロジェクトの状態も日に日に移り変わっていくし。
なので古参メンバー、新参メンバーというくくりにとらわれずに、
「理解が必要なことを、絵に描く時間」という風に、汎用的にとらえた方が良いかもしれない。
その他の役立つ場面
レビュー
特に、サブクエリが複雑に入り組んだSQLをレビューする時に役立っている。
お絵かきをデフォルト化
個人的な意識としては、
「話で伝わりにくいことは、お絵かきする」というのではなくて、
「お絵かきする必要のないことは、話だけで済ませる」という感じ。
「お絵かきをデフォルト化」するぐらいの勢いがちょうど良いんじゃないかと思っている。
(そもそも絵を描くケースが少なすぎるので)
ツール
でっかいホワイトボード
みんなにシェアする時に。
ちっちゃいホワイトボード
1-2人にシェアする時に。
撮影した画像を見やすくしてくれるアプリ
Office Lens というアプリ。
ホワイトボードに描いた絵の記録に。
お絵かきアプリ
iPad + memopad というアプリがオススメ。(本記事の絵もこのアプリで描いた)
その他のツール
絵が描けて、使いやすいものならなんでも。
(もしお好みならパピルスや石版を使っても良い)
あったらいいな、こんなオフィス。
円卓とお絵かきテーブル
普段は皆、円の外側を向いて仕事をしているが、
思いついたらすぐ、中央のテーブルでお絵描きしながら話ができる。
そこらじゅうがキャンバス
ある人はPCに向かって仕事をし、ある人は寝転がってお絵描きしたりしている。
チャットメンバー募集
何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。
公開日時
2017-08-22
Discussion