Save 37% off PRO during our Black Friday Sale! »

さぁ、フルサイクル開発をはじめよう / Let's Start Full Cycle Development

さぁ、フルサイクル開発をはじめよう / Let's Start Full Cycle Development

Developers Summit 2021 Summer (2021/07/30) の登壇資料です。
https://event.shoeisha.jp/devsumi/20210730/session/3240/

6bc68cc19203ec15b1784cd038e0b445?s=128

Masachika Yamaguchi

July 30, 2021
Tweet

Transcript

  1. ©2021 Mirai Translate, Inc. All Rights Reserved. さぁ、フルサイクル開発をはじめよう 株式会社みらい翻訳 プラットフォーム部

    ⼭⼝ 真親 2021.7.30 Developers Summit 2021 Summer
  2. ©2021 Mirai Translate, Inc. All Rights Reserved. ⾃⼰紹介 株式会社みらい翻訳 プラットフォーム部

    開発チーム エンジニアリングマネージャー ⼭⼝ 真親 (Masachika Yamaguchi) 2 ▶経歴 SIerでキャリアをスタートし、事業会社でインフラエ ンジニアへキャリア移⾏。インフラを経験した後、開 発マネジメントに携わる。 2020年9⽉から現職、開発チームのEM。 娘(5歳)、息⼦(4ヶ⽉)がワーキャー⾔ってる賑やかな ⾃宅でリモートワーク⽣活を楽しんでいます︕ @catnapper_mar
  3. ©2021 Mirai Translate, Inc. All Rights Reserved. VISION Make machine

    translation the new lingua franca to bring new life and work style across different languages by 2028. (provide English native speakers' experience to the rest.) ⾔語の壁を超え、新しい⽣活と仕事の様式をもたらす 共通語の機能を機械翻訳として2028年までに作る。 (世界のすべての⼈々に英語を⺟国語とする⼈々と同じ体験を与える)
  4. ©2021 Mirai Translate, Inc. All Rights Reserved. 企業向けクラウドAI⾃動翻訳 Mirai Translator®

    • ⾼い翻訳精度 • TOEIC960点〜プロ翻訳者レベルの翻訳精度を誇る⾼精度な機械翻訳エンジン • ⾼いセキュリティ • ISO27017/ISO27001を取得 • ⾦融機関、製薬会社および政府系機関などの厳しいセキュリティ要件にも対応 • ユーザー視点でのUX • 誰もが使いやすいシンプルなUI、わかりやすいエフォートレスなUX • 3つの主要な機能 • ⽂書の⽂字⾊・網掛けなどの装飾を保持したまま翻訳可能なファイル翻訳 • 作業効率アップのためのカスタマイズ機能(⽂体、ユーザー辞書) • ビジネス利⽤のためのユーザー/プロファイル管理機能 4 サービス紹介
  5. ©2021 Mirai Translate, Inc. All Rights Reserved. 今⽇お話しすること • フルサイクル開発との出会い

    • フルサイクル開発とは • みらい翻訳はなぜフルサイクル開発をやろうと思ったのか • 今取り組み始めている課題 • 取り組んでみてわかったこと 5
  6. ©2021 Mirai Translate, Inc. All Rights Reserved. 6 フルサイクル開発との出会い

  7. ©2021 Mirai Translate, Inc. All Rights Reserved. ある⽇の社内MTGでのCTOの⼀⾔ 7 「今⽇から皆さん、フルサイクルエンジニアです」

  8. ©2021 Mirai Translate, Inc. All Rights Reserved. フルサイクルエンジニアって何︖ • フルスタックの間違い︖

    • みんな知ってるの︖流⾏ってるの︖ • 今⽇からなれるの︖ どうやら「フルサイクル開発」というものがあるらしい 8
  9. ©2021 Mirai Translate, Inc. All Rights Reserved. 9 フルサイクル開発とは

  10. ©2021 Mirai Translate, Inc. All Rights Reserved. フルサイクル開発とは Netflixで提唱された “Full

    Cycle Developers” に由来 10 【出典&参考】 “Full Cycle Developers at Netflix ̶ Operate What You Build” https://netflixtechblog.com/full-cycle-developers-at-netflix-a08c31f83249 (⽇本語訳︓”Netflixにおけるフルサイクル開発者―開発したものが運⽤する” https://techlog.voyagegroup.com/entry/2019/02/04/171325) • ⾃分たちで開発したものを⾃分たちで運⽤する • システムを開発するチーム(Dev)が運⽤とサポート (Ops)にも責任を持つ • DevOpsがDevとOpsとの歩み寄りにより実現する のに対し、フルサイクル開発はDevチームで完結す るモデル • 開発チームが学習とフィードバックループの恩恵 を直接受けられる
  11. ©2021 Mirai Translate, Inc. All Rights Reserved. ⼀番気になっていたこと 11

  12. ©2021 Mirai Translate, Inc. All Rights Reserved. サポート 運⽤ デプロイ

    フルサイクルに求められる範囲とは • フルスタック︓技術レイヤーの上から下までカバー • フルサイクル︓ソフトウェア開発ライフサイクルの全プロセスをカバー 12 テスト 実装 設計 要件定義 フロント エンド バックエ ンド インフラ
  13. ©2021 Mirai Translate, Inc. All Rights Reserved. サポート 運⽤ デプロイ

    フルサイクルに求められる範囲とは • フルスタック︓技術レイヤーの上から下までカバー • フルサイクル︓ソフトウェア開発ライフサイクルの全プロセスをカバー 13 テスト 実装 設計 要件定義 フロント エンド バックエ ンド インフラ フルスタック
  14. ©2021 Mirai Translate, Inc. All Rights Reserved. サポート 運⽤ デプロイ

    フルサイクルに求められる範囲とは • フルスタック︓技術レイヤーの上から下までカバー • フルサイクル︓ソフトウェア開発ライフサイクルの全プロセスをカバー 14 テスト 実装 設計 要件定義 フロント エンド バックエ ンド インフラ フルスタック フルサイクル・・・︕︖
  15. ©2021 Mirai Translate, Inc. All Rights Reserved. いやいや ちょっと待て、それは無理 15

  16. ©2021 Mirai Translate, Inc. All Rights Reserved. 教えて偉い⼈ Netflixによると、 ʮϑϧαΠΫϧ։ൃऀ͸ιϑτ΢ΣΞϥΠϑαΠΫϧͷશͯͷ෼

    ໺ʹ͓͍ͯ஌͕ࣝ͋ΓޮՌతͰ͋Δ͜ͱ͕ظ଴͞ΕΔɻʯ としているが、実際にNetflixが到達したモデルは ʮઃܭɺ։ൃɺςετɺσϓϩΠɺӡ༻ɺαϙʔτͱ͍ͬͨϑ ϧιϑτ΢ΣΞϥΠϑαΠΫϧ΁ͷ੹೚Λ࣋ͭ։ൃνʔϜ ͩɻʯ 16 【出典&参考】 “Full Cycle Developers at Netflix ̶ Operate What You Build” https://netflixtechblog.com/full-cycle-developers-at-netflix-a08c31f83249 (⽇本語訳︓”Netflixにおけるフルサイクル開発者―開発したものが運⽤する” https://techlog.voyagegroup.com/entry/2019/02/04/171325)
  17. ©2021 Mirai Translate, Inc. All Rights Reserved. フルスタックでなくて良い︕(よかった) つまり必ずしも個⼈でフルサイクルを担う必要はない。 重要なのはチームでフルサイクルを回せること

    17
  18. ©2021 Mirai Translate, Inc. All Rights Reserved. 18 みらい翻訳はなぜフルサイクル開発をやろうと 思ったのか

  19. ©2021 Mirai Translate, Inc. All Rights Reserved. プロダクトの急成⻑ • ここ2年ほどで急速にサービスが売れるようになった

    • セールスからの要望が増えた • ユーザーフィードバックも多くいただくようになった • 要望・フィードバックをもとに開発を加速させたい • ⾃律的な開発チームを作りたい フルサイクル開発を⽬指すきっかけ 19
  20. ©2021 Mirai Translate, Inc. All Rights Reserved. 現場︓DevとOpsの分断 Øリリースをインフラチームに依頼していた •

    通信キャリア並のガチ品質を求める⽂化 • ガチガチのマニュアル⼿順による作業(⼿順で守るしかない) • 膨⼤な⼿順書作成と厳重なチェック • 重厚なプロセスを踏むためリリースまで約1ヶ⽉ 求めるスピード感とのギャップが⼤きすぎる 20
  21. ©2021 Mirai Translate, Inc. All Rights Reserved. 問題解決のために始めたこと Øリリースを開発チームに移管 •

    SREチームを結成 • リリースの各プロセスを整理 • ⼩さな変更は⼿順を定型化、レビューも簡潔に 21 【効果】 • リリースまでの期間︓1ヶ⽉ → 最短1週間程度 • リリースのハードルが下がった • 開発状況、スコープに合わせてリリース⽇程を分ける選択肢も • 現在もブランチの最適化、作業の⾃動化等をSRE中⼼に整備中
  22. ©2021 Mirai Translate, Inc. All Rights Reserved. さて改善はできた、が これはみらい翻訳にとっては確実な⼀歩 だが、まだ「Devがリリースをする」状態になっただけ

    フルサイクル開発と⾔うには解決すべき課題は他にもたくさんある 22
  23. ©2021 Mirai Translate, Inc. All Rights Reserved. 23 今取り組み始めている課題

  24. ©2021 Mirai Translate, Inc. All Rights Reserved. 課題は⼭積み 1.DevとQAの分断 2.開発チームの負担増⼤

    3.最上流と最下流へのアプローチ フルサイクルへの道は険しい… 24
  25. ©2021 Mirai Translate, Inc. All Rights Reserved. 1. DevとQAの分断 ØDev-QAの依頼関係によるQA⻑期化

    • QAチームへの伝達コスト • QAで問題が発⽣した場合の⼿戻りが⼤きい 設計 実装 テスト QA (回帰テスト等) 開発 仕様説明、テスト設計/ 結果の説明 問題発⽣時⼿戻り リリース
  26. ©2021 Mirai Translate, Inc. All Rights Reserved. 1. DevとQAの分断(取り組み) 26

    Ø開発プロセスにQAを融合 • QAメンバーを開発チームの⼀員に • 開発初期からテスト観点レビューとE2E⾃動化を実施 • 伝達コストと⼿戻りのリスクを削減 設計 実装 テスト QA (回帰テスト等) 開発 リリース QA(レビュー, E2E⾃動化)
  27. ©2021 Mirai Translate, Inc. All Rights Reserved. 2. 開発チームの負担増⼤ Øリリースばかりやってる

    • リリース作業に⼿作業、確認作業が多い • 共有リソースに起因したリリース順序の調整、変更の取り込み • ビジネス側と開発側のリリース⽇程調整が難航 27 リリース作業カレンダー
  28. ©2021 Mirai Translate, Inc. All Rights Reserved. 2. 開発チームの負担増⼤(取り組み) 28

    Øモノリシックアーキテクチャの刷新、マイクロサービス化 • 業務スコープを⼩さく分離して他チームに影響しないように • スコープが明確なチームはうまく回りやすい Øデプロイとリリースの分離 • Feature Flagsの仕組みを使いデプロイをリリース⽇の前に実施可 能にする Feature Flagsの仕組み
  29. ©2021 Mirai Translate, Inc. All Rights Reserved. 3. 最上流と最下流へのアプローチ ØPdMとサポートがチーム外に居る

    • PdMチームが別に存在し複数開発チームを兼務 • 開発が要件定義を待つ、開発視点のレビューで⼿戻り • 開発とサポートの情報格差による回答速度、コミュニケーションコスト 29 PdM 開発 サポート サポート 運⽤ デプロイ テスト 実装 設計 要件定義
  30. ©2021 Mirai Translate, Inc. All Rights Reserved. 3. 最上流と最下流へのアプローチ(取り組み) 30

    Ø開発チーム内にPdMを配置 • PdM(PO)を中⼼とした⾃律的なチームの構築 • エンジニアも企画・要件定義を⾏う Ø開発チーム内でサポート対応も⾏う︖ • サポート担当をチームの⼀員にして連携強化 • AI機械翻訳のノウハウを活かせないか(妄想) ⼀部のチームでは取り組みが出来つつある
  31. ©2021 Mirai Translate, Inc. All Rights Reserved. 31 フルサイクル開発に取り組んでみて思ったこと

  32. ©2021 Mirai Translate, Inc. All Rights Reserved. どうすればフルサイクル開発になるのか︖ • 各課題はフルサイクル開発を意識しなくても直⾯するものでは︖

    • 課題に対して、開発サイクルを早く回すためにチームとしてできるこ とを増やしていく、という⽅針がフルサイクル開発につながっている • 業務/機能スコープを明確にするのは⼤事 • Netflixと同じレベルでやろうとしなくてもよい • 考え⽅を理解した上でチームに合ったフルサイクル開発の形を作って いければよい 32
  33. ©2021 Mirai Translate, Inc. All Rights Reserved. ところで フルサイクルエンジニアに任命されてだいぶ経ちますが 今⽇もフルサイクル開発チームを絶賛構築中です

    33
  34. ©2021 Mirai Translate, Inc. All Rights Reserved. 同じような課題を抱えている⽅々に向けて あなたのチームでも フルサイクル開発、やってみませんか︖

    ⼀緒に挑戦しましょう︕ 34
  35. ©2021 Mirai Translate, Inc. All Rights Reserved. 35 ご清聴ありがとうございました