Slide 1

Slide 1 text

© Link and Motivation Group スモールリリースで品質とデリバリーを向上させる リンクアンドモチベーション Developer Productivityユニット プラットフォーム推進グループ 田中 克弥

Slide 2

Slide 2 text

2 © Link and Motivation Group 田中 克弥 株式会社リンクアンドモチベーション Developer Productivityユニット プラットフォーム推進グループ ● 2021年新卒入社 ● バックエンドメインのフルスタックエンジニア ● モチベーションクラウドシリーズ内外のシステム 連携開発に従事 ● 趣味は漫画とコーヒー 自己紹介

Slide 3

Slide 3 text

モチベーションクラウド 診断 変革 ※ 2022年度 実績 10,060 社 312 万人

Slide 4

Slide 4 text

4 © Link and Motivation Group スモールリリースによって 品質とデリバリーを向上させる方法 ※本発表で共有する機能・コードは実際のものとは異なります。 ※本発表で共有する解消方法が全てではございません。あくまで一例としてご参考いただけたらと思います。 今日お話しする内容

Slide 5

Slide 5 text

© Link and Motivation Group 5 なぜスモールリリースをしようとしたか?

Slide 6

Slide 6 text

6 © Link and Motivation Group 実際に起きていたこと

Slide 7

Slide 7 text

7 © Link and Motivation Group 実際に起きていたこと 変更ファイル・変更行が多いことによって - レビューコスト大 - コンフリクト発生 - バグ混入リスク大 - バグ混入時の原因特定・復旧工数大

Slide 8

Slide 8 text

8 © Link and Motivation Group 実際に起きていたこと_ビックバンリリース master リリースの大きさ feature/A feature/B feature/C

Slide 9

Slide 9 text

9 © Link and Motivation Group 実際に起きていたこと_コンフリクト feature/A feature/B feature/C feature/D めちゃコード 変わっとるやん... コンフリクト

Slide 10

Slide 10 text

10 © Link and Motivation Group 実際に起きていたこと_バグった時の切り戻し master 全て切り戻しするので、場合によっては復旧に時間がかかる (マイグレーション、ライブラリVer.UPとか) feature/A feature/B feature/C テーブル情報変えてる から切り戻し待って!

Slide 11

Slide 11 text

11 © Link and Motivation Group 実際に起きていたこと_バグった時の切り戻し master 全て切り戻しするので、場合によっては復旧に時間がかかる (マイグレーション、ライブラリVer.UPとか) feature/A feature/B feature/C テーブル情報変えてる から切り戻し待って! ビックバンリリースによって 品質にも、デリバリーのプロセスにも悪影響が出ていた

Slide 12

Slide 12 text

12 © Link and Motivation Group スモールリリース実現後 master feature/A feature/B feature/C

Slide 13

Slide 13 text

13 © Link and Motivation Group スモールリリース実現後_バグっても切り戻しが容易 master feature/A feature/B feature/C 切り戻すのはここだけ

Slide 14

Slide 14 text

14 © Link and Motivation Group スモールリリース実現後_バグっても切り戻しが容易 master feature/A feature/B feature/C 切り戻すのはここだけ スモールリリースによって 品質とデリバリーが向上! ※大きくても1リリース20ファイル以下 障害発生率は1/3以下、障害復旧時間は1/2以下に

Slide 15

Slide 15 text

© Link and Motivation Group 15 どうやってスモールリリースをするのか?

Slide 16

Slide 16 text

16 © Link and Motivation Group スモールリリース_大方針 ファイル(メソッド)ごとにリリースする リファクタリング APIごとにリリースする 新規機能開発

Slide 17

Slide 17 text

17 © Link and Motivation Group スモールリリース_リファクタリング(言語VerUP)の場合 master 100ファイル 影響範囲 1回 リリース回数 100ファイル リリースの大きさ

Slide 18

Slide 18 text

18 © Link and Motivation Group スモールリリース_リファクタリング(言語VerUP)の場合 master 100ファイル 影響範囲 100回 リリース回数 1ファイル リリースの大きさ

Slide 19

Slide 19 text

19 © Link and Motivation Group スモールリリース_リファクタリング(言語VerUP)の場合 master 100ファイル 影響範囲 100回 リリース回数 1ファイル リリースの大きさ ファイルごとに分割してスモールリリースを実現する

Slide 20

Slide 20 text

20 © Link and Motivation Group スモールリリース_新規機能開発の場合 master 5API 影響範囲 1回 リリース回数 5API リリースの大きさ

Slide 21

Slide 21 text

21 © Link and Motivation Group スモールリリース_新規機能開発の場合 master 5API 影響範囲 5回 リリース回数 1API リリースの大きさ

Slide 22

Slide 22 text

22 © Link and Motivation Group スモールリリース_新規機能開発の場合 master 5API 影響範囲 5回 リリース回数 1API リリースの大きさ APIごとに分割してスモールリリースを実現する

Slide 23

Slide 23 text

23 © Link and Motivation Group スモールリリース_新規機能開発の場合_備考 スモールリリースはしたいけど 新機能の顧客公開は 特定の日付(リリース日)にまとめて行いたい

Slide 24

Slide 24 text

24 © Link and Motivation Group スモールリリース_新規機能開発の場合_備考 master フィーチャーフラグを使って指定したタイミングで顧客に公開する OFFの時は公開されない ONになると公開される OFF ON

Slide 25

Slide 25 text

© Link and Motivation Group 25 まとめ

Slide 26

Slide 26 text

26 © Link and Motivation Group スモールリリースによって品質とデリバリーを向上させる方法 デリバリーのプロセス をシンプルにしたい ファイル(メソッド) ごとに分割 WHY なぜやるか 障害を減らしたい HOW どうやってやるか WHAT やること スモールリリース API ごとに分割

Slide 27

Slide 27 text

27 © Link and Motivation Group お知らせ ● エンジニアリングマネージャー ● プロダクトマネージャー ● テックリード ● サーバーサイドエンジニア ● フロントエンドエンジニア ● SRE ● データエンジニア ● CRM ● UXデザイナー 週1でテックブログ更新しています! まずはカジュアルにお話しましょう! ご連絡お待ちしております! 全職種、積極採用中です!