Slide 1

Slide 1 text

エ ン ジ ニ ア は BABY JOB株式会社 加納悠史 伝 え 方 9 割

Slide 2

Slide 2 text

Question

Slide 3

Slide 3 text

なぜ エンジニアに 伝える力 が必要か? Question

Slide 4

Slide 4 text

Answer

Slide 5

Slide 5 text

エンジニアは チームで動くから Answer

Slide 6

Slide 6 text

現在のエンジニアは チーム戦 6 サービスはチームでつくる ▰ 誰か一人の 天才的能力 で成功はしない ▰ チームで成功まで到達する必要がある  ➡ チーム内での 情報の伝達 が必須

Slide 7

Slide 7 text

情報の伝達はボトルネック 7 Aさん Bさん 機能Aの実装お願い 実装イメージは...

Slide 8

Slide 8 text

伝える必要がないなら困らない 8 Aさん ● 起こっている事象はこんな感じ ● バグの原因はこのへん ● 言葉にしづらいけどこうすれば直せる ● 直したときの影響はあそことあそこ... しかし、現実はそうでない

Slide 9

Slide 9 text

情報の伝達はボトルネック システム間連携と置き換える 9 システムA システムB API

Slide 10

Slide 10 text

情報の伝達はボトルネック システム間連携と置き換える 10 システムA システムB API 処理時間かかる 情報送信は時間がかかる

Slide 11

Slide 11 text

情報の伝達はボトルネック システム間連携と置き換える 11 システムA システムB JSONでのデータ連携です JSONだったら カンタン!

Slide 12

Slide 12 text

情報の伝達はボトルネック システム間連携と置き換える 12 システムA システムB CSVでのデータ連携です カンマ区切りね OK!OK! 読み込めるよ 取り込みやすい = 低コスト!

Slide 13

Slide 13 text

情報の伝達はボトルネック システム間連携と置き換える 13 システムA システムB CSVでのデータ連携です !

Slide 14

Slide 14 text

情報の伝達はボトルネック システム間連携と置き換える 14 システムA システムB CSVでのデータ連携です 〇〇県の新生児に関するデータ CSV 公開日:2024/09/01 ※このデータは令和 5年3月までに届出があった新生児の .... 新生児ID 項目名 値 1 氏名 鈴木太郎 生年月 2023/07 住所 “大阪府,大阪市,北区” 2 氏名 佐藤次郎 生年月 2023/08 ???

Slide 15

Slide 15 text

情報の伝達はボトルネック 人と人でも一緒 15 Aさん Bさん バグ原因の調査しました !

Slide 16

Slide 16 text

情報の伝達はボトルネック 人と人でも一緒 16 Aさん Bさん バグ原因の調査しました ! バグ報告書 SelectItemsクラス内の、180行目にあるルー プにて、変数selectedが最初のループ処理時 にアイテムの情報が代入された後、次のルー プ処理にてアイテムの種別が「道具」だった場 合、上書きされずに前ループの値が残ってしま うため、次かその次のループにてアイテムの種 別が「道具」でなくなった時に、上書きされな かった値がそのまま利用されてしまうため、操 作方法によっては選んでいないはずのアイテ ムが使用されてしまいます。 ???

Slide 17

Slide 17 text

チームになると さらに重要に 17

Slide 18

Slide 18 text

チームの強さは メンバの伝える力に かかっている

Slide 19

Slide 19 text

伝える力を 鍛えよ

Slide 20

Slide 20 text

このトークの目的 伝わる “伝え方” の考え方を解説 仕事 の "ボトルネック " を 改善する方法を学ぶ

Slide 21

Slide 21 text

加納 悠史 PHPでの開発 / 設計 / オフショア 
 @YKanoh65 
 経 歴
 その他
 PHPer ダイビング 観葉植物 
 PHPカンファレンス関西2024実行委員長
 カノウユウジ   Twitter
 BABY JOB株式会社 
 所 属


Slide 22

Slide 22 text

入社エントリー書きました 22 BABY JOB note

Slide 23

Slide 23 text

23 説明の大原則 知識のベースライン 伝えることをサボる

Slide 24

Slide 24 text

24

Slide 25

Slide 25 text

25 抽 象 具 体

Slide 26

Slide 26 text

抽象情報 ➡ 具体情報 相手に「話の全体像」を理解させる ▰ 結末を予想しながら話を聞ける ▰ 後の説明が理解しやすくなる 26 ? 結論 ? ? ハラハラ ドキドキは いらない 全体(抽象)の説明 詳細(具体)の説明

Slide 27

Slide 27 text

抽象情報 ➡ 具体情報 27 補 強 補 強 補 強 補 強 結論 相手に「話の全体像」を理解させる ▰ 結末を予想しながら話を聞ける ▰ 後の説明が理解しやすくなる 全体(抽象)の説明 詳細(具体)の説明 具体 具体 具体 具体 具体

Slide 28

Slide 28 text

抽象情報 ➡ 具体情報 28 結論 相手に「話の全体像」を理解させる ▰ 結末を予想しながら話を聞ける ▰ 後の説明が理解しやすくなる 全体(抽象)の説明 詳細(具体)の説明 具体 具体 具体 具体 具体 右に行ったり 左に行ったり

Slide 29

Slide 29 text

具体から話して全体がわからなくなる例 この前調査依頼したライブラリ、 どんな感じ?使えそう?

Slide 30

Slide 30 text

具体から話して全体がわからなくなる例 この前調査依頼したライブラリ、 どんな感じ?使えそう? 要件に合ってます。あれを使えば、 開発工数が1人月削減できそうです

Slide 31

Slide 31 text

具体から話して全体がわからなくなる例 この前調査依頼したライブラリ、 どんな感じ?使えそう? 要件に合ってます。あれを使えば、 開発工数が1人月削減できそうです お、ええやん 納期余裕がないし、使おうやないか

Slide 32

Slide 32 text

具体から話して全体がわからなくなる例 この前調査依頼したライブラリ、 どんな感じ?使えそう? 要件に合ってます。あれを使えば、 開発工数が1人月削減できそうです お、ええやん 納期余裕がないし、使おうやないか しかし、あれを使うには フレームワークの バージョンアップが必要で ...

Slide 33

Slide 33 text

具体から話して全体がわからなくなる例 33 この前調査依頼したライブラリ、 どんな感じ?使えそう? 要件に合ってます。あれを使えば、 開発工数が1人月削減できそうです お、ええやん 納期余裕がないし、使おうやないか しかし、あれを使うには フレームワークの バージョンアップが必要で ... あかんやん。 さすがにフレームワークの バージョンアップなんて やってる余裕あらへんで

Slide 34

Slide 34 text

しかし、テックリードが言うには、 バージョンアップは5日あれば いけそうなんです

Slide 35

Slide 35 text

しかし、テックリードが言うには、 バージョンアップは5日あれば いけそうなんです ほないけるやん。 バージョンアップなんて もっとかかると思ってたわ

Slide 36

Slide 36 text

しかし、テックリードが言うには、 バージョンアップは5日あれば いけそうなんです ほないけるやん。 バージョンアップなんて もっとかかると思ってたわ でも別チームのリーダー曰く、 向こうで作ってる機能が 今のバージョンに依存しているそうで

Slide 37

Slide 37 text

しかし、テックリードが言うには、 バージョンアップは5日あれば いけそうなんです ほないけるやん。 バージョンアップなんて もっとかかると思ってたわ でも別チームのリーダー曰く、 向こうで作ってる機能が 今のバージョンに依存しているそうで ほなあかんやん。 あっちの機能は、目玉機能やで。 優先度が違うのよ。

Slide 38

Slide 38 text

しかし、テックリードが言うには、 バージョンアップは5日あれば いけそうなんです ほないけるやん。 バージョンアップなんて もっとかかると思ってたわ でも別チームのリーダー曰く、 向こうで作ってる機能が 今のバージョンに依存しているそうで ほなあかんやん。 あっちの機能は、目玉機能やで。 優先度が違うのよ。 でも 事業部長 が言うには、 あの機能求めてた顧客が サービス解約したので、 次リリースにはいらないそうです

Slide 39

Slide 39 text

39 しかし、テックリードが言うには、 バージョンアップは5日あれば いけそうなんです ほないけるやん。 バージョンアップなんて もっとかかると思ってたわ でも別チームのリーダー曰く、 向こうで作ってる機能が 今のバージョンに依存しているそうで ほなあかんやん。 あっちの機能は、目玉機能やで。 優先度が違うのよ。 でも 事業部長 が言うには、 あの機能求めてた顧客が サービス解約したので、 次リリースにはいらないそうです ほなもうええやん。どうなっとるねん

Slide 40

Slide 40 text

具体から話すと 伝わらない ▰ 細かい事情から話さない ▰ 話の全体像先に提示する ▰ 「全体的には〇〇です」 ▰ 「細かくは△△や××です」 結論 具体 具体 具体 具体 具体 補 強 補 強 補 強 補 強 結論 具体 具体 具体 具体 具体

Slide 41

Slide 41 text

抽象➡具体 「結論から話せ」 話の全体像を掴んでもらうためのFW ▰ 結論って どこからどこまで? ▰ "全体像" を理解してもらうことが大事 41 このバグの原因は 変数の初期化漏れです 原因箇所はSelectItem クラスの180行目です 以下の条件で、 初期化ができてません

Slide 42

Slide 42 text

“抽象➡具体” の例 この前調査依頼したライブラリ、 どんな感じ?使えそう? いくつか問題はありますが、 利用できそうです。 要件にはあっていますし、 1人月の工数が削減できます。 おお、ええやん。 問題ってなにがあるの? 2点あります。 フレームワークのバージョンアップが必 要になります。5人日ほど必要です あと、別チームで開発中の機能が フレームワークのバージョンに 依存しているそうです。 ただ、この機能はリリース時期の 調整ができるそうです

Slide 43

Slide 43 text

43 知識のベースライン 伝えることをサボる 説明の大原則

Slide 44

Slide 44 text

知識のベースラインを揃える 同じ情報を持った状態で説明する 44

Slide 45

Slide 45 text

なぜベースラインを揃えるのか? どうせ すべて は伝わらないから ▰ 伝えるためには "言語化" が必要 ▰ 言語化すると情報落ちが発生する 45

Slide 46

Slide 46 text

情報落ち 46 Aさん Bさん

Slide 47

Slide 47 text

情報落ち 47 Aさん Bさん 伝えたい 事象

Slide 48

Slide 48 text

情報落ち 48 Aさん Bさん 伝えたい 事象 日本語 言語化

Slide 49

Slide 49 text

情報落ち 49 Aさん Bさん 伝えたい 事象 日本語 言語化

Slide 50

Slide 50 text

情報落ち 50 Aさん Bさん 伝えたい 事象 日本語 言語化 言語化した時に 情報落ち している 非可逆 かつ 完璧でない

Slide 51

Slide 51 text

日 本 語 ピンと来ていない人へ 補足説明 51 Aさん Bさん 伝えたい 事象 英語 言語化 非可逆 どころか 怪しい

Slide 52

Slide 52 text

じゃあどうする?

Slide 53

Slide 53 text

相手に 悟ってもらおう

Slide 54

Slide 54 text

ベースラインを揃える ▰ 認識を一致させる ▰ 同じ感想をもってもらえる状態にする → 情報落ちした部分を類推してもらう 54

Slide 55

Slide 55 text

ベースラインを揃える手段 ▰ 背景情報を伝える ▰ こういう状態で判断が必要なんです ▰ 目的を伝える ▰ こういうことをやりたいんです 55

Slide 56

Slide 56 text

背景情報を伝えないと... ありがとう! うーん... 機能B を先に着手するみたいやけど 機能A のほうが重要機能だから 先にやってくれる?? チームのスケジュールを作ったので レビューお願いします! いえ、機能B は規模が大きいのと、 実装に不安なところが多いので 先にやってしまいたのですが ...

Slide 57

Slide 57 text

背景情報を伝えると ありがとう!理解した! チームのスケジュールを作ったので レビューお願いします! 重要度は 機能A の方が高いですが 機能B は実装の不確定要素があるので 機能B を先に着手します やりとりを 1回減らせた

Slide 58

Slide 58 text

58 伝えることをサボる 知識のベースライン 説明の大原則

Slide 59

Slide 59 text

伝え方は色々ある ▰ 口頭説明 ▰ ドキュメント化 ▰ 表 ▰ 箇条書き ▰ 図説 59 説明対象によって どれがいいかは変わる

Slide 60

Slide 60 text

言語化時の情報落ち 60 Aさん Bさん 伝えたい 事象 日本語 言語化 必ずしも”言語化”しなくてもよい

Slide 61

Slide 61 text

61 この図を日本語だけで伝えてみる

Slide 62

Slide 62 text

62 ● 情報を他者に伝える時は「言語化」にとる「情報落ち」が発生します ● AさんがBさんに何かを伝えるとします ● この時のプロセスは以下の通りです ○ Aさんが「伝えたいこと」を思い浮かべます ○ Aさんは「伝えたいこと」を日本語に「言語化」します ○ Aさんは「言語化」された情報を、Bさんに伝えます ● 言語化された日本語に、Aさんの伝えたいことが100%含まれているとは限りません ● 言語化した時点で、伝えたいことのいくつかは漏れてしまっています

Slide 63

Slide 63 text

63 ● 情報を他者に伝える時は「言語化」にとる「情報落ち」が発生します ● AさんがBさんに何かを伝えるとします ● この時のプロセスは以下の通りです ○ Aさんが「伝えたいこと」を思い浮かべます ○ Aさんは「伝えたいこと」を日本語に「言語化」します ○ Aさんは「言語化」された情報を、Bさんに伝えます ● 言語化された日本語に、Aさんの伝えたいことが100%含まれているとは限りません ● 言語化した時点で、伝えたいことのいくつかは漏れてしまっています これ見せて喋ったほうが早い

Slide 64

Slide 64 text

ドキュメントにして 説明回数を省く 3人に3回説明 64 ドキュメントを 1回作成

Slide 65

Slide 65 text

ドキュメントにして 説明回数を省く 3人に3回説明 65 ドキュメントを 1回作成 ドキュメント

Slide 66

Slide 66 text

でもドキュメントが難解だと 意味がない ▰ 結局口頭説明が必要では意味がない ▰ わかりやすいドキュメントを書く能力も必要 66

Slide 67

Slide 67 text

報告書のテンプレート化 テンプレートにすることで ▰ どこになにがあるかわかりやすい ▰ 過不足なく情報が記載される ▰ 作り手の力量に依存しない ➡ ドキュメント作成の難易度を下げられる 67

Slide 68

Slide 68 text

PHP の RFC テンプレート 68

Slide 69

Slide 69 text

PHP の RFC テンプレート ▰ まえがきで"抽象情報"を記載 ▰ そのあと詳しい説明 69

Slide 70

Slide 70 text

PHP の RFC テンプレート ▰ まえがきで"抽象情報"を記載 ▰ そのあと詳しい説明 70 https:/ /speakerdeck.com/ykanoh/how-to-read-php-rfc

Slide 71

Slide 71 text

ドキュメントを作る暇がない 71

Slide 72

Slide 72 text

ドキュメントを作る暇がない 72 ドキュメントを作らないから 時間がないんだよ ▰ 木こりと斧の話を知らんのか

Slide 73

Slide 73 text

ドキュメントを作る暇がない 考え整理と同時にアウトプット ▰ 作業の履歴をドキュメントにする ▰ 考えを整理しながらドキュメントにする ▰ このとき「他人に見てもらうこと」を意識する ▰ Slack や 口頭 のみでの共有 ダメ、ゼッタイ 73

Slide 74

Slide 74 text

74 説明の大原則 知識のベースライン 伝えることをサボる まとめ

Slide 75

Slide 75 text

自分が “伝えられる側” だったら? ▰ この説明で理解できるか? ▰ 事前情報がないと結論が変わるかも? ▰ 言葉で伝わる?どんな図が欲しい? 75 試されるのは『共感力』