設計の意思決定を「感覚から根拠へ」──3アーキテクチャ並列設計の仕組み

こんにちは。ファインディ株式会社でテックリードマネージャーをやらせてもらってる戸田です。

ファインディでは要件定義から設計・タスク分解・Issue生成までをAIに任せるカスタムコマンドを開発しています。前回の記事ではコマンドの全体フローを紹介しました。

tech.findy.co.jp

AIにタスク分解やIssueを作成してもらうには、先に実装方針を明確にする必要があります。方針が固まっていないと、生成されるタスクの粒度や設計の一貫性がブレてしまうからです。このコマンドの設計ステップでは、3つのアーキテクチャアプローチを並列で設計し、トレードオフを比較して最適な方針を選択します。

本記事では、その設計ステップに焦点を当て、3つのアーキテクチャ案を並列で設計してトレードオフ比較で選ぶ仕組みを紹介します。

コードベースの並列探索

コマンドを実行すると、まず3つのエージェントが並列でコードベースを分析します。

既存のコードベースを理解するため、Claude Codeの公式Pluginであるfeature-dev にある code-explorerエージェントを活用します。このエージェントはプロジェクトの構造やパターンを自動的に分析して実装に必要な情報を収集します。feature-devプラグインをインストールするだけでcode-explorerエージェントを利用できるようになります。

要件を分割して複数のcode-explorerエージェントを並列で起動します。各エージェントが特定の観点からコードベースを探索して必要な情報を収集します。

実際の実行ログは次のとおりです。

⏺ Phase 2: コードベースの探索

  既存のコードとパターンを理解するため、複数のcode-explorerエージェントを並列で起動します。

  Running 3 feature-dev:code-explorer agents… (ctrl+o to expand)
   ├─ Explore user registration architecture · 12 tool uses · 29.1k tokens
   │  ⎿  Search: **/models/admin*.py
   ├─ Explore admin API patterns · 12 tool uses · 27.6k tokens
   │  ⎿  Read: main.py
   └─ Explore CSV and file handling · 10 tool uses · 17.0k tokens
      ⎿  Search: **/api/routes/**/*.py

3つの探索結果は統合され、既存のユーザー登録処理のパターンやCSVファイル処理の実装有無、管理者APIの構造といった知見が次の設計フェーズに引き渡されます。コードベースを自分で読んで回るよりも短時間で、設計に必要な情報を網羅的に集められます。

3アーキテクチャ並列設計の仕組み

このコマンドの中核となるのが、1つの機能要件に対して3つのアーキテクチャ案を同時に設計する仕組みです。コードベース探索の結果を受け取った3つのエージェントが、それぞれ異なる方針で設計を並列に進めます。

Claude Codeの公式Pluginであるfeature-dev にある code-architectエージェントを活用します。このエージェントは設計方針を提案してくれます。開発者は提案された選択肢の中からプロジェクトに最適な実装方針を選ぶことができます。この選択により実装の方向性が確定します。

Running 3 code-architect agents...
├─ Design minimal change approach
├─ Design clean architecture approach
└─ Design pragmatic balance approach

最小変更アプローチ

既存コードを最大限活用して変更範囲を最小に抑える方針です。たとえばCSVインポート機能の追加であれば、処理ロジックをルートハンドラに直接実装することで新規ファイルを2個に抑えられます。

  • タスク数: 2個
  • メリット: 最速で実装できる。既存コードとの整合性が高く、レビューしやすい
  • デメリット: ハンドラが肥大化しやすい。処理ロジックの再利用が難しく、将来の拡張で追加実装が必要になる

緊急対応や短期のPoC、スコープを絞った小規模な機能追加に向いています。

クリーンアーキテクチャアプローチ

Parser・Validator・Serviceといった責務の分離を徹底し、将来の変更に強い構造を作る方針です。新規ファイルは7個ほどになりますが、各層を独立してテストでき、将来ExcelやJSONへの対応を追加する際も既存コードへの影響を最小化できます。

  • タスク数: 6個
  • メリット: 拡張性・テスタビリティが高い。ビジネスロジックの再利用が容易
  • デメリット: 初期実装に時間がかかる。抽象化レイヤーが増えるため、シンプルな変更でも影響範囲の把握が必要になる

長期的に保守・拡張する基盤機能や、複数のフォーマット・ユースケースに対応する予定がある場合に向いています。

実用的バランスアプローチ

サービス層を導入して責務をある程度分離しながら、Parser・Validatorの細かい分割は行わない方針です。新規ファイルは5個ほどになり、実装速度と保守性のバランスが取れています。

  • タスク数: 5個
  • メリット: 適度な抽象化で保守性を確保しつつ、最小変更よりも将来の拡張に対応しやすい
  • デメリット: クリーンアーキテクチャほどの柔軟性はなく、最小変更ほどのシンプルさもない

通常の機能開発にもっとも推奨されるアプローチです。即時の拡張予定はないが、一定の保守性は確保したいというケースに適しています。

トレードオフ比較と選択

3案が揃うと、次のような比較表が提示されます。

⏺ 3 feature-dev:code-architect agents finished (ctrl+o to expand)
   ├─ Design minimal change approach · 20 tool uses · 25.2k tokens
   │  ⎿  Done
   ├─ Design clean architecture approach · 26 tool uses · 41.0k tokens
   │  ⎿  Done
   └─ Design pragmatic balance approach · 0 tool uses
      ⎿  Done

⏺ 3つのアーキテクチャアプローチが完成しました。それぞれの特徴を整理してご提案します。

  3つのアプローチ比較

  1. 最小変更アプローチ (Minimal Change)

  特徴:
  - CSV処理をルートハンドラに直接実装(約150行の単一ファイル)
  - 既存パターンを最大限活用(teams.pyの部分成功パターン)
  - 新規作成ファイル: 2個(エンドポイント + テスト)

  メリット:
  - 最速で実装可能(2 PR、~650行)
  - シンプルで理解しやすい
  - 既存コードとの整合性が高い

  デメリット:
  - ルートハンドラが長くなる(~150行)
  - CSV処理ロジックの再利用が困難
  - 将来の拡張(Excel対応など)に追加実装が必要

  タスク数: 2個

  ---
  2. クリーンアーキテクチャアプローチ (Clean Architecture)

  特徴:
  - サービス層を導入して責務を分離
    - Parser(CSV解析)
    - Validator(バリデーション)
    - UserImportService(オーケストレーション)
  - 新規作成ファイル: 7個

  メリット:
  - 将来の拡張が容易(Excel, JSON対応)
  - テストが容易(各層を独立してテスト可能)
  - ビジネスロジックの再利用性が高い
  - 保守性が高い

  デメリット:
  - 初期実装に時間がかかる(6 PR、~730行)
  - 抽象化により複雑さが増す
  - シンプルなCSV処理に対してはオーバーエンジニアリングの可能性

  タスク数: 6個

  ---
  3. 実用的バランスアプローチ (Pragmatic Balance)

  特徴:
  - サービス層を導入するが、Parser/Validatorは分離しない
  - UserImportServiceで一元管理
  - 新規作成ファイル: 5個

  メリット:
  - 適度な抽象化で保守性を確保
  - 実装速度とコード品質のバランスが取れている
  - 将来の拡張もある程度対応可能

  デメリット:
  - クリーンアーキテクチャほどの柔軟性はない
  - 最小変更アプローチほどシンプルではない

  タスク数: 5個

数字だけでなく、各アプローチが「どんな状況に向いているか」も合わせて提示されます。チームの状況や緊急度、今後の拡張計画に照らし合わせてアプローチを選択します。

────────────────────────────────────────────────────────────
 ☐ Approach

どの実装アプローチを採用しますか?

  1. 実用的バランス (Recommended)
  2. 最小変更
❯ 3. クリーンアーキテクチャ
  4. Type something.

まとめ

3アーキテクチャを並列設計してトレードオフ比較で選ぶという手法は、設計の意思決定を「感覚から根拠へ」転換するひとつの形です。

この手法が特に効果を発揮するのはチームでの議論の場面です。3案と比較表が揃った状態でアーキテクチャの議論ができるため、「最小変更で進めるか、この機会にリファクタリングするか」という問いに対して、数字と具体的な設計イメージをもとに話せるようになりました。

大規模機能開発の設計に悩んでいるエンジニアやEMの方に、ぜひ試していただけると幸いです。


ファインディでは一緒に会社を盛り上げてくれるメンバーを募集中です。興味を持っていただいた方はこちらのページからご応募お願いします。

herp.careers

Findyの爆速開発を支えるAIによるタスク分解の粒度設計

こんにちは。ファインディ株式会社でテックリードマネージャーをやらせてもらってる戸田です。

ファインディでは要件定義から設計・タスク分解・Issue生成までをAIに任せるカスタムコマンドを開発しています。

tech.findy.co.jp

このコマンドの中にはAIがタスク分解を行うステップがありますが、分解の粒度が適切でなければ、実装がしやすいどころか混乱の元になります。大きすぎるタスクはレビューが困難になり、タスクを細かく分割しすぎると実装が中途半端でビルドが通らないPRが生まれます。

そこで、AIがタスクを分解する際の判断基準として、具体的なルールを定めました。この記事では、そのタスク分解ステップで使っているルールを紹介します。

AIのタスク分解の粒度が重要な理由

AIに実装タスクを分解してもらうとき、「タスクを小さくする」という方針だけを与えても、粒度の判断基準が曖昧では適切な出力は得られません。分割しすぎて中途半端なコードが生成されビルドが通らないPRが生まれたり、逆にまとめすぎて障害発生時にrevertの影響が広がりすぎたりします。

どちらも「revertの単位を意識していない」という同じ原因から来ているため、「revertできる単位か」という1つの軸を判断基準の中心に据えました。

タスク分解の基本原則

AIが設計するすべてのタスクは「独立してrevertできる最小の意味ある変更単位」であるべきです。具体的には次の4条件を満たします。

  • アプリケーションを壊さずにマージできること
  • 実装とテストが含まれていること
  • 他のタスクに影響を与えずにrevertできること
  • レビュアーが2〜3時間以内にレビューできること

この原則に沿うことで、障害が起きたときに「どのPRを戻せばいいか」の判断が明確になり、レビューの粒度も自然と揃います。

分割判断の3ステップフローチャート

AIは2つの変更(タスクAとタスクB)を同じタスクにまとめるか分けるかを、次の3ステップで判断します。どれか1つで「高凝集」と判断された時点で同じタスクにまとめ、3つすべてを通過してはじめて別タスクとして分離します。

ステップ1: 動作の独立性(Independence Check)

「タスクAがなくてもタスクBは正常に動作するか?」

「動作しない」なら高凝集と判断し、同じタスクにまとめます。APIエンドポイントとルーティング設定はその典型で、ルーティングなしではAPIを呼び出せません。一方、ユーザー検索機能と通知機能はそれぞれ独立して動作するため、別タスクに分離できます。「動作する」なら次のステップへ進みます。

ステップ2: 機能の完結性(Completeness Check)

「タスクAだけをマージしても、意味のある機能として完結するか?」

「完結しない」なら同じタスクにまとめます。メール送信ロジックだけをマージしても、それを呼び出すイベントトリガーがなければ誰にもメールが届きません。一方、ログ改善は単体でデプロイしても既存機能に価値を加えます。「完結する」なら次のステップへ進みます。

ステップ3: revertの影響範囲(Revert Impact Check)

「タスクAをrevertしたら、タスクBも壊れるか?」

「壊れる」なら同じタスクにまとめます。実装コードをrevertすればテストが壊れるため、実装とテストは常にセットです。一方、feature flagの追加とその有効化は独立しており、有効化だけをrevertしても追加コードは残ります。「壊れない」なら別タスクに分離できます。

3ステップフローチャート

タスクサイズの定量指標

3ステップの判断に加えて、サイズの上限も定義しています。AIが生成するタスクがこの範囲を超える場合は、さらに分割できないかを検討します。

指標 理想 最大
変更ファイル数 3〜10個 15個
変更行数(テスト含む) 200〜500行 1,000行
テストコード量 実装の0.5〜2倍

ただし、凝集度が高い変更であれば、サイズが目安を超えていても無理に分割しません。サイズはあくまで補助指標です。

凝集度パターン集

3ステップの判断を素早く行うために、「常にセットにすべきもの」と「常に分離すべきもの」をパターンとして定義しています。

常に同じタスクにまとめるべきもの

次の4パターンは絶対に分離しません。

  • 実装コード ⇔ テストコード(テストなしの実装はマージしない)
  • APIエンドポイント ⇔ ルーティング設定(両方ないと動作しない)
  • データモデル ⇔ マイグレーション(スキーマとコードの整合性を保つ)
  • サービスクラス ⇔ インターフェース定義(型の整合性を保つ)

常に別タスクに分けるべきもの

次のパターンは必ず分離します。

  • リファクタリング ⇔ 新機能追加(バグ発生時の原因特定を容易にする)
  • feature flag: 「実装(デフォルトOFF)→ 有効化(テストユーザー)→ 有効化(全ユーザー)→ 削除」の各段階
  • 依存ライブラリの更新 ⇔ 新機能追加(ライブラリ更新の影響を独立して検証する)
  • パフォーマンス改善 ⇔ 新機能追加(改善効果を独立して計測する)
  • データマイグレーション ⇔ 新機能追加(高リスクな操作を独立して実行する)
  • 互いに依存しない複数の機能(それぞれ独立してrevertできる)

具体例: ユーザー通知機能の分割

ユーザー通知機能を実装する場合、AIは次の3つのタスクに分けて設計します。

タスク 内容 ファイル数 行数
データ層 Notificationモデル・マイグレーション・モデルテスト 3個 約240行
ロジック層 通知送信サービス・ユニットテスト 2個 約450行
API層 エンドポイント・ルーティング・スキーマ・統合テスト 3個 約340行

「機能全体を1つのタスク」にすると変更ファイルが10個超・1,000行超になりレビューが困難です。加えて、API層に不具合が起きたときデータ層まで巻き込んでrevertする必要が生まれます。API層をrevertしてもデータ層には影響しないため、独立してrevertできる粒度に分解することが重要です。

タスクリストを評価する5つの観点

AIがタスクリストを生成した後、次の5つの観点で自己評価を行います。

  • 粒度チェック: 各タスクが適切なサイズか、大きすぎるものや小さすぎるものがないか
  • 凝集度チェック: 実装とテストが同じタスクにあるか、APIとルーティングがセットになっているか
  • 独立性チェック: 各タスクを単独でrevertできるか、マージ後にアプリケーションが正常動作するか
  • 依存関係マッピング: タスク間の依存関係が明確か、並列実装できるタスクが識別されているか
  • 改善提案: 問題があればどのタスクを分割・統合すべきかの具体的な推奨

この評価がPRを作る前の段階で完了するため、レビュー時の分割議論がなくなります。

実行例

今回紹介したスキルを実行したログです。

⏺ 承知しました。クリーンアーキテクチャアプローチで進めます。
  それではタスク分解フェーズに進んで、task-breakdownスキルを使って
  タスク分解を評価・調整します。

⏺ Skill(task-breakdown)
  ⎿  Successfully loaded skill

⏺ 評価対象タスク(code-architectが提案した5タスク):

  Task 1: [Data] ドメインモデルの追加
    変更ファイル: 3個, ~80行
    依存: なし

  Task 2: [Logic] CSVパーサーの実装
    変更ファイル: 3個, ~100行
    依存: Task 1

  Task 3: [Logic] バリデーターの実装
    変更ファイル: 3個, ~120行
    依存: Task 1

  Task 4: [Logic] ユーザーインポートサービスの実装
    変更ファイル: 3個, ~180行
    依存: Task 1, 2, 3

  Task 5: [API] 管理者用一括登録エンドポイント
    変更ファイル: 3個, ~100行
    依存: Task 1, 2, 3, 4

⏺ [粒度チェック]
  ✅ 全タスクのファイル数: 3個(基準: 3〜10個)
  ✅ 全タスクの行数: 80〜180行(基準: 200〜500行以内)
  ⚠ Task 4: メール連携部分を分離できる可能性あり(現状は許容範囲)

⏺ [凝集度チェック]
  ✅ 全タスクで実装コードとテストコードが同一タスクに含まれている
  ✅ APIエンドポイントとルーティング設定がTask 5に含まれている

⏺ [独立性チェック]
  ✅ Task 1マージ後: アプリケーションは正常動作する
  ✅ Task 2マージ後: アプリケーションは正常動作する
  ✅ Task 3マージ後: アプリケーションは正常動作する
  ✅ Task 4マージ後: アプリケーションは正常動作する
  ✅ Task 5マージ後: アプリケーションは正常動作する
  ✅ 全タスク: 独立してrevert可能

⏺ [依存関係マッピング]
  Task 1(モデル)
  ├── Task 2(CSVパーサー)─┐
  └── Task 3(バリデーター)┤
                             └── Task 4(サービス)── Task 5(API)
  並列実装可能: Task 2とTask 3

⏺ [改善提案]
  現在のタスク分解は非常に良好です。このまま進めることを推奨します。

  良い点:
  - 各タスクのサイズが適切(3ファイル, 80〜180行)
  - 各タスクマージ後もアプリケーションは正常動作する
  - Task 2とTask 3の並列実装で開発効率を高められる

⏺ 最終判断: 現在のタスク分解をそのまま採用

各タスクが3ファイル・80〜180行に収まっており、並列実装できるタスクまで特定されています。この評価があることで、実装に入る前にタスク分解の妥当性を確認でき、レビュー時に分割を再検討する手戻りが起きません。

まとめ

AIにタスクを分解してもらうとき、粒度の判断基準を明確に与えることが重要です。3ステップのフローチャートと凝集度パターン集を組み合わせることで、AIが一貫した粒度でタスクを設計できるようになります。

AIが作ったタスクリストを見るとき、「このタスクを単独でrevertできるか?」という問いで評価してみてください。その問いへの答えが、適切な粒度かどうかを教えてくれます。

ファインディでは一緒に会社を盛り上げてくれるメンバーを募集中です。興味を持っていただいた方はこちらのページからご応募お願いします。

herp.careers

イベント「Findyのサービスを支える、横断SREチームのマネジメントと技術の挑戦」を開催しました

こんにちは。ファインディのPlatform開発チームでSREを担当しているです。

ファインディでは、普段私たちが開発しているファインディのプロダクトの裏側や、開発メンバーが日々どのように働いているのかをお伝えするために、Findy Tech Talkという技術系のオフラインイベントを開催しています。

今回は、そのイベントの第二弾となる「Findyのサービスを支える、横断SREチームのマネジメントと技術の挑戦」を開催しまして、その当日のそれぞれの登壇内容について書いていこうと思います。

findy-inc.connpass.com

今回のイベントでは、Platform開発チーム(以下、SREチーム)が登壇し、チームのミッションや普段の業務内容について各々の立場から発表していきました。

本記事では、イベントでの登壇内容をベースに「横断SREチーム」の立ち上げ戦略や、AI(Devin/Claude Code)による運用自動化、未経験からのキャリア形成など、登壇者自身からダイジェスト版にてお届けしていきます!!

登壇内容

SREチームをどう作り、どう育てるか ― Findy横断SREのマネジメント

speakerdeck.com

SREチーム サブマネージャーの安達(@adachin0817)です。Findyのサービスを横断的に支えるSREチームの立ち上げから現在までの3年間における「技術的な挑戦」と「マネジメントのリアルな葛藤」の2つについてお話させていただきました。
SREチームは、この3年間で多岐にわたる基盤整備と改善を実行し、着実に土台を整えてきました。

  • 基盤のコード化・標準化
    • 全環境のTerraform import化や、GitHub Actionsのテンプレート化を実施。
  • オブザーバビリティと信頼性の向上
    • Datadogの導入や、全サービスにおけるSLI/SLOの計測。
  • セキュリティの強化
    • Shisho Cloud(CSPM)やTakumi(SAST/DAST)を導入し、SOC2 Type2への対応。
  • 開発体験の向上
    • 開発環境の改善に加え、AI(Devin等)を活用した運用・構築の自動化など、先進的な取り組みも行う。

また、技術面だけでなく、チームビルディングやタスク管理の苦労、そしてその解決策についてもまとめていきました。

サブマネージャーとしてはマネージャーの右腕となり、メンバーへの技術指導・リスクマネジメント(過稼働の防止など)・ロードマップの策定を担っています。 チーム結成当初は、ビジョンやミッションが抽象的だったり、誰がどのサービスの責任を持つかが不明確で属人化しやすいといった課題がありました。 そこで「SREよもやま会」を実施してチームの方向性やマインドセットを議論し、GitHubのカンバンやロードマップでタスクと優先順位を可視化・管理する改善を行いました。

去年から新サービスが増加し続ける中で、SREチームだけで全ての工数や問い合わせを抱え込むことには限界が見えてきました。
そこで今後は、SREチームが全てを巻き取るのではなく、各部署内でSREの知識や運用方法を展開・定着させるEnabling(SRE社内留学制度)を推進する方針へとシフトしていきます。
具体的には、ドキュメントや動画を用いた学習、Sandbox環境での実践(SRE社内留学制度)などを通じて各部門の自律性を高め、組織全体としてスケールできるSRE体制への成長を目指しています。

去年のチームの振り返りについては次のTechBlogに記載されていますので、ぜひご覧ください。

tech.findy.co.jp

Platform SREの軌跡:Terraform汎用化とAIで進めた「インフラ基盤」の構築と、その成果

speakerdeck.com

原からは、「Platform SREの軌跡:Terraform汎用化とAIで進めた「インフラ基盤」の構築と、その成果」と題して発表しました。

入社してから1年間で行った取り組みの中から、Terraform汎用モジュールとDevinを用いたAI活用でのトイル削減についてピックアップして紹介しました。

昨年ファインディがリリースした新サービスについて、品質を保ちつつスピード感を持ってインフラ環境構築を行う工夫を紹介しました。

SREチームが担当したサービスは次のとおりです。

  • Findy Conference
  • Findy AI+
  • Findy Team+ AIチャットボット
  • Findy ID
  • Findy Insights
  • アーキテクチャ壁打ちAI by Findy Tools

品質とスピードの両立を目指した「汎用モジュール」では、ファインディのプロダクトで頻繁に利用するリソースをモジュール化して、モジュールごとにパラメーターを指定すれば環境が立ち上がる仕組みを整備しています。

generic_terraform_module

汎用モジュールを使ったインフラ環境構築は、今では開発者自身に担当してもらうこともあり、SREチームのEnabling活動の一環となっています。より構築しやすい汎用モジュールにアップデートし続けていきます。

詳しい内容は、次のTechBlogにも記載されています。

tech.findy.co.jp

tech.findy.co.jp

もう一つ、Devinを使ったAI活用によるトイル削減についての事例を複数紹介しました。

例えば、SREチームではコーポレートサイトの運用も担当しており、会社概要や利用規約の変更依頼が来ることがあります。以前はソースコードを直接編集していましたが、現在はこれらの作業をDevinに任せています。

Slackのワークフローから申請するとDevinが自動起動する仕組みを整備しました。事業部からの依頼をワークフロー経由で受け付けることで、SREチームはPRレビューのみに注力でき、工数削減を実現しました。

devin_corporate

このように、汎用モジュールやAI活用でのトイル削減について紹介しました。

発表の最後では、ログ基盤の整備やAIOpsなど今後の取り組みについても触れました。これからも信頼性向上に向けたプラクティスを続けていきます。

フリーランスからSREへの転身 SREとしての第一歩:3週間の活動報告

speakerdeck.com

SREチームのもずます(@mozumasu)です。 フリーのインフラエンジニアからSREへの転身を果たし、入社後3週間の活動報告をさせていただきました。 フリーランスから正社員になって変化したことや、お気に入りの自動化の仕組みなどを紹介しました。

まず現状の把握として、Findy ToolsのTerraform構成に触れました。現在は汎用モジュールがなく、environmentsとmoduleで管理しており、環境ごとのtfファイルでmoduleを呼び出す構成になっています。

運用を楽にするための自動化も進んでおり、次のようなツールが組み込まれています。

  • Renovate: 依存関係の自動アップデート
  • tfcmt: PRに対してTerraform planの結果を自動コメント
  • Trivy: 脆弱性スキャン

この3週間で、主に2つの大きな取り組みを行いました。

  1. SLO定点観測会の改善

SREチームと各プロダクトのエンジニアで、隔週で「SLO定点観測会」を実施しています。 これはDatadogやGrafanaを見ながらサービスの状態(SLO、ステータスコード、レスポンスタイム、APM、インフラリソースなど)を確認し、SLI/SLOの達成状況を把握する会です。 以前は、ダッシュボードの画像をGeminiで画像解析し、その結果をNotionに自動記載するという運用をしていました。 しかし、この運用には次の課題がありました。

  • 画像から分かる情報が冗長に記載されてしまう
  • 重要な情報が埋もれやすい
  • 解析結果が誤っていることがある
  • 議事録の準備に工数がかかる

そこで手法を見直し、現在では「注視するべき部分(項目)のみを手動で記載する」というシンプルな形へと変更しました。

  1. DatadogのダッシュボードをClaude Codeで作成

現状、SLO、Synthetic Testing、Slack通知などはTerraformで管理していますが、ダッシュボードのレイアウトなどはTerraformの管理外になっています。既存のダッシュボードをエクスポートすると約2000行のJSONになり、非常に可読性が悪いという印象を受けました。 そこで今回、Claude Codeを使ってこれを解析し、HCL(Terraform)化を試みてみました。

結果として、HCLにしても約1500行と行数自体はそこまで劇的に減りませんでしたが、HCLであれば変数の参照ができるようになるため、ダッシュボードをコード管理するならHCL化するメリットは十分にあると感じました。

入社からの3週間で、Datadogの設定やSLO定点観測会の改善など、SREとしての第一歩を踏み出すことができました。 今後はセキュリティ周りの改善などにも力を入れていく予定です。

BEから未経験でSREへ:オンボーディングとトイル改善の記録

speakerdeck.com

SREチームの富田です。「BEから未経験でSREへ オンボーディングとトイル改善の記録」というタイトルで登壇予定でしたが、当日は諸事情により欠席となりました。

この記事では、発表予定だったスライドをもとに、SREとして未経験から立ち上がるまでの過程と、実際に取り組んだトイル改善の内容をお伝えします。

バックエンドエンジニア(BE)から未経験でSREへキャリアチェンジした背景と、入社してからの半年間で行った取り組みの中から、「SLO定点観測会」と「GitHub Actionsを用いたトイル削減」についてピックアップして紹介します。

BEとして働いていた時代、当時のCTOが自ら新サービスの環境構築やデプロイフロー改善を行う姿を目にしました。その経験から、アプリ開発にとどまらず開発環境そのものを整備し、エンジニアの開発生産性を支えたいと考えるようになりました。これがSREへ転向したきっかけです。

SREへ転向してから取り組んだこととして、1つ目は「SLO定点観測会」です。

SREチームの各担当と各プロダクトのエンジニアが隔週で集まり、DatadogやAmazon Managed Grafanaを見ながらアプリケーションの状態を確認する定点観測会を行っています。

この会でモデレータを務めることで、次のような学びを得ました。

  • 対話しながらDatadogを確認することで身についた、実践的なダッシュボードの読み方
  • 開発者の視点を聞きながら状況を判断することで得た、複数の角度からシステムを捉える力
  • 「なぜこの数値になっているのか」を問い続けることで養われた、分析的な視点

地道な積み重ねですが、SREとして考える力の土台になっていると感じています。

2つ目は、ファインディのサービスの一つ「Findy Conference」の運用で発生していたトイルの削減事例です。

Findy Conferenceはセッション終了時などに瞬間的なトラフィックが集中するため、事前にコンテナ数の調整が必要でした。

以前は本番環境のAWSマネジメントコンソールにて手動で作業しており、ペアオペ必須で毎回約1〜2時間弱もの時間がかかっていました。 このトイルを削減するため、GitHub Actionsのworkflow_dispatchとAWS CLIを活用し、GitHubの画面上からフロントエンド・バックエンド両方のコンテナ数を変更できる仕組みを構築しました。

これにより、約2時間かかっていた作業が数分へと大幅に短縮されました。さらに、本番環境での手動介入がなくなったことでヒューマンエラーの心配が解消され、SRE以外のエンジニアでも安全にコンテナ調整が可能な状態を実現しました。

詳しい内容は次のTechBlogで紹介しています。ぜひご覧ください。

tech.findy.co.jp

以上が、登壇で伝える予定だった内容です。BEからSREへ転身し、できることから着実にトイル削減に挑戦した記録が、同じような境遇の方の参考になれば幸いです。

まとめ

以上、SREチーム主催のFindy Tech Talk「Findyのサービスを支える、横断SREチームのマネジメントと技術の挑戦」での登壇内容となります。

イベント当日は多くの方に参加いただき、賑やかな中開催することができました。参加いただいたみなさん、本当にありがとうございました!

いただいたアンケート結果より、またブラッシュアップしたFindy Tech Talkをお届けできればと思います。

次回イベント開催の際はぜひお越しください!

現在、ファインディでは一緒に働くメンバーを募集中です。

興味がある方はこちらからご覧ください。 herp.careers

Findy AI Meetup in Fukuoka #4を開催しました

こんにちは。

ファインディ株式会社でテックリードマネージャーをやらせてもらってる戸田です。

生成AIを活用した開発支援ツールが開発者のワークフローに組み込まれつつある中、先日、福岡でFindy AI Meetupの第4回を開催しました!

findy-inc.connpass.com

当日参加くださったみなさま、ありがとうございました!

Findy AI Meetupとは?

ファインディ株式会社のエンジニアが主催する技術系のオフラインイベントです。

ファインディ株式会社では、生成AIやAIエージェントの活用を通じて開発生産性の向上を目指す取り組みを行っています。このイベントでは、ファインディのエンジニアが社内での実践事例を紹介するとともに、エンジニア同士がつながり、知見の共有や交流を目的としています。

まだ参加したことがない読者の方も次回開催には是非ご参加ください。

登壇内容

Agent Skills 入門

最初はフロントエンドテックリードの新福が、「Agent Skills 入門」と題して、最近の生成AIツールで話題のAgent Skillsについて登壇しました。

Agent Skillsは、SKILL.md に記載された再利用可能な知識や手順をAIエージェントが動的に呼び出す機能です。

2025年の10月にAnthropicがClaude Codeの新機能としてリリースし、同年12月にオープンスタンダードとして標準化が進められるようになりました。

agentskills.io

Agent Skillsは、

  • カスタムインストラクションと違って段階的に読み込まれる
  • カスタムスラッシュコマンドと違って人間だけでなくAIエージェントからも呼び出される
  • オープンスタンダードとして標準化されており、ツール間での相互利用が可能

といった特徴があり、注目を集めています。

VS Codeでも直近のアップデートでAgent Skillsが正式にサポートされました。Agent Skillsを主軸にした開発フローは今後のトレンドになると予想されます。

code.visualstudio.com

登壇では、Agent Skillsの作り方やプロンプトのコツなどに触れつつ、プルリクエストを作成するスラッシュコマンドにAgent Skillsを組み込む例を紹介しました。

今回作成したAgent Skillsの例は次のリポジトリで公開しています。こちらもご参照ください。

github.com

【Claude Code】Plugins作成から始まったファインディの開発フロー改革

次にテックリードマネージャーの戸田が、「【Claude Code】Plugins作成から始まったファインディの開発フロー改革」と題しまして、弊社の開発フロー改革と、それを実現させるためのPluginsについて紹介しました。

まず、弊社での生成AI活用の状況を紹介しました。

生成AIを活用して、アウトプット数が爆増していると思いきや、数値を計測してみると実はそうでもなかったということがわかりました。これに関しては以前にも紹介しています。

tech.findy.co.jp

体感値と実数値のズレを発見したので、その原因を深掘って調べていきました。すると特定のメトリクスの数値が悪化していることがわかりました。そこから深掘って調査を進めていくと、Pull requestの質が悪化しているということが発覚しました。

生成AIが作成したコードの責任は人間にあります。しかし実状は、内容を理解しないままレビュー依頼を出しており、その結果リードクラスのエンジニアのレビュー負荷が上がり、結果的にリードタイムが悪化していました。

この現状を踏まえ、生成AIを活用した開発フローを見直して、再定義することに着手しました。そのためには一定のルールやガイドライン、実行するコマンドを標準化することが必要です。これを実現するために、Claude CodeのPluginsを活用しました。

弊社ではPlugins用のリポジトリの中に開発全般、フロントエンド、サーバーサイド、インフラといったカテゴリごとにPluginsを分けて作成しています。利用側はリポジトリごとに必要なPluginsを選んで有効化するだけで、簡単に利用することができるようになります。

Pluginsのリポジトリの中身を更新した場合、利用側で更新用のコマンドを実行するだけで、最新の内容で利用することができます。スキルやカスタムコマンドなどの変更を即座に開発組織全体に反映させることが可能になります。

開発組織の開発フローやスキルを一元管理、標準化したいときなどに活用してみてください。

実際に作成したPluginsの内容や、Pluginsの使い方などは次のスライドをご覧ください。今回の登壇と資料が皆さんの参考になると幸いです。

懇親会

登壇発表後は参加者の皆さんと懇親会を開催しました。

懇親会では「パックマンルール」をお願いしています。懇親会で誰かと話すときは新しい人が会話に入れるように、一人分のスペースを空けて話しましょう。というルールです。

パックマンルール

生成AI活用における悩みや知見を意見交換しました。

まとめ

Agent Skillsの活用事例とPluginsを使った開発フロー標準化の実践例を紹介しました。当日、イベントに足を運んでくださった参加者のみなさん、本当にありがとうございました。頂いたアンケート結果を、次回以降の参考とさせていただきます。

そして早くも次回開催が決定しました!次回は2026年4月15日(水)に開催予定です。次回のテーマは「エンジニア育成」です。4月は出会いの季節。新しい仲間と一緒に、エンジニア育成について考える機会にできればと思います。

findy-inc.connpass.com

残念ながら今回のイベントに参加出来なかったみなさんも、次回イベント開催時には是非ご参加ください!

現在、ファインディでは一緒に働くメンバーを募集中です。

興味がある方はこちらから ↓ herp.careers

2年半かけて作ってきたスタートアップのSRE 〜体制編〜

こんにちは。ファインディのPlatform開発チームでSREを担当している大矢です。

2026年はファインディのSREについて1ヶ月に1本ペースで発信していきます。今回はその第1弾として、ファインディにおけるSREの体制についてご紹介します。

この記事では、SREチーム(現在のPlatform開発チーム)がどのように発足し、現在どのような体制で運用しているのかをお伝えします。SREに興味がある方、特にこれからSREを目指す方に読んでいただけますと幸いです。

目次

はじめに

2026年1月現在、ファインディでは「Platform開発チーム」が全社横断のSREの役割を担っています。

このチームは、ファインディが提供する複数のプロダクトに対して横断的に信頼性を向上させ、開発チームが事業成長に関わる開発に集中できるような仕組みを構築・提供することを目指しています。

現在は5名のSREメンバーで構成されており、各プロダクトの開発チームと連携しながら、環境の整備や運用改善、ファインディ全社へのSREのイネーブリングに取り組んでいます。

Platform開発チームのSREとEmbedded SREの役割分担

ファインディのSRE体制には、「Platform開発チームのSRE」と「Embedded SRE」という2つの役割があります。

Platform開発チームのSREとは

ファインディで単に「SREチーム」といった場合、SREメンバーが所属するPlatform開発チームを指します。私たちはこのチームに所属しています。

私たちのチームではSREとPlatform Engineeringを推進しており、弊社内では「横断SRE」や「Platform SRE」と呼ばれることもあります。

私たちは「SREの文化を組織全体に根付かせ、開発チームが自律的にSREを実践できるように支援する」というビジョンを掲げています。このビジョンについては別の機会に詳しく紹介したいと思います。

なお、ローンチから日が浅いプロダクトなど、プロジェクト規模が比較的小さいプロダクトには後述のEmbedded SREが在籍していないため、Platform開発チーム/SREがプロダクト固有のタスクも含めて対応しています。

Embedded SREとは

Platform開発チームのSREメンバーとは別に、各プロダクトの開発チームには「Embedded SRE」と呼ばれるメンバーが在籍しています。

Embedded SREは、SREチーム発足前から各プロダクトの開発チーム内でSRE的な立ち回りをしていたメンバーです。Platform開発チーム発足後の現在でも、プロダクトに特化したタスクについては引き続き担当しています。

役割の違い

  • Platform開発チームのSRE: プロダクト横断的な信頼性向上、共通基盤の整備
  • Embedded SRE: 特定プロダクトに特化した信頼性向上、プロダクト固有の課題対応

この2つの役割が連携することで、全社的な視点とプロダクト固有の視点の両方から、信頼性の向上に取り組んでいます。

Platform開発チームとEmbedded SRE

SREチームの発足まで

SREがいなかった時期(〜2023年8月)

実は、ファインディには2023年9月までSREは1人も在籍していませんでした。各プロダクトの開発チーム内で、クラウドやインフラに詳しいメンバーがSRE的な役割を担っていました。

プロダクト開発をメインにしながら、障害対応やインフラの改善も同時に行うという状況が続いていました。

サービスが成長するにつれて、信頼性向上やクラウド・インフラの整備がより重要になり、専門的に取り組む必要性が高まっていきました。

1人目SRE入社後(2023年9月〜2024年3月)

2023年9月、ファインディに1人目のSREが入社しました。ただし、最初はチームではなく「1人SRE」としての活動でした。

この時期は、ファインディの新規サービスの立ち上げのための環境構築や、それまで実現したくても手の付けられなかった課題に対応していきました。

SREチーム発足後(2024年4月〜)

2024年4月、2人目のSREメンバーが加わり、正式に「SREチーム」が発足しました。1人から2人になったことで、チームとしての活動が本格的にスタートしました。

その後、メンバーが徐々に増え、2026年1月現在では5人体制となっています。組織の成長に伴い、チーム名も「Platform開発チーム」に変更されました。

チームの変化

2024年

チーム発足時からしばらくの間、SREチームはマネジメント経験のあるシニアメンバーのみで構成されていました。当時はチームマネジメントは必要最小限にとどめ、マネージャーもプレイングマネージャーとしてメンバーと同等のタスクを担当していました。

タスク管理には「かんばん」を利用し、各自で優先順位付けとチーム内外の合意、タスクのクローズまでおこなっていました。

また、この年の12月にSREチーム初のジュニアメンバーがチームにジョインしました。

2025年

2025年は、ファインディがAI関連の新プロダクトを中心に多くのリリースをおこなった年でした。新プロダクトのリリースに伴い、SREチームには環境構築やインフラ整備の依頼が集中しました。

この状況に対応するため、構築作業の短縮化とトイルの削減が急務となりました。具体的には、新環境を3日で提供できるようTerraformのモジュールを汎用化し、Terraform Testの導入による環境構築の信頼性向上も実現しました。

tech.findy.co.jp tech.findy.co.jp

そしてDevinを使ったユーザー管理業務の自動化など、さまざまな効率化施策に取り組みました。

tech.findy.co.jp

その他、WordPressのShifter移行やFlatt Security様提供のTakumi導入など、セキュリティ強化にも注力しました。

tech.findy.co.jp tech.findy.co.jp

この年にもジュニアメンバーが増え、チームの育成やナレッジ共有の重要性も高まりました。 ファインディでは2026年もより多くの成長を目指しており、チームとしての立ち回りの変化も求められています。

2026年以降

2026年1月現在、Platform開発チームはシニア2名、ジュニア3名の5人体制で運用されています。

チーム運営の面では、これまでの「かんばん」でトイルや細かなタスク管理をおこない、構築や1ヶ月以上かかるタスクはロードマップを引くようになり、中期的な視点でSRE活動を計画できるようになりました。

2026年度も引き続きプロダクトが増え続ける見込みです。

現在の体制でファインディの全てのプロダクトを見ていくことは難しくなるため、環境構築やプロダクトのクラウド運用を開発チーム主体でおこなえるよう、ファインディ全体へのSRE文化の浸透を推進します。

新規プロダクト立ち上げ時や環境追加時には、開発チームの担当メンバーに主導していただき、Platform開発チームはサポート役として次のような支援をおこないます。

  • 簡単に新規環境を構築するための仕組みの提供(汎用Terraformモジュール、環境構築のClaude CodeのPlugin)
  • 構築・運用のレクチャー

これらの施策により、SREが環境構築を直接おこなうのではなく、開発チームが自律的に構築・運用できるような仕組み作りとイネーブリングに注力していきます。

Platform開発チームの移り変わり

まとめ

ファインディのSREは、2023年9月の1人目入社から始まり、約2年半で5人体制のPlatform開発チームへと成長してきました。

Platform開発チーム/SREとEmbedded SREが連携することで、全社的な視点とプロダクト固有の視点の両方から信頼性向上に取り組んでいます。まだまだ発展途上のチームですが、これからもファインディのサービス成長を支えるべく、日々改善を続けています。

ファインディでは一緒に会社を盛り上げてくれるメンバーを募集中です。興味を持っていただいた方はこちらのページからご応募お願いします。

herp.careers

【Findy Tech Talk #1】 「開発メンバーが語るFindy Conferenceの裏側とこれから 」を開催しました

こんにちは。

ファインディ株式会社でソフトウェアエンジニアをしている西村です。

普段私たちが開発しているファインディのプロダクトの裏側や、開発メンバーが日々どのように働いているのかをお伝えするために、Findy Tech Talkという技術系のオフラインイベントを開催しています。

その第一弾となる 「開発メンバーが語るFindy Conferenceの裏側とこれから」を開催しました!

findy-inc.connpass.com

今回は3名が登壇し、Findy Conferenceを支える技術基盤(受付システム・GraphQL設計・権限管理)、開発前に「適切なツッコミ」を入れて最速で価値を届けるアプローチ、そしてFindy初のモバイルアプリをReact Nativeで立ち上げた経緯について話しました。

この記事では、各登壇の内容をダイジェストでお届けします。

登壇内容

Findy Conferenceを支える技術基盤の裏側

西村は「Findy Conferenceを支える技術基盤の裏側」と題して、話しました。

Findy Conferenceとは、カンファレンスの準備・開催・運営の管理プラットフォームであり、3つの立場が異なるユーザーが使うシステムです。

  • 主催者
  • 参加者
  • スポンサー企業

異なる立場のユーザーが使うシステムであるため、各ユーザーに応じた機能を提供しつつ、円滑なカンファレンス運営を支援することが求められます。

カンファレンスを開催するまでにある課題を3つに絞って紹介します。

1つ目は、ネットワークが不安定でも止めない参加者受付機能です。

当日の会場では常にネットワークが安定しているとは限りません。例えば、多数の参加者が一斉にWi-Fiへ接続を試みるため、ネットワークが不安定になりがちです。

参加者の入場処理が失敗してしまい、記録が正しく行えなくなります。また、受付スタッフは通常の受付業務ができなくなり、カンファレンスの運営に影響が出てしまう。

そこで、Findy Conferenceでは、受付した参加者のデータをLocalStorageに保存する設計を採用しました。

navigator.onLineでネットワーク接続を検知し、復旧次第バックエンドへ同期する仕組みです。

ネットワークが不安定な環境でも、受付業務を止めることなくスムーズに入場記録を行えるようになりました。

Findy Conferenceの受付機能のシーケンス図

2つ目は、Findy Conferenceに合うGraphQLスキーマ設計についてです。

冒頭で書いた通り、3つの異なる立場のユーザーが存在します。

Findy Conferenceでは、主催者・参加者・スポンサー企業の画面をサブドメインで分けています。

そのため、GraphQLのスキーマ設計においても、各ユーザーが必要とするデータを効率的に取得・権限管理できるように工夫が必要でした。

そこで、Findy Conferenceでは、次のような設計方針を採用しました。

Findy ConferenceのGraphQL構成図

このスキーマ設計によって、後述する権限管理を容易にし、各ユーザーが必要とするデータを効率的に取得できるようにしています。

3つ目は、GraphQLでどのように権限管理するのかについてです。

Findy Conferenceでは主催者画面にユーザーロールごとに権限管理しています。

GraphQLではカスタムディレクティブを使うことで簡単に権限管理をすることができます。

Findy Conferenceでは@authのディレクティブを使い、次のように権限管理を表現しています。

module Types
    module Admin
      class Conference < Types::Admin::BaseObject
        field :id, Int, null: false
        field :conference_participated_users,
              Types::Admin::ConferenceParticipatedUser.pagination_type,
              directives: { ::Directives::Admin::Auth => { roles: [FULL_ACCESS, VIEW_ONLY] } }
    end
  end
end

このRubyコードをGraphQLのスキーマに変換すると次のものになり、@authのディレクティブが使われていることを確認できます。

"""
カンファレンスID
"""
id: Int!

"""
カンファレンス参加者情報
"""
conferenceParticipatedUser(

"""
カンファレンス参加者ID
"""
id: Int
): ConferenceParticipatedUser @auth(roles: ["full_access", "view_only"])

以上、3つの課題をもとに、Findy Conferenceをどう開発してきたかを少しでも伝われば幸いです。

今後もカンファレンスを裏から支え続けるプロダクトとして成長していきます。

最速で価値を出すためのプロダクトエンジニアのツッコミ術

エンジニアマネージャーの大原が「最速で価値を出すためのプロダクトエンジニアのツッコミ術」と題し、迅速にユーザーに価値を届けるための開発前のアプローチについて紹介しました。

迅速にユーザーへ価値を届けるには、開発前にロードマップや企画に対して「適切なツッコミ」を入れることが重要だと思います。 ツッコミなしで進めると「機能が増えてリリースが遅れる」「使われない機能になる」といった問題が生じてしまいます。

そのツッコミを入れる際の重要な観点として、2つの視点を紹介しました。

1つ目は「目的達成のための最小工数になっているか」です。 要望があったときに、実装を想像して、仕様を分解し、どれくらい工数がかかるかを考えます。 その上で、本当に今必要か、使用頻度は高いかなどを検討し、仕様を最小限必要なものにブラッシュアップしていきます。 具体例として、Findy Conferenceでは、参加申込→当日運営→運用・拡大と機能を最小限にして段階的にリリースすることで、短期でのリリースを達成しました。

2つ目は「三方よしになっているか」です。 施策や機能を考えるときに、ユーザー、自社、関係者にとって良いものかを確認し、自社都合のみの施策や利害不一致を避けることが大事です。 ユーザー体験が向上し、その結果事業にインパクトが出るような施策が理想だと考えています。

最後に、ツッコミの質を高めるために大事なこととして、次の3つを挙げました。

  • 仕様・実装を把握し、技術的な制約を即座に指摘出来るようにする
  • ユーザーの声を聞くことで、ユーザー課題の解像度を上げる
  • 事業モデルを理解することで、事業インパクトを理解出来るようにする

今後もこういった観点を大事にしながら、最速で価値のあるサービスを提供していきたいと思います。

ゼロから始めた Findy 初のモバイルアプリ開発

モバイルエンジニアの加藤が「ゼロから始めた Findy 初のモバイルアプリ開発」と題し、当社初のモバイルアプリ「Findy Events」の立ち上げについて紹介しました。

まず、私達がどのような思想でモバイルアプリ開発を始めるに至ったのか、その背景についてです。

AIの進化が目覚ましい昨今だからこそ、オフラインの場でしか手に入らない生きた情報や、かけがえのないつながりがあると考えました。

そこで、「オフラインにおけるつながりを最大化し、エンジニア同士の知識・経験の共有を促進する」ことをモバイルアプリが提供する本質的な価値と位置づけました。

次に、このアプリを0→1で立ち上げるために挑戦した具体的なプロセスについて話をしました。

開発当初、社内にモバイルアプリ開発の実績がなく、現役のモバイルエンジニアも自身一人だけという状況でした。 そのため、要求&要件定義や技術選定だけでなく、社内での開発環境・管理ルールの策定といった土台作りから始める必要がありました。

要求&要件定義では、エンジニアとして、企画のすり合わせから、UI・UXの議論まで深く入り込み、徹底してモバイルアプリならではの体験作りに拘りました。

これは、エンジニア向けのプロダクトを開発しているファインディだからこそ、利用ユーザー目線での解像度の高い意見を出すことができたのだと思います。

また、モバイルアプリ開発のためのメインフレームワークの選定についても紹介しました。

チーム全体のリソースを鑑みて、Cross Platformによる開発を前提としたものの、「Flutter」と「React Native」のどちらを選定すべきなのかは非常に悩んだポイントです。

次のように、国内での採用事例数やモバイルエンジニアとしての習熟のしやすさなど、いくつかの指標を比較することから始めましたが、最終的には「組織のアセット」×「モバイルエンジニアとしての自身のナレッジ」を活かせる「React Native」を採択しました。

Cross Platform Frameworkの比較

この選定により、立ち上がりに苦労した部分もありましたが、次の2点のような大きな収穫があったため、Betterな選択ができたと考えています。

  • Webフロントエンドの有識者による質の高いレビューを通じて、多くの学びを得ることができた
  • Webフロントエンドと親和性の高い技術の理解が進んだことで、他のWebフロントエンドのコードが読めるようになった

また、2025年12月に、Android版をリリースし、「Findyユーザー感謝祭2025〜今年の"しくじり"を供養しよう〜」で実際に触って頂きました。

直接、ユーザーの操作を見たり、感想やご意見を頂けたことで、「伸びしろ」を感じることができました。

今後は、「ユーザーが迷わないUI・UXを突き詰めて、その利便性から、自然とアプリを利用してもらえる」そんなアプリへと、成長させていきたいと考えています。

まとめ

今回のFindy Tech Talkでは、Findy Conferenceを支える技術基盤、プロダクトエンジニアとしてのツッコミ術、そしてモバイルアプリ開発の立ち上げについてお話ししました。

当日、イベントに足を運んでくださった参加者のみなさん、本当にありがとうございました。頂いたアンケート結果を、次回開催の参考とさせていただきます。

残念ながら今回のイベントに参加出来なかったみなさんも、次回イベント開催時には是非ご参加ください!

現在、ファインディでは一緒に働くメンバーを募集中です。

興味がある方はこちらからご覧ください。 herp.careers

「開発生産性」に関する実態調査レポート概説#5 なぜDevExは日本で知られていないのか ── 認知度4.9%が語る未開拓領域

こんにちは。Findy Tech Blog編集長の高橋(@Taka-bow)です。

DevEx(開発者体験)の認知度はわずか4.9%。この数字もまた、日本の開発現場が直面する課題の一つであり、同時に大きな伸びしろを示しています。

前回の記事では、Visual SourceSafe 15.8%という数字から見える技術格差と、AI時代に広がる生産性格差について取り上げました。今回は、その技術格差の背景にあるDevExに焦点を当て、日本の開発者が本当に求めているものを考察します。

【調査概要】
  • 調査対象:ソフトウェア開発(組み込み開発を含む)に直接関わるエンジニア、プロダクトマネージャー、プロジェクトマネージャー、エンジニアリングマネージャー、開発責任者など
  • 調査方法:インターネット調査
  • 調査期間:2025年4月2日(水)~2025年5月21日(水)
  • 調査主体:ファインディ株式会社
  • 実査委託先:GMOリサーチ&AI株式会社
  • 有効回答数:798名(95%信頼区間±3.5%)
  • 統計的検定力:80%以上(中程度の効果量d=0.5を検出)
  • 調査内容:
    • 開発生産性に対する認識
    • 開発生産性に関する指標の活用状況
    • 開発生産性に関する取り組み
    • 開発環境・プロセス評価
    • 組織文化と生産性

DevExとは何か

日々の仕事の「体感」に着目する

DevEx(Developer Experience)とは、開発者がソフトウェア開発で得る体験の質を指します。開発者満足度調査とは異なり、開発生産性に直結する「体感」に着目する点が特徴です。

たとえば、次のような場面を思い浮かべてください。

  • ビルドやテストの結果を待っている時間
  • 必要な情報がどこにあるか分からず探し回る手間
  • 会議の合間で集中が途切れる感覚
  • コードレビューの返答がなかなか来ない状況
  • 複雑なコードを読み解くのに消耗する時間

これらは開発者なら誰しも覚えがある場面ですが、DevExはこの「体感」を改善可能な課題として扱います。

2023年に発表された論文「DevEx: What Actually Drives Productivity」(著者:Abi Noda、Margaret-Anne Storey、Nicole Forsgren(DORA創設者)、Michaela Greiler)では、DevExを構成する3つの中核的な次元が提唱されています。

https://dl.acm.org/cms/attachment/html/10.1145/3595878/assets/html/noda1.png

DevExの3つの次元

次元 説明
Feedback Loops(フィードバックループ) 開発者が行動に対する応答を受け取る速度と質 ビルド時間、テスト実行時間、コードレビューの待ち時間
Cognitive Load(認知負荷) タスク遂行に必要な精神的処理量 ドキュメントの質、コードの複雑さ、ツールの習得難易度
Flow State(フロー状態) 完全に集中して作業に没頭できる状態 中断の頻度、会議の多さ、自律性の度合い

冒頭で挙げた場面は、この3次元に対応しています。

  • ビルドやテストの結果を待っている時間 → フィードバックループ
  • 必要な情報がどこにあるか分からず探し回る手間 → 認知負荷
  • 会議の合間で集中が途切れる感覚 → フロー状態
  • コードレビューの返答がなかなか来ない状況 → フィードバックループ
  • 複雑なコードを読み解くのに消耗する時間 → 認知負荷

3次元フレームワークについては、過去の記事でも詳しく解説しています。興味のある方はあわせてご覧ください。

DevExが提唱された背景

DevEx論文の著者には、DORAの創設者であるNicole Forsgren氏が名を連ねています。DORA指標は組織レベルのデリバリーパフォーマンスを測定できますが、個々の開発者が日々の業務で何に困っているかは見えません。DevExは、この視点を補う「開発者中心のアプローチ」として提唱されました。

加えて、DevExに取り組むことは、開発者が所属する組織全体の力を引き上げることにもつながります。

  • 【エンジニアの採用・定着】開発環境や働きやすさは、エンジニアが職場を選ぶ際の判断材料の一つです。DevExの改善は、人材の採用や定着にも影響します。
  • 【生産性との関連性】前述のDevEx論文では、開発者が良い体験をしている組織ほど、実際の開発生産性も高いと報告されています。DevExは「開発者を甘やかす」のではなく、組織のパフォーマンスを最大化するための投資です。

DevEx認知度4.9%が示す日本の現状

開発生産性指標の認知度と活用度

エンジニアの採用競争力にも、組織の生産性向上にも直結するDevEx。しかし日本での認知度はわずか4.9%です。開発者が日々抱える課題を解決するフレームワークが、ほとんど知られていません。

調査では25種類の開発生産性指標について認知度と活用度を調べています。何が知られていて、何が知られていないのか。その差が、日本の開発現場の現状を映し出しています。

開発生産性指標の認知度・活用度(全25指標)

指標 認知度 活用率
バグの数 58.1% 31.8%
残業時間 53.3% 21.9%
コードの行数 52.9% 22.9%
タスクの完了数(スプリントの達成率に含まれることもある) 48.1% 30.1%
テストカバレッジ 34.1% 18.2%
バグ修正のスピード(修正にかかる時間) 27.7% 9.9%
顧客からのフィードバック 26.1% 10.9%
コミット数 24.7% 6.9%
タスクの割り当て数(アサインされた数と完了した数の比率) 23.7% 9.9%
コードレビュー効率(レビューに要する時間や改善の質など) 20.3% 10.2%
ベロシティ(ストーリーポイントの消化速度) 17.7% 7.1%
平均復旧時間(MTTR – Mean Time to Recovery)(単独計測) 15.7% 3.6%
デプロイ頻度(単独計測) 13.9% 3.4%
チームの幸福度(eNPSなど) 11.3% 4.5%
変更リードタイム(単独計測) 10.0% 3.1%
技術的負債の定量評価(コードの複雑性などを数値化) 7.8% 2.8%
コードのリワーク率(修正が必要になったコードの割合) 6.5% 2.9%
プルリクエストサイクルタイム(PRの作成からマージまでの時間) 6.0% 1.6%
デベロッパーエクスペリエンス(DevEx) 4.9% 2.1%
変更失敗率(単独計測) 4.6% 1.8%
Flow Metrics(開発プロセス全体の流れを可視化する指標) 4.4% 1.9%
Four Keys / DORAメトリクス(変更リードタイム、デプロイ頻度、デプロイ失敗時の復旧までの時間、変更失敗率) 4.3% 2.4%
PSP(Personal Software Process) 3.9% 1.8%
SPACEフレームワーク(開発者の満足度、パフォーマンス、コラボレーションなど) 3.8% 1.8%
DX Core 4™(DORA、SPACE、DevExを統合したフレームワーク) 3.1% 1.3%
知らない / 聞いたことがない 14.0% 18.2%
その他(具体的に) 0.1% 0.1%

(N=798)

上位4指標(バグの数、残業時間、コードの行数、タスク完了数)は認知度50%前後で、いずれもアウトプットを直接カウントする指標です。これらは測定しやすい反面、開発者が日々感じている「ビルドが遅い」「情報が見つからない」「集中できない」といった体験とは直接結びつきません。

一方、DevExの認知度は4.9%に留まっています。開発者の体験を改善すれば生産性が上がるという考え方は、まだ日本では広まっていないようです。

興味深いのは、DORA指標を構成する「デプロイ頻度」「変更リードタイム」「平均復旧時間(MTTR)」「変更失敗率」の認知度です。個別指標としては4.6%〜15.7%の認知度があるにもかかわらず、「Four Keys / DORAメトリクス」というフレームワーク名の認知度は4.3%に留まっています。指標は知っていても、体系化されたフレームワークとしては認識されていないのかもしれません。

なぜDevExは日本で知られていないのか

先ほどの表を見ると、認知度の高い指標には共通点があります。「バグの数」「残業時間」「コードの行数」「タスク完了数」はいずれも数えやすく、報告しやすい指標です。一方、DevExが扱う「ビルドを待つストレス」「情報を探す手間」「集中が途切れる感覚」は、数値化しにくく、経営層への説明も難しい。測れないものは改善対象になりにくいのかもしれません。

もう一つ考えられるのは、開発手法との相性です。調査では、ウォーターフォール開発が36.8%、開発手法が「よくわからない」が18.2%で、合わせて55%を占めました。DevExはアジャイルやDevOpsの反復的な開発と親和性が高く、フィードバックを素早く得て改善を繰り返す文化が前提にあります。半数以上の開発現場では、そもそもDevExが機能する土壌がない可能性があります。

加えて、日本の産業構造も影響しているかもしれません。受託開発では「納品」がゴールになりやすく、開発者の体験は顧客への請求項目に含まれません。自社プロダクト開発と比べ、DevExへの投資が正当化されにくい構造があると考えられます。

CI/CDとドキュメンテーションに見る課題

DevExが知られていないということは、開発者の体験を改善するという発想自体が広まっていないことを意味します。その影響は、開発基盤の満足度に表れています。第4回でも取り上げたデータをDevExの視点で見直してみます。

開発基盤の満足度とDevExの対応

項目 満足度 DevExの次元
CI/CDパイプライン 14.2% フィードバックループ
ドキュメンテーション 17.5% 認知負荷
タスク管理システム 18.2% 認知負荷
コードレビュープロセス 19.2% フィードバックループ
開発環境整備 24.7% 認知負荷

(N=798、「満足」「やや満足」の合計)

CI/CDパイプラインの満足度14.2%は、ビルドやテストの結果を待たされている開発者が多いことを示唆しています。これはDevExの「フィードバックループ」の課題です。

一方、ドキュメンテーションの満足度17.5%は、新メンバーのオンボーディングに時間がかかったり、「あの人に聞かないと分からない」状態が続いたりする形で現れます。これはDevExの「認知負荷」そのものであり、開発者が本来のコーディングに集中できない状況を生んでいます。

阻害要因をDevExの視点で読み解く

開発基盤だけでなく、開発現場で日常的に挙がる「困りごと」にも、DevExの課題は潜んでいます。第3回で取り上げた「開発生産性を阻害する要因」をDevExの視点で整理すると、次のような対応関係が見えてきます。

阻害要因 回答率 DevExの次元 影響
不明確な要件 53.5% 認知負荷 何を作るべきか分からず、確認や手戻りに時間を取られる
会議が多い 38.7% フロー状態 集中できる時間が確保できない
コミュニケーションの問題 33.6% フィードバックループ 必要な情報が適時に得られない
技術的負債 30.5% 認知負荷 複雑なコードの理解に時間がかかる

日本の開発現場が抱える課題の多くはDevExの問題として捉えられます(影響はDevExだけに留まりませんが)。「不明確な要件」と「技術的負債」は認知負荷を高め、「コミュニケーションの問題」はフィードバックループを遅らせ、「会議が多い」はフロー状態を妨げます。

まとめ

今回は、DevExの認知度4.9%という数字から、日本の開発現場の現状を読み解きました。従来型指標(バグの数、残業時間など)が50%以上の認知度を持つ一方で、開発者の体験に着目するDevExは浸透していません。

CI/CDパイプラインの満足度14.2%、ドキュメンテーションの満足度17.5%という数字は、フィードバックループや認知負荷に課題があることを示しています。また、「不明確な要件」「会議が多い」といった阻害要因も、DevExの3次元で整理すると改善の糸口が見えてきます。

認知度の低さは、裏を返せば伸びしろの大きさです。開発者の体験を改善することが、結果として組織のパフォーマンス向上につながります。

お知らせ

Development Productivity Conference 2026」が2026年7月22日〜23日に開催されます。継続的デリバリー(CD)の先駆者であり『継続的デリバリーのソフトウェア工学』著者のDave Farley氏が初来日。日本からはテスト駆動開発の第一人者・和田卓人氏が登壇します。

prtimes.jp


ファインディでは一緒に会社を盛り上げてくれるメンバーを募集中です。 興味を持っていただいた方はこちらのページからご応募お願いします。

herp.careers