Upgrade to Pro — share decks privately, control downloads, hide ads and more …

エンジニアが入社後のギャップを克服しProjectをリードするまで【DeNA TechCon 2021 Winter】/techcon2021 winter_8

8a84268593355816432ceaf78777d585?s=47 DeNA_Tech
PRO
December 27, 2021

エンジニアが入社後のギャップを克服しProjectをリードするまで【DeNA TechCon 2021 Winter】/techcon2021 winter_8

エンジニアはこなせる実装難易度の高さにより能力が決まり、与えられたタスクを実装するのが仕事で、サービスの改修の立案、法務やセキュリティ関連の整理をするのはビジネス職の仕事である。学生時代、私がイメージしていた「エンジニアとしての働き方」です。

DeNAへ入社後、それまでにイメージしていたこの「エンジニアとしての働き方」に大きなギャップを感じ、そのギャップに悩むことがありました。

本発表では入社後にエンジニアの働き方に対してギャップを感じていた私が、どのようにしてそのギャップを克服し、裁量を持って分析基盤やSNSログインの導入プロジェクトをリードするようになったのかについて発表させていただきます。

8a84268593355816432ceaf78777d585?s=128

DeNA_Tech
PRO

December 27, 2021
Tweet

More Decks by DeNA_Tech

Other Decks in Technology

Transcript

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

  2. 自己紹介 • 名前 ◦ 川原遼馬 • 経歴 ◦ 大学院で物理の研究 ◦

    2020年DeNA新卒入社 ◦ (株)DeNAライフサイエンス 「MYCODE」のサーバーサイドエンジニア
  3. 遺伝子検査サービスMYCODE 唾液でできる遺伝子検査サービス • 病気リスク • 体質 • 祖先の分類

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

  5. 入社後のギャップとは

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

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

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

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

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

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

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

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

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

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

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

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

  18. ギャップ1(要件定義):起きた問題 やることが増えた時に、目的とコストが釣り合わなくなった 追加されたやること • 既存の実装の改修 • システム異常時の会員問い合わせ対応の整理 • 認証方法の切り替え •

    IPアドレスロックの拡張 • SMS認証の追加 • etc => 2, 3ヶ月はかかりそう。メリットは....?
  19. ギャップ1(要件定義):起きた問題 wikiに書いた要件定義

  20. ギャップ1(要件定義):解決方法 CS工数削減のコスト計算 CS工数 x 問い合わせ割合 x 削減予想割合 = CS工数削減予想費用 利用メールアドレスの分布

    Google, Yahooの割合 ユーザーアンケート SNSログインの利用希望
  21. ギャップ1(要件定義):解決方法 トータルでの削減費用 CS工数削減予想費用 - システム追加費用 = 削減費用 定性的メリット • UXの向上

    • 再訪率向上によるLTV向上 • LINEログイン導入の際は会員様との新たな接点の創出 曖昧な要件定義を解決
  22. ギャップ1(要件定義):解決方法 最終的には50個の実装タスクを作成するのに10個の要件定義を行った => 想定していたよりも多かった

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

    ◦ ユーザーアンケート • 定性的メリットを整理
  24. 入社後に感じたギャップ • 要件定義 • スケジュール管理

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

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

  27. ギャップ2:失敗 調査に時間がかかりスケジュールが遅延 調査内容 • 既存の実装の調査 • SNSログイン自体の仕様調査 • ライブラリの選定 •

    追加導入のクラウドサービスのセキュリティ • 脆弱性診断 • 改修仕様の検討
  28. ギャップ2(スケジュール管理):失敗 パターンが多い + セキュリティレビュー 新規会員登録 / ログインパターン • パスワード +

    秘密の質問 • パスワード + SMS認証 • SNSログイン + SMS認証 第一/二認証方法の切り替え • パスワード ⇄ SNSログイン • 秘密の質問 ⇄ SMS認証
  29. ギャップ2(スケジュール管理):失敗 機能ごとにシーケンス図を作成し セキュリティエンジニアのレビュー

  30. なぜ:実装内容を初期段階で認識できていなかった 仕様検討・調査によってスケジュールが大幅に遅延 SMS認証の導入 => 2週間? 分解すると • SMS送信の到達確率 • SMSを受信できる条件

    • クラウドサービスの選定 • SMS送信の攻撃 • 利用料金の試算 • etc
  31. ギャップ2(スケジュール管理):解決方法 あらかじめリスクを洗い出す • SNSが乗っ取られたら? • SNSに障害が発生したら? • SMS認証の実装が思ってたよりも難しかったら? • etc...

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

    ◦ 届かない時は?
  33. ギャップ2(スケジュール管理):解決方法 分解した後に見積もる • SMS認証の実装が思ってたよりも難しかったら? ◦ 会員様が携帯電話をなくしたら? ▪ CSフローの構築 => 2週間

    ▪ パスワードリセット? => 3日 ◦ 届かない時は? => 1週間 タスクが細分化され、正確に見積もれるようになっていった
  34. ギャップ2(スケジュール管理):まとめ 失敗 実装内容の詳細を認識できずにスケジュールが遅延 対策 • リスクを洗い出す ◦ 分解する ▪ 小さい単位で見積もる

    • よくわからない場所から調査 ◦ 外部の協力者が必要 ◦ 仕様を理解できてない ◦ など
  35. 入社後のギャップまとめ • 要件定義 • スケジュール管理 全てプログラミング以外の部分

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

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

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

  39. 解説されていたこと • 要件定義 • やることの決め方 • よく起こる問題 • 何を優先するか •

    など テンプレートとしてまとめたもの => インセプションデッキ
  40. インセプションデッキ プロジェクトでドキュメント化するべき項目をまとめたもの 項目 例 目的 簡単なログイン機能を提供 プロジェクト要約 プロジェクトのスコープ Googleログインを実装するが 他はしない

    プロジェクト体制 AさんとBさんの協力が必要 システム構成 システム構成図などの絵を書く リスク もし起こったら大変なことを考える
  41. インセプションデッキを使ってみる 調査に時間がかかりスケジュールが遅延 調査内容 • 既存の実装の調査 • SNSログイン自体の仕様調査 • ライブラリの選定 •

    追加導入のクラウドサービスのセキュリティ • 脆弱性診断 • 改修仕様の検討
  42. インセプションデッキ スケジュールの見積もりに関係するもの 項目 例 プロジェクトのスコープ Googleログインを実装するが 他はしない プロジェクト体制 AさんとBさんの協力が必要 リスク

    もし起こったら大変なことを考える
  43. プロジェクトのスコープ やること • SNSログイン • SMS認証 やらないこと • 秘密の質問の廃止 •

    Twitterログイン あとで決めること • SNS自体が障害の時どうするか
  44. プロジェクトのスコープ やること • SNSログイン ◦ Google ◦ 乗っ取り対策 • SMS認証

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

    ◦ クラウドサービスの導入 ◦ 攻撃の対策 ◦ 携帯使えなくなった時 関係者 • セキュリティ部 • 法務部 • CS 大変そうな部分に注目する
  46. リスク • セキュリティ対策で時間がかかりそう • SNSが乗っ取られた場合責任はマイコード? • 遺伝子情報を扱うサービスがSNSログインって使って良いの? • ....

  47. リスク • セキュリティ対策で時間がかかりそう ◦ 社内の他の事業部が何をしているのか聞きにいこう • SNSが乗っ取られた場合責任はマイコード? ◦ xxxxxx •

    遺伝子情報を扱うサービスがSNSログインって使って良いの? ◦ xxxxxx
  48. 見落としているリスクに気づける 以前は見えていなかった内容(再掲) • 既存の実装の調査 • SNSログイン自体の仕様調査 • ライブラリの選定 • 追加導入のクラウドサービスのセキュリティ

    • 脆弱性診断 • 改修仕様の検討 プロジェクトマネジメントの手法を使うことで よくある問題を回避できる
  49. よくある問題にハマっていた

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

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

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

  53. None