Slide 1

Slide 1 text

エンジニアが入社後のギャップを 克服しProjectをリードするまで 川原 遼馬

Slide 2

Slide 2 text

自己紹介 ● 名前 ○ 川原遼馬 ● 経歴 ○ 大学院で物理の研究 ○ 2020年DeNA新卒入社 ○ (株)DeNAライフサイエンス 「MYCODE」のサーバーサイドエンジニア

Slide 3

Slide 3 text

遺伝子検査サービスMYCODE 唾液でできる遺伝子検査サービス ● 病気リスク ● 体質 ● 祖先の分類

Slide 4

Slide 4 text

このセッションで伝えたいこと 入社後にイメージとのギャップを感じた。 しかしプロジェクトマネジメントの力を伸ばす事で 要件定義〜リリースまでをチームで協力して進行できる エンジニア に近づくことができた

Slide 5

Slide 5 text

入社後のギャップとは

Slide 6

Slide 6 text

入社前のエンジニアのイメージ 仕事の大半はプログラミング

Slide 7

Slide 7 text

入社前のリリースまでのイメージ

Slide 8

Slide 8 text

入社後のリリースまでのイメージ

Slide 9

Slide 9 text

入社前の関係者のイメージ

Slide 10

Slide 10 text

入社後の関係者のイメージ

Slide 11

Slide 11 text

入社後に感じたギャップ ● 要件定義 ● スケジュール管理 これらはプロジェクトマネジメント問題だった

Slide 12

Slide 12 text

具体例:SNSログイン 課題: パスワード+秘密の質問ログイ ンしか使えないため 結果として問い合わせの増加 にもつながっている

Slide 13

Slide 13 text

SNSログインの最終的な構成

Slide 14

Slide 14 text

入社後に感じたギャップ ● 要件定義 ● スケジュール管理 これらはプロジェクトマネジメント問題だった

Slide 15

Slide 15 text

入社後のリリースまでのイメージ

Slide 16

Slide 16 text

ギャップ1:要件定義 x 要件定義をするのはビジネス職の方 o 自分で要件定義する必要があった

Slide 17

Slide 17 text

ギャップ1(要件定義):失敗 ● SNSログインできた方が便利 ● 問合せが減りそう このくらいの要件定義で着手し始めた

Slide 18

Slide 18 text

ギャップ1(要件定義):起きた問題 やることが増えた時に、目的とコストが釣り合わなくなった 追加されたやること ● 既存の実装の改修 ● システム異常時の会員問い合わせ対応の整理 ● 認証方法の切り替え ● IPアドレスロックの拡張 ● SMS認証の追加 ● etc => 2, 3ヶ月はかかりそう。メリットは....?

Slide 19

Slide 19 text

ギャップ1(要件定義):起きた問題 wikiに書いた要件定義

Slide 20

Slide 20 text

ギャップ1(要件定義):解決方法 CS工数削減のコスト計算 CS工数 x 問い合わせ割合 x 削減予想割合 = CS工数削減予想費用 利用メールアドレスの分布 Google, Yahooの割合 ユーザーアンケート SNSログインの利用希望

Slide 21

Slide 21 text

ギャップ1(要件定義):解決方法 トータルでの削減費用 CS工数削減予想費用 - システム追加費用 = 削減費用 定性的メリット ● UXの向上 ● 再訪率向上によるLTV向上 ● LINEログイン導入の際は会員様との新たな接点の創出 曖昧な要件定義を解決

Slide 22

Slide 22 text

ギャップ1(要件定義):解決方法 最終的には50個の実装タスクを作成するのに10個の要件定義を行った => 想定していたよりも多かった

Slide 23

Slide 23 text

ギャップ1(要件定義):まとめ 失敗 話が進むにつれて曖昧な要件に対する実装コストの釣り合いが取れなくなった 解決方法 ● CSの工数削減予想を具体的な数字で計算 ● 数字の根拠を作る ○ データの分析 ○ ユーザーアンケート ● 定性的メリットを整理

Slide 24

Slide 24 text

入社後に感じたギャップ ● 要件定義 ● スケジュール管理

Slide 25

Slide 25 text

入社後のリリースまでのイメージ

Slide 26

Slide 26 text

ギャップ2:スケジュール管理 x 意識になかった。 o プロジェクトの初期段階でリスクと関連して慎重に調査する必要がある

Slide 27

Slide 27 text

ギャップ2:失敗 調査に時間がかかりスケジュールが遅延 調査内容 ● 既存の実装の調査 ● SNSログイン自体の仕様調査 ● ライブラリの選定 ● 追加導入のクラウドサービスのセキュリティ ● 脆弱性診断 ● 改修仕様の検討

Slide 28

Slide 28 text

ギャップ2(スケジュール管理):失敗 パターンが多い + セキュリティレビュー 新規会員登録 / ログインパターン ● パスワード + 秘密の質問 ● パスワード + SMS認証 ● SNSログイン + SMS認証 第一/二認証方法の切り替え ● パスワード ⇄ SNSログイン ● 秘密の質問 ⇄ SMS認証

Slide 29

Slide 29 text

ギャップ2(スケジュール管理):失敗 機能ごとにシーケンス図を作成し セキュリティエンジニアのレビュー

Slide 30

Slide 30 text

なぜ:実装内容を初期段階で認識できていなかった 仕様検討・調査によってスケジュールが大幅に遅延 SMS認証の導入 => 2週間? 分解すると ● SMS送信の到達確率 ● SMSを受信できる条件 ● クラウドサービスの選定 ● SMS送信の攻撃 ● 利用料金の試算 ● etc

Slide 31

Slide 31 text

ギャップ2(スケジュール管理):解決方法 あらかじめリスクを洗い出す ● SNSが乗っ取られたら? ● SNSに障害が発生したら? ● SMS認証の実装が思ってたよりも難しかったら? ● etc...

Slide 32

Slide 32 text

ギャップ2(スケジュール管理):解決方法 必要そうな作業を分解 ● SMS認証の実装が思ってたよりも難しかったら? ○ 会員様が携帯電話をなくしたら? ■ CSフローの構築 ■ パスワードリセット? ○ 届かない時は?

Slide 33

Slide 33 text

ギャップ2(スケジュール管理):解決方法 分解した後に見積もる ● SMS認証の実装が思ってたよりも難しかったら? ○ 会員様が携帯電話をなくしたら? ■ CSフローの構築 => 2週間 ■ パスワードリセット? => 3日 ○ 届かない時は? => 1週間 タスクが細分化され、正確に見積もれるようになっていった

Slide 34

Slide 34 text

ギャップ2(スケジュール管理):まとめ 失敗 実装内容の詳細を認識できずにスケジュールが遅延 対策 ● リスクを洗い出す ○ 分解する ■ 小さい単位で見積もる ● よくわからない場所から調査 ○ 外部の協力者が必要 ○ 仕様を理解できてない ○ など

Slide 35

Slide 35 text

入社後のギャップまとめ ● 要件定義 ● スケジュール管理 全てプログラミング以外の部分

Slide 36

Slide 36 text

入社後のリリースまでのイメージ

Slide 37

Slide 37 text

プロジェクトマネジメントでの失敗 要件定義 曖昧なままスタートして、スコープが増えるにつれてコストが大きくなり、釣り 合いが取れなくなった スケジュール管理 調査や手戻りに時間がかかりスケジュールが大幅に遅延

Slide 38

Slide 38 text

プロジェクトマネジメントについて学ぶ 1on1でメンターに相談 ● アジャイルサムライ(書籍) ○ 自分がつまずいたポイントがすでによく知られている問題だった プロジェクトマネジメントを学べば良いのでは....?

Slide 39

Slide 39 text

解説されていたこと ● 要件定義 ● やることの決め方 ● よく起こる問題 ● 何を優先するか ● など テンプレートとしてまとめたもの => インセプションデッキ

Slide 40

Slide 40 text

インセプションデッキ プロジェクトでドキュメント化するべき項目をまとめたもの 項目 例 目的 簡単なログイン機能を提供 プロジェクト要約 プロジェクトのスコープ Googleログインを実装するが 他はしない プロジェクト体制 AさんとBさんの協力が必要 システム構成 システム構成図などの絵を書く リスク もし起こったら大変なことを考える

Slide 41

Slide 41 text

インセプションデッキを使ってみる 調査に時間がかかりスケジュールが遅延 調査内容 ● 既存の実装の調査 ● SNSログイン自体の仕様調査 ● ライブラリの選定 ● 追加導入のクラウドサービスのセキュリティ ● 脆弱性診断 ● 改修仕様の検討

Slide 42

Slide 42 text

インセプションデッキ スケジュールの見積もりに関係するもの 項目 例 プロジェクトのスコープ Googleログインを実装するが 他はしない プロジェクト体制 AさんとBさんの協力が必要 リスク もし起こったら大変なことを考える

Slide 43

Slide 43 text

プロジェクトのスコープ やること ● SNSログイン ● SMS認証 やらないこと ● 秘密の質問の廃止 ● Twitterログイン あとで決めること ● SNS自体が障害の時どうするか

Slide 44

Slide 44 text

プロジェクトのスコープ やること ● SNSログイン ○ Google ○ 乗っ取り対策 ● SMS認証 ○ クラウドサービスの導入 ○ 攻撃の対策 ○ 携帯使えなくなった時

Slide 45

Slide 45 text

プロジェクト体制 やること ● SNSログイン ○ Google ○ 乗っ取り対策 ● SMS認証 ○ クラウドサービスの導入 ○ 攻撃の対策 ○ 携帯使えなくなった時 関係者 ● セキュリティ部 ● 法務部 ● CS 大変そうな部分に注目する

Slide 46

Slide 46 text

リスク ● セキュリティ対策で時間がかかりそう ● SNSが乗っ取られた場合責任はマイコード? ● 遺伝子情報を扱うサービスがSNSログインって使って良いの? ● ....

Slide 47

Slide 47 text

リスク ● セキュリティ対策で時間がかかりそう ○ 社内の他の事業部が何をしているのか聞きにいこう ● SNSが乗っ取られた場合責任はマイコード? ○ xxxxxx ● 遺伝子情報を扱うサービスがSNSログインって使って良いの? ○ xxxxxx

Slide 48

Slide 48 text

見落としているリスクに気づける 以前は見えていなかった内容(再掲) ● 既存の実装の調査 ● SNSログイン自体の仕様調査 ● ライブラリの選定 ● 追加導入のクラウドサービスのセキュリティ ● 脆弱性診断 ● 改修仕様の検討 プロジェクトマネジメントの手法を使うことで よくある問題を回避できる

Slide 49

Slide 49 text

よくある問題にハマっていた

Slide 50

Slide 50 text

よくある問題を回避できるようになった

Slide 51

Slide 51 text

本セッションのまとめ 入社後のギャップ ● エンジニアが主体的に要件定義する ● プロジェクト自体のスケジュール管理が大切 何によって克服できたか プロジェクトマネジメントの手法を取り入れる

Slide 52

Slide 52 text

得られた学び ● 新しいことを始める時、理想とのギャップは必ずある ● しかしポジティブに捉え直すと成長の機会だった プロジェクトマネジメントの手法を学ぶことで 要件定義 ~ リリースまで関係者を巻き込みながら リードすることができるエンジニアに近づけた。

Slide 53

Slide 53 text

No content