Article

技術スタックで開発会社を選定する際の考え方

高田晃太郎
技術スタックで開発会社を選定する際の考え方

FinOps Foundationの報告では、企業のクラウド支出の平均28%が無駄になっている¹とされます(別調査では32%との報告もあり²)。別の軸では、DORAレポートが示すエリートチームは1日あたり複数回のデプロイを維持し、変更失敗率を0〜15%に抑え、平均復旧時間を1日未満に収めています³。つまり、技術スタックの選定と運用設計が、コスト最適化とデリバリー速度の両方を左右します。GitHub OctoverseでもTypeScriptなど一部言語・フレームワークの集中が続き⁴、採用市場やツールエコシステムの偏りが加速しています。各種データを読み解くと、単にモダンな技術を並べるだけでは不十分で、スタックの健全性と移行可能性を同時に見抜ける開発会社かどうかが成果を分けます。流行語に引き寄せられやすい場面ほど、意思決定をビジネス要件に翻訳し直すことが有効です。そこで本稿では、開発会社の選定基準としてCTO・エンジニアリングリーダーが現実的に使える評価軸を、実例と数値の手触りで再構成します。

技術スタック選定はビジネス要件の翻訳作業である

技術スタックの議論は、往々にして言語やフレームワークの好みの延長に見えます。しかし成果物が収益や顧客価値に寄与しないなら、選定は失敗です。まず確認すべきは、プロダクトが達成すべき非機能要件です。ピークトラフィックの規模、レイテンシの許容値、可用性目標、変更頻度、規制対応の要否などを、SLO(Service Level Objective:サービスの品質目標)として表現し、測定可能な状態に落とします。例えばECのイベント対応でp95(全リクエストの95%が収まる値)の応答時間を300ms以内に保ちたいのか、B2B基幹でSLA99.9%を年中無休で維持したいのかで、適したスタックは変わります。モノリスで出発して短いリードタイムを取りに行くのか、初手からサービス分割に投資するのかも、組織のデプロイ能力と運用費用のバランスで決まります。

この翻訳が甘いと、後工程で余計な分散システムの複雑性を背負い、チームの認知負荷が上がります。反対に、要件が明確なら、たとえばNext.jsやRailsのようなフルスタックフレームワークでTime to First Value(最初の価値提供までの時間)を短縮する判断にも自信が持てます。DORA(DevOps Research and Assessment)の四指標(デプロイ頻度、変更リードタイム、変更失敗率、MTTR:平均復旧時間)をKPIとして先に合意し、開発会社と共通の計測基盤(Observability:可観測性、テスト、CI/CD)を契約に織り込むと、会話はフレームワーク論争から成果論へと移ります。ここまで定義しておくことが、技術スタック選定の実務的な選定基準になります。

スタックの健全性を測る視点は市場・成熟度・運用の三位一体

判断材料が技術的魅力だけに偏ると、案件終盤で人が集まらない、監視が貼れない、長期の保守でコストが跳ねるといった現実に直面します。まず、採用市場の厚みを冷静に確認します。GitHubや求人データでコミュニティ規模と経験者の賃金帯を見れば、教育コストと調達リードタイムの当たりがつきます。TypeScriptやGoは貢献者数こそ多い一方で、フロントエンドやクラウドネイティブ運用の経験値が必要な場合は、候補者の実務幅の見極めが品質を左右します。レガシー技術に見えても、Javaや.NETは保守のスケールが効きやすく、規制産業では依然として強力です。⁵ この「人が確保できるか」は、開発会社を比較するうえで最優先の選定基準になりえます。

次に、成熟度とエコシステムの更新速度を見ます。LTS(Long-Term Support:長期サポート)のサイクル、セキュリティアドバイザリの頻度、主要ライブラリのメンテ状況を俯瞰すれば、アップグレードの苦労を見積もれます。フレームワークの破壊的変更が年単位で続く場合、長寿命システムへの適用は慎重さが必要です。逆に、変化が遅すぎると新しい要件への適応力が落ちます。重要なのは、変化の速さそのものではなく、プロジェクトが吸収できるレートマッチングになっているかどうかです。ここも、開発会社のアーキテクチャ方針と技術スタックの選定基準が噛み合っているかを見ます。

さらに、運用の見通しを立てます。監視・トレーシング・ログ集約の標準化(OpenTelemetryなど)の容易さ、デプロイ戦略(Blue/GreenやCanary:段階的・比較的に新バージョンを展開する手法)の適用性、バックアップとリストアの現実的な演習方法が描けるかを、選定段階で検証します。FinOps(クラウド費用最適化)の観点では、言語ランタイムやデータストアの特性がインフラコストに直結します。高スループットのI/Oが支配的ならGoやJavaが安定しやすい一方、開発スピード重視なら型安全なTypeScriptモノレポで品質と速度を両立しやすい、といった折衷も現実的です。ここでの落とし穴は、「理論上速い」よりも「運用で速い」ことを証明できるかどうかです。2週間の技術スパイクでSLO準拠とコスト推定を出すだけでも、失敗確率は目に見えて下がります。結果として、技術スタックの健全性を運用前から客観評価でき、開発会社の力量も測れます。

アーキテクチャとの相性と移行戦略を同時に設計する

外注の成否は、初期アーキテクチャの一手と、そこからの移行パスでほぼ決まります。大規模トラフィックが見込めるのにデータベースのスケール戦略が曖昧なら、どんな言語でも詰まります。逆に、利用者が限定的なB2Bで初手からマイクロサービスに細分化すると、運用コストが利益を圧迫します。一般に、チャネルやSLOが固まっていない初期フェーズはモノリスで機能速度を取り、境界が見えた段階でチーム境界に合わせてサービス分割する方が、総コストが下がりやすい。開発会社に求めたいのは、選好の宣教ではなく、アーキテクチャの可逆性(やり直し可能性)をどう担保するかの提案です。

可逆性を高める具体策は、インフラをコード化し、観測可能性を先に敷くことです。Terraformなどで再現可能な環境を持ち、メトリクスとトレースでボトルネックを透明化すれば、後戻りの判断コストが下がります。DBの選定でも、マネージドのスケール特性とロックインの度合いを見比べます。クラウドの機能を積極活用して差別化を急ぐのか、マルチクラウドやオンプレ退避の選択肢を残すのかで、設計方針は変わります。たとえばPCI DSSの対象となる決済では、JVM系の堅牢なエコシステムと実績あるRDBMSを組み合わせ、監査ログの完全性を強調するのが無難です。逆に、検索とパーソナライズが性能ボトルネックのECなら、エッジ配信と関数の組み合わせでレイテンシを削り、アプリはTypeScriptで統一して認知負荷を下げる、といった配牌が効果的です。ここでも、技術スタックとアーキテクチャの相性を見抜ける開発会社かどうかが、選定基準になります。

移行戦略は、初日に決めるほど価値があります。データ移行の計画、機能フラグでの段階的切替、書き込みパスの二重化期間など、面倒な部分を先に文章化しておくと、実装と並走する形でテストが書けます。アーキテクチャ決定記録(ADR)を短く刻み、意思決定の文脈を残すことも、外注先と自社の境界を跨いで合意形成するうえで効きます。結果として、技術スタックの変更にも強い「逃げ道」を持ちながら進められます。

外注先評価の実務:成果で測るための会話設計

モダンな用語が並ぶ提案書は美しいものですが、成果は計測されるまで美しくありません。評価の起点は、短い技術スパイクの設計に置きます。たとえば2週間で、コアのユースケースを少なくとも1本、SLOに基づく負荷試験と観測を通し、変更リードタイムの実測を採る。必要なら本番に近いステージングで、ローリングデプロイとカナリアを試します。小さく確かな結果が出るなら、残りの数カ月も期待できますし、ここで躓くなら契約の前に立ち止まれます。これは、開発会社を成果で評価するためのシンプルな選定基準です。

もう一つの実務は、チームの動き方を先に決めることです。担当範囲をコードオーナーシップで明確にし、レビュー基準を共通化します。障害対応では、平均復旧時間や一次応答のSLOを決め、インシデントレビューのフォーマットを共有します。費用面の透明性も重要です。成果に直結しない待ち時間や再作業が見えなくなると、TCO(Total Cost of Ownership:総保有コスト)が膨らみます。クラウド費用はタグ付けとアカウント設計で責任範囲を可視化し、FinOpsのカルチャを両社で共有します。ここまで合意できる開発会社は、構築だけでなく運用の設計にも強いことが多い。

最後に、採用市場と学習曲線のバランスを見ます。社内の保守チームが後を引き継げるか、ドキュメントとナレッジ移譲の仕組みが提案に含まれているかをよく見ます。技術選定は一度決めたら終わりではありません。LTSの更新や脆弱性対応の定常運用が始まりです。中長期での更新計画がスケジュールに刻まれ、移行コストが概算されているなら、安心して着手できます。逆に、眩しい初速だけが強調され、撤退や転換の出口が書かれていない提案は、一歩引いて読み直した方が安全です。

ケーススタディ:B2B受発注SaaSの選択

取引先とのAPI連携が多く、可用性と変更容易性が同時に重要なB2B受発注SaaSを考えます。初期はRailsモノリスで顧客の要望に素早く応え、GraphQLでスキーマを明確化。CIは1本化し、OpenTelemetryを入れて後からボトルネックを可視化します。半年後、イベント駆動で請求と在庫の境界が固まった段階で、Goサービスに切り出し、キューのバックプレッシャーでピークを吸収。ここで観測基盤が既にあるため、分割は怖くありません。開発会社がこの道筋を提案し、2週間スパイクでレイテンシと失敗率の実測を示せたなら、技術の良し悪しではなく、合意した成果に基づく信頼が育ちます。これは、技術スタックと移行戦略を両立させる選定基準の好例です。

ケーススタディ:D2CのECとレコメンド

D2CのECでSEOと体感速度が売上に直結する場合、Next.jsとエッジ配信を軸に、p95のTTFBを200ms台に抑える設計が効きます。管理画面やバッチはTypeScriptのモノレポでまとめ、品質ゲートを強めます。レコメンドの初期はルールベースでも良いですが、後に行動ログの特徴量を使う拡張に備え、ログ基盤のスキーマだけは最初から固定しておきます。ここでも重要なのは、開発会社が短期の数値と中期の拡張の両方を、観測とテストで裏打ちして見せられるかです。技術スタックの選定と運用の整合が、売上に直結します。

まとめ:スタックではなく、価値の出し方を選ぶ

技術スタックは手段であり、選ぶべきは価値の出し方です。要件をSLOに落として合意し、2週間のスパイクで事実を作り、DORA指標で流れを計測し続ける。この流れさえ握れれば、好みの言語やツールは本質ではなくなります。今の案件でまず試せる一歩は何でしょうか。小さく確かに価値を出すために、観測と自動化を先に敷き、外注先と成功の定義を共有する。その瞬間から、開発会社の選定は賭けではなく、検証のプロセスに変わります。次の提案レビューでは、眩しい言葉を一つ脇に置き、移行と運用まで含めた可逆性計測可能性に光を当ててみてください。それが、技術スタックで開発会社を選ぶときに、組織の未来を守る最短経路になります。

参考文献

  1. InfoQ Japan. FinOps Foundation、2024年のFinOpsの現状調査レポートを発表. https://www.infoq.com/jp/news/2024/03/state-of-finops/
  2. CorentTech Blog. Businesses waste 32% of their cloud investment yearly—FinOps can plug the leak and raise the ROI. https://www.corenttech.com/blog/index.php/2023/06/05/businesses-waste-32-of-their-cloud-investment-yearly-finops-can-plug-the-leak-and-raise-the-roi-heres-how/
  3. Google Cloud Japan (Medium). 今日からはじめる DevOps 改善 — DORA/Accelerate State of DevOps Report 2021. https://medium.com/google-cloud-jp/%E4%BB%8A%E6%97%A5%E3%81%8B%E3%82%89%E3%81%AF%E3%81%98%E3%82%81%E3%82%8B-devops-%E6%94%B9%E5%96%84-dora-accelerate-state-of-devops-report-2021-f85bbdab0dad
  4. GitHub Blog. The state of open source and AI — Octoverse. https://github.blog/news-insights/research/the-state-of-open-source-and-ai/
  5. Stack Overflow. Developer Survey 2023. https://survey.stackoverflow.co/2023/