GaroonのFour Keysを改善するHanamiチームの紹介

Garoon Hanamiチームの土屋(@tsuchikazu)です。以前、この記事 Garoon開発チームを紹介します! 2023 でGaroonの開発チームの全体について紹介しました。今回は、その中の1つであるHanamiチームについて紹介します。

PHP Conference 2023でもHanamiチームでの取り組みを、チームメンバーが発表しました。そちらもぜひご覧ください。 speakerdeck.com

Hanamiチームとは

リリースプロセスを改善するチームです。現在、Webエンジニア 4人、QAエンジニア2人の6人(そのうち他チームとの兼務が3人)で構成されています。

Garoonは20年以上前にパッケージ製品からスタートし、その後クラウド版のサービスの提供も開始しました。クラウド版のリリースプロセスも、パッケージ製品時代のプロセスを模倣しており、以下のような課題を抱えていました。

  • 機能がリリースされるまでに時間がかかる
  • ビッグバンリリースが常態化している
  • 障害の改修にも時間がかかる
  • リリースまでのプロセスに関係者が多く、複雑で時間がかかる

また、Garoonのプロダクト自体も、20年以上の歴史の中で、技術的負債が積み重なっている状態です。技術的負債の解消の活動にも力を入れていますが、まずリリースプロセスをどうにかしないと、改善スピードを上げることができないと考えました。

そこで、Hanamiチームでは今年、ソフトウェア開発チームのパフォーマンスを示す4つの指標であるFour Keysを計測し、ハイパフォーマーのレベルまで向上させることを目標に活動しています。

仕事の進め方

Hanamiチームでは、以下のようなスタイルで仕事を進めています。

  • 四半期ごとに目標数値や注力ポイントを決定
  • それをタスクに落とし込み、カンバンでタスクを管理
  • 毎日、朝会やモブの時間をとり、タスクの相談や方針決定
  • 週に一度、ふりかえりやリファインメントを実施し、タスクの優先度の見直し

そもそも何を目指すのか。何がGaroon開発にとって1番解決すべき問題なのか?という点から、自分たちで目標を設定し、日々の活動内容を決めています。伸びしろが多い分、バリュー出し放題の毎日です。

これまでの活動

Four Keysの定義自体に関しては、DORAの定義を参照しつつ、わたしたちのチームでは以下のように定めました。

指標名 DORA Garoon
デプロイの頻度 組織による正常な本番環境へのリリースの頻度 本番環境へのデプロイの頻度
変更のリードタイム commit から本番環境稼働までの所要時間 Pull Requestの初回commitから本番環境へのデプロイ日までの日数
変更障害率 デプロイが原因で本番環境で障害が発生する割合(%) 緊急性の高い障害の切り戻しまたは修正版のデプロイ回数 / 総デプロイ数
サービス復元時間 組織が本番環境での障害から回復するのにかかる時間 緊急性の高い障害の原因となる変更が本番環境へデプロイされてから、切り戻しまたは修正版のデプロイ完了するまでの所要時間

昨年と比べて、以下のように改善することができました。

指標名 改善結果
デプロイの頻度 8倍 に増加
変更のリードタイム 1/10 に短縮
変更障害率 1/8 に低下
サービス復元時間 1/8 に短縮

この改善のために、具体的にこれまで注力してきた活動を紹介します。

新しいリリースプロセスの作成

Four Keysの中でもGaroonで特に問題に感じていた部分は、スピード面。デプロイの頻度と、変更のリードタイムでした。これらを上げれば、それに連動してサービス復元時間や、変更障害率も下がるだろうという仮定のもと、まずはスピード面。特にデプロイ頻度に注力して活動しました。

昨年までは、デプロイするタイミングは、1ヶ月に1度の定期メンテか、緊急性の高いリリースのみでした。そのため、日常的にデプロイするプロセスではなく、1度デプロイするだけでも大きなコストが掛かっていました。

1日複数回デプロイを可能にするためには、息をするようにデプロイできる必要があります。そのため、これまでとは違う新しいリリースプロセスを作成しました。

  • 人の目によるテスト、チェックなどの定常業務をGitHub Actionsで自動化
    • Pull RequestのCIがオールグリーンなら、いつでもデプロイ可能!
  • デプロイの仕組みをGitHub Actionsで自動化
    • Pull Requestをmergeするだけでデプロイ!
  • 開発チームが自律的にデプロイできるプロセスに変更
    • いつでも好きな時にデプロイ可能に!

作成して終わりではなく、開発チーム全体に根付かせる必要もあります。開発に関するチームは日本で4チーム、ベトナムに7チーム存在しています。新しいリリースプロセスを段階的に各チームに広めていき、フィードバックをもらいブラッシュアップを続けました。今では全チームが新しいプロセスでデプロイできるようになり、Four Keysが大きく改善しました。

今後の取り組み

Four Keysはある程度改善はされましたが、まだまだ伸びしろが残されています。

  • 不安定なテストの安定化
  • 監視強化
  • 障害対応フローの最適化
  • 毎日デプロイする対象を更に拡大

サービスの歴史が長く、開発規模も小さくない中で、これまでの開発のやりかたを変えるのは、難しい反面やりがいもある仕事です。 GaroonはこれからもDeveloper Experienceの向上に向けて、様々な取り組みをやっていきます。 一緒にやっていく仲間を募集中なので、ご興味がある方は、ぜひご応募ください。

cybozu.co.jp