Developers Summit 2021 Summer (2021/07/30) の登壇資料です。 https://event.shoeisha.jp/devsumi/20210730/session/3240/
©2021 Mirai Translate, Inc. All Rights Reserved.さぁ、フルサイクル開発をはじめよう株式会社みらい翻訳 プラットフォーム部⼭⼝ 真親2021.7.30Developers Summit 2021 Summer
View Slide
©2021 Mirai Translate, Inc. All Rights Reserved.⾃⼰紹介株式会社みらい翻訳プラットフォーム部 開発チームエンジニアリングマネージャー⼭⼝ 真親 (Masachika Yamaguchi)2▶経歴SIerでキャリアをスタートし、事業会社でインフラエンジニアへキャリア移⾏。インフラを経験した後、開発マネジメントに携わる。2020年9⽉から現職、開発チームのEM。娘(5歳)、息⼦(4ヶ⽉)がワーキャー⾔ってる賑やかな⾃宅でリモートワーク⽣活を楽しんでいます︕@catnapper_mar
©2021 Mirai Translate, Inc. All Rights Reserved.VISIONMake machine translation the new lingua franca to bring new lifeand work style across different languages by 2028.(provide English native speakers' experience to the rest.)⾔語の壁を超え、新しい⽣活と仕事の様式をもたらす共通語の機能を機械翻訳として2028年までに作る。(世界のすべての⼈々に英語を⺟国語とする⼈々と同じ体験を与える)
©2021 Mirai Translate, Inc. All Rights Reserved.企業向けクラウドAI⾃動翻訳 Mirai Translator®• ⾼い翻訳精度• TOEIC960点〜プロ翻訳者レベルの翻訳精度を誇る⾼精度な機械翻訳エンジン• ⾼いセキュリティ• ISO27017/ISO27001を取得• ⾦融機関、製薬会社および政府系機関などの厳しいセキュリティ要件にも対応• ユーザー視点でのUX• 誰もが使いやすいシンプルなUI、わかりやすいエフォートレスなUX• 3つの主要な機能• ⽂書の⽂字⾊・網掛けなどの装飾を保持したまま翻訳可能なファイル翻訳• 作業効率アップのためのカスタマイズ機能(⽂体、ユーザー辞書)• ビジネス利⽤のためのユーザー/プロファイル管理機能4サービス紹介
©2021 Mirai Translate, Inc. All Rights Reserved.今⽇お話しすること• フルサイクル開発との出会い• フルサイクル開発とは• みらい翻訳はなぜフルサイクル開発をやろうと思ったのか• 今取り組み始めている課題• 取り組んでみてわかったこと5
©2021 Mirai Translate, Inc. All Rights Reserved. 6フルサイクル開発との出会い
©2021 Mirai Translate, Inc. All Rights Reserved.ある⽇の社内MTGでのCTOの⼀⾔7「今⽇から皆さん、フルサイクルエンジニアです」
©2021 Mirai Translate, Inc. All Rights Reserved.フルサイクルエンジニアって何︖• フルスタックの間違い︖• みんな知ってるの︖流⾏ってるの︖• 今⽇からなれるの︖どうやら「フルサイクル開発」というものがあるらしい8
©2021 Mirai Translate, Inc. All Rights Reserved. 9フルサイクル開発とは
©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チームで完結するモデル• 開発チームが学習とフィードバックループの恩恵を直接受けられる
©2021 Mirai Translate, Inc. All Rights Reserved.⼀番気になっていたこと11
©2021 Mirai Translate, Inc. All Rights Reserved.サポート運⽤デプロイフルサイクルに求められる範囲とは• フルスタック︓技術レイヤーの上から下までカバー• フルサイクル︓ソフトウェア開発ライフサイクルの全プロセスをカバー12テスト実装設計要件定義フロントエンドバックエンドインフラ
©2021 Mirai Translate, Inc. All Rights Reserved.サポート運⽤デプロイフルサイクルに求められる範囲とは• フルスタック︓技術レイヤーの上から下までカバー• フルサイクル︓ソフトウェア開発ライフサイクルの全プロセスをカバー13テスト実装設計要件定義フロントエンドバックエンドインフラフルスタック
©2021 Mirai Translate, Inc. All Rights Reserved.サポート運⽤デプロイフルサイクルに求められる範囲とは• フルスタック︓技術レイヤーの上から下までカバー• フルサイクル︓ソフトウェア開発ライフサイクルの全プロセスをカバー14テスト実装設計要件定義フロントエンドバックエンドインフラフルスタックフルサイクル・・・︕︖
©2021 Mirai Translate, Inc. All Rights Reserved.いやいやちょっと待て、それは無理15
©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)
©2021 Mirai Translate, Inc. All Rights Reserved.フルスタックでなくて良い︕(よかった)つまり必ずしも個⼈でフルサイクルを担う必要はない。重要なのはチームでフルサイクルを回せること17
©2021 Mirai Translate, Inc. All Rights Reserved. 18みらい翻訳はなぜフルサイクル開発をやろうと思ったのか
©2021 Mirai Translate, Inc. All Rights Reserved.プロダクトの急成⻑• ここ2年ほどで急速にサービスが売れるようになった• セールスからの要望が増えた• ユーザーフィードバックも多くいただくようになった• 要望・フィードバックをもとに開発を加速させたい• ⾃律的な開発チームを作りたいフルサイクル開発を⽬指すきっかけ19
©2021 Mirai Translate, Inc. All Rights Reserved.現場︓DevとOpsの分断Øリリースをインフラチームに依頼していた• 通信キャリア並のガチ品質を求める⽂化• ガチガチのマニュアル⼿順による作業(⼿順で守るしかない)• 膨⼤な⼿順書作成と厳重なチェック• 重厚なプロセスを踏むためリリースまで約1ヶ⽉求めるスピード感とのギャップが⼤きすぎる20
©2021 Mirai Translate, Inc. All Rights Reserved.問題解決のために始めたことØリリースを開発チームに移管• SREチームを結成• リリースの各プロセスを整理• ⼩さな変更は⼿順を定型化、レビューも簡潔に21【効果】• リリースまでの期間︓1ヶ⽉ → 最短1週間程度• リリースのハードルが下がった• 開発状況、スコープに合わせてリリース⽇程を分ける選択肢も• 現在もブランチの最適化、作業の⾃動化等をSRE中⼼に整備中
©2021 Mirai Translate, Inc. All Rights Reserved.さて改善はできた、がこれはみらい翻訳にとっては確実な⼀歩だが、まだ「Devがリリースをする」状態になっただけフルサイクル開発と⾔うには解決すべき課題は他にもたくさんある22
©2021 Mirai Translate, Inc. All Rights Reserved. 23今取り組み始めている課題
©2021 Mirai Translate, Inc. All Rights Reserved.課題は⼭積み1.DevとQAの分断2.開発チームの負担増⼤3.最上流と最下流へのアプローチフルサイクルへの道は険しい…24
©2021 Mirai Translate, Inc. All Rights Reserved.1. DevとQAの分断ØDev-QAの依頼関係によるQA⻑期化• QAチームへの伝達コスト• QAで問題が発⽣した場合の⼿戻りが⼤きい設計 実装 テストQA(回帰テスト等)開発仕様説明、テスト設計/結果の説明問題発⽣時⼿戻りリリース
©2021 Mirai Translate, Inc. All Rights Reserved.1. DevとQAの分断(取り組み)26Ø開発プロセスにQAを融合• QAメンバーを開発チームの⼀員に• 開発初期からテスト観点レビューとE2E⾃動化を実施• 伝達コストと⼿戻りのリスクを削減設計 実装 テストQA(回帰テスト等)開発リリースQA(レビュー, E2E⾃動化)
©2021 Mirai Translate, Inc. All Rights Reserved.2. 開発チームの負担増⼤Øリリースばかりやってる• リリース作業に⼿作業、確認作業が多い• 共有リソースに起因したリリース順序の調整、変更の取り込み• ビジネス側と開発側のリリース⽇程調整が難航27リリース作業カレンダー
©2021 Mirai Translate, Inc. All Rights Reserved.2. 開発チームの負担増⼤(取り組み)28Øモノリシックアーキテクチャの刷新、マイクロサービス化• 業務スコープを⼩さく分離して他チームに影響しないように• スコープが明確なチームはうまく回りやすいØデプロイとリリースの分離• Feature Flagsの仕組みを使いデプロイをリリース⽇の前に実施可能にするFeature Flagsの仕組み
©2021 Mirai Translate, Inc. All Rights Reserved.3. 最上流と最下流へのアプローチØPdMとサポートがチーム外に居る• PdMチームが別に存在し複数開発チームを兼務• 開発が要件定義を待つ、開発視点のレビューで⼿戻り• 開発とサポートの情報格差による回答速度、コミュニケーションコスト29PdM 開発 サポートサポート運⽤デプロイテスト実装設計要件定義
©2021 Mirai Translate, Inc. All Rights Reserved.3. 最上流と最下流へのアプローチ(取り組み)30Ø開発チーム内にPdMを配置• PdM(PO)を中⼼とした⾃律的なチームの構築• エンジニアも企画・要件定義を⾏うØ開発チーム内でサポート対応も⾏う︖• サポート担当をチームの⼀員にして連携強化• AI機械翻訳のノウハウを活かせないか(妄想)⼀部のチームでは取り組みが出来つつある
©2021 Mirai Translate, Inc. All Rights Reserved. 31フルサイクル開発に取り組んでみて思ったこと
©2021 Mirai Translate, Inc. All Rights Reserved.どうすればフルサイクル開発になるのか︖• 各課題はフルサイクル開発を意識しなくても直⾯するものでは︖• 課題に対して、開発サイクルを早く回すためにチームとしてできることを増やしていく、という⽅針がフルサイクル開発につながっている• 業務/機能スコープを明確にするのは⼤事• Netflixと同じレベルでやろうとしなくてもよい• 考え⽅を理解した上でチームに合ったフルサイクル開発の形を作っていければよい32
©2021 Mirai Translate, Inc. All Rights Reserved.ところでフルサイクルエンジニアに任命されてだいぶ経ちますが今⽇もフルサイクル開発チームを絶賛構築中です33
©2021 Mirai Translate, Inc. All Rights Reserved.同じような課題を抱えている⽅々に向けてあなたのチームでもフルサイクル開発、やってみませんか︖⼀緒に挑戦しましょう︕34
©2021 Mirai Translate, Inc. All Rights Reserved. 35ご清聴ありがとうございました