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
エンジニアが入社後のギャップを 克服し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