エンジニアは伝え方が9割/90% of what engineers need is communication skills
by
Y-KANOH
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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 試されるのは『共感力』