Ruby on RailsのRFP/要件定義書/提案依頼書について

Ruby on Rails(以下Rails)の発注では、RFP(提案依頼書)と要件定義書で、Railsが自社に合うかを検証する材料と、納品後の保守や引き継ぎの条件を示すことが大切です。

Railsの全体像は、まずRuby on Rails開発の完全ガイドで確認できます。

RailsのRFP・要件定義書で押さえるべき基本構造

要件定義書の必須項目を機能要件、非機能要件、保守・運用のカードで示した図
要件の種類に加え、納品後の運用条件も視野に入ります。

RFP(提案依頼書)は、発注企業がベンダーに「こういうものを作りたいので提案してほしい」と伝える文書です。Railsでは特に、技術を指定するかどうかの線引きが重要になります。

「技術を指定する」か「目的を伝えて提案させる」かの線引き

RFPで最初に判断すべきは、「Railsで作ってください」と技術を指定するか、「こういう事業を実現したい」と目的だけを伝えて技術提案を求めるかです。

まだ技術が固まっていない段階でRailsを安易に指定すると、ほかにもっと適した技術があったかもしれない可能性を閉ざしてしまいます。

推奨されるのは、RFPに「想定するトラフィック」「将来の拡張計画」「社内の保守体制」といった事業要件を明記することです。そのうえで、「これらを踏まえて最適な技術構成を提案してください」と求めます。

事業要件を示して提案を求めておけば、Railsが最適ならベンダーはその理由を示し、別の技術が適していれば代替案が出てきます。

ベンダーに「なぜその技術なのか」を文書で説明させておけば、後の意思決定の根拠として残り、社内説明にも使えます。

技術の指定を判断するときは、次の2点を確かめます。

  • 指定の前に確かめること:社内に保守できる人材がいるか、既存システムをRailsで統一する方針があるか
  • 提案を求めるときの書き方:事業フェーズと将来の規模を示し、その条件で何が最適かを問う

Railsは立ち上げ期の開発速度に大きな強みがある一方、後述するように、成長後のスケールの課題を抱えやすい技術です。

発注側がRFP段階で「事業フェーズ」を明示し、「いまはRailsで素早く作るが、将来どの規模になったら見直すか」という前提まで共有しておくと、ベンダーの提案も現実的になります。

Railsが持つ具体的な機能・特性については、本記事と対をなす機能の記事で詳しく解説しています。

要件定義書に盛り込むべき必須項目

Rails開発の要件定義書には、機能要件と非機能要件の両方を明記する必要があります。機能要件とは、「会員登録ができる」「商品を検索できる」といった、システムが何をするかの定義です。

Railsはscaffoldやエコシステムが充実しているため、標準的な機能なら素早く実装できます。ただし、要件が曖昧だと、ベンダーが想定する範囲と発注側の期待がずれ、後の追加費用や手戻りの原因になります。

見落とされがちなのが非機能要件です。非機能要件とは、「何人が使うか」「どれくらいの速さで表示すべきか」「データはどこまで増える想定か」といった、性能や運用に関する要件です。

Railsはデータ量が増えると、前述のN+1問題などで遅くなりやすい性質があります。そのため、非機能要件を最初に定めておくことが、性能設計の前提として欠かせません。

「将来1万人が同時利用する可能性がある」と書くかどうかで、設計の方針が根本から変わります。

2種類の要件は、次のように書き分けます。

  • 機能要件:会員登録や商品検索など、ベンダーに作ってほしい機能を一つずつ挙げる
  • 非機能要件:利用人数や表示速度、データ量の想定を、設計の前提として数値で示す

さらに、保守・運用に関する要件も要件定義書に含めるべきです。フレームワークのバージョンアップを誰が、どの頻度で、いくらで行うのか、障害発生時の対応体制はどうするのかといった、「納品後」の取り決めです。

これらを最初に定めておかないと、納品後にバージョンアップが放置され、数年後にセキュリティリスクを抱えるという、発注側に最も多い失敗パターンに陥ります。

要件定義は、作ったあとも運用し続ける前提で書くことが鉄則です。

ポイント

Railsを指定するかは、社内の保守体制や既存システムの事情で決め、迷う場合は事業要件を示して提案を求めます。要件定義書には、機能と非機能の両方と、納品後の保守・運用も書いておきます。

Railsを採用要件として満たすべきかの判断フレーム

Railsの採用判断を事業フェーズ、拡張性、トラフィック、採用市場の4観点から整理した図
事業の成長段階と、技術・人材の両面を合わせて見ます。

RFPの構造を押さえたら、次は「そもそも自社はRailsを採用要件として満たすべきか」を判断する番です。

Railsが要件に合うかは、事業フェーズや拡張性、トラフィックから見極めます。採用市場の観点も欠かせません。

事業フェーズ・拡張性・トラフィックでの見極め

Railsが採用要件に合うかは、事業フェーズがいちばん大きな判断軸になります。クックパッドやメルカリも、立ち上げ期はRailsで素早く作り、市場での勝負を優先しました。

要件定義の段階で「将来どの規模まで伸びる想定か」を明示し、その時点でRailsを補完・移行する前提を共有しておくことが現実的です。

事業フェーズを見極めるときは、次の2点を押さえます。

  • 立ち上げや検証の段階:MVP(実用最小限の製品)を作って検証したい場合は、開発速度に優れるRailsが合いやすい
  • 規模が大きい段階:膨大なデータや高いトラフィック、極限の性能が求められるなら、Railsだけでは足りないことがある

実際に、クックパッド(媒体:AMBI)は100万行のRailsを分割しています。また、Baseconnect(媒体:Baseconnect Tech blog)がRailsからGoへ移行したのも、まさにスケールという要件にRailsだけでは応えきれなくなったためです。

Railsの採用判断は「YESかNOか」ではなく、「いまの事業フェーズではRailsが最適だが、どの規模に達したら見直すか」という時間軸を含めて行うものです。

STORESやリクルートは、RailsとSpring・Goを併用しており、全システムを一技術で統一する必要はありません。

要件定義書には、「現在フェーズの最適技術」と「将来の見直し基準」を併記することが、賢い発注の形です。

採用市場・保守内製化の観点の要件化

技術選定は、開発だけでなく「その技術のエンジニアを採用・定着させられるか」というHR(人材)の観点と切り離せません。

Railsは長年にわたり国内のWeb開発で広く使われてきたため、扱えるエンジニアの母数が一定あります。

ただし近年は、新しい言語やフレームワークへ関心が移る技術者も増えています。さらに、「モダンな技術を使っていないと優秀な人材が集まりにくい」という採用ブランディングの観点も無視できません。

また、古いバージョンのまま放置されたRailsプロジェクトは、保守を引き受けたがるエンジニアが減り、採用難に拍車をかけます。

採用市場の観点は、次の2点で確かめます。

  • 採用のしやすさ:国内で扱えるエンジニアが一定数いて、保守人材を確保しやすいか
  • バージョンの鮮度:最新バージョンへの追従を保てるか、保守を引き受けたい人が減らないか

要件定義書には、こうした採用市場の観点を「保守をどう継続するか」という形で組み込むべきです。

内製化を目指すのか、ベンダーに長期保守を委ねるのかによって、どこまでのドキュメントを求めるかが変わります。

開発・採用・保守をまとめて考えることが、長期的に持続するシステムの要件定義につながります。

各技術のメリット・デメリットを定量データで比べる視点は、関連するメリット・デメリットの記事でも扱っています。

ポイント

Railsの採用は、事業フェーズを最大の判断軸にし、どの規模で見直すかの時間軸も含めて考えます。保守を内製化するなら、扱えるエンジニアを確保しやすいかも見ます。

ベンダーロックインを防ぐ要件と契約の取り決め

ベンダーロックインの回避に関わるコーディング規約、設計ドキュメント、テストコードを並べたチェックリスト
三つの納品条件が、担当変更後の理解を支えます。

要件定義で最も見落とされがちですが、発注側の利益を最も守るのが「ベンダーロックインの回避」です。引き継ぎ性は技術選定そのものより、契約と要件の書き方で決まります。

コーディング規約とドキュメント納品の要件化

引き継ぎ性を決めるのは、実は技術の種類よりも「コードの書き方が標準化されているか」です。

Railsには規約に沿った標準的な書き方が確立されています。その書き方に沿って書かれていれば、別のエンジニアでも理解しやすいコードになります。

規約を定めず各人が好きに書いたコードは、それを書いた本人にしか分からないブラックボックスとなり、ベンダー変更を困難にします。

設計ドキュメントの納品を要件に含めることも、同じくらい重要です。

システム構成図、データベース設計、主要な処理の説明といったドキュメントがあれば、将来別のベンダーに引き継ぐ際の学習コストが大幅に下がります。

「動くコードさえあればいい」という発注は、短期的には安く済みます。しかし、ドキュメントがないと引き継ぎ時に膨大な調査費用がかかり、結果的に最初のベンダーに依存し続けるロックインを招きます。

引き継ぎ性を守るために要件へ入れたいのは、コードの書き方とドキュメントの二つです。

  • コーディング規約:ベンダーが守る書き方を、RFPや契約に明記する
  • 設計ドキュメント:構成や設計の説明を、納品に含める

あわせて、テストコードの納品も要件化すべきです。前述のとおりRailsはテスト文化が根付いており、自動テストが整備されていれば、別のベンダーが改修する際も「既存機能を壊していないか」を確認しながら安全に作業できます。

コーディング規約・設計ドキュメント・テストコードの三つを要件として明記することが、引き継ぎ性を守る最も効果的な手段です。

保守契約とバージョンアップ・TCOの要件化

要件定義書には、初期開発費用だけでなく、その後の保守・運用にかかるTCO(総保有コスト)を見据えた取り決めを明記すべきです。

Railsはバージョンアップが活発なフレームワークで、放置すると古いバージョンに取り残され、セキュリティ上の脆弱性が残り続ける危険があります。

TCOには、初期開発費、インフラ費、保守費が含まれます。さらに、バージョンアップ費や障害対応費も含めて見積もる必要があります。

複数社から見積もりを取る際、初期費用だけを比較すると、保守を手薄にした安い見積もりが魅力的に見えます。ただし、それは数年後に高くつく可能性があります。

要件定義書で「5年間のTCOを提示してください」と求めれば、各社の保守姿勢の違いが見え、本当の意味でのコスト比較ができます。

保守と費用の条件は、次の2点を要件に書きます。

  • バージョンアップの担当と頻度:誰が、年に何回行うかを保守契約で定める
  • 費用の比べ方:初期費用だけでなく、5年間のTCOで各社を並べて見る

さらに、将来のリプレイス(技術の乗り換え)を見据えた要件も検討に値します。メルカリが4年がかりで作り替えたように、成功したサービスほど将来の移行を迫られます。

要件定義の段階で「データの取り出しやすさ」「他システムとの連携のしやすさ」を要件に入れておけば、将来別技術へ移行する際のコストを抑えられます。

要件定義とは、目先のシステムを作るだけでなく、その後の数年間の選択肢を確保する作業でもあるのです。

ポイント

引き継ぎ性は、コーディング規約やドキュメント、テストコードを要件に含めるかで決まります。保守契約には、バージョンアップの担当と頻度を書き、TCOで各社を比べます。

まとめ

RailsのRFP・要件定義で最も重要なのは、「Railsを使うこと自体」を目的にしないことです。事業要件を満たす技術としてRailsが妥当かを、ベンダーに検証してもらい、その根拠を文書にまとめてもらうことが大切です。

Railsの適合は、事業フェーズやトラフィック、拡張性から見極め、採用市場も加えて考えます。そのうえで、現在の最適技術と将来の見直し基準を要件定義書に併記することが、賢い発注の形になります。

クックパッドやメルカリの移行事例が示すように、技術選定は一度きりではなく、時間軸を含む判断です。そして、コーディング規約・設計ドキュメント・テストコードの納品を要件に含めることが大切です。

保守・バージョンアップ・障害対応を含むTCOで複数社を比べることが、ベンダーロックインを防ぎ、長期的なコストを抑える鍵です。

これらは競合の情報が少ない領域で、発注側が差をつけやすい部分でもあります。riplaは、こうした発注側視点の要件定義を、技術検証から契約設計まで一気通貫で支援します。

会社紹介

株式会社riplaでは、お客様の事業・ユーザー・業務に最適化したオーダーメイド型システムを、構想策定・要件定義から開発・改善まで一気通貫で支援。事業会社でIT・DXを経験したプロフェッショナルによる高い要件定義力・システム設計力を活かし、事業成果の最大化に伴走します。

また、当社独自の開発テンプレート「Boxシリーズ」による標準機能の高速開発と、AI駆動開発の独自フレームワーク「GoDD」による独自機能のAI実装を組み合わせることで、低コスト・短期間で開発を実現いたします。

もし、システム開発やプロダクト開発に関するご要望がございましたら、お気軽にお問い合わせください。

・サービス概要資料のURLはこちら >>>
・お問合せページのURLはこちら >>>
・お役立ち資料のURLはこちら >>>

執筆者プロフィール
張田谷凌央
張田谷凌央

株式会社ripla 代表取締役CEOとして、システムパッケージ活用、システム開発、データ分析、生成AI活用、SaaS開発、アプリ開発、EC構築など、幅広い領域で企業のDX推進と事業成長を支援している。事業会社でIT・DXを経験したプロフェッショナルが集う株式会社riplaにおいて、お客様の事業・ユーザー・業務に最適化したオーダーメイド型システムを構想策定・要件定義から開発・改善まで一気通貫で支援し、単なるシステム納品にとどまらず、クライアントと同じ目線で事業成果の最大化に向けた伴走支援を行う。早稲田大学卒業後、ラクスル株式会社、LINEヤフー株式会社にて事業開発やDX推進などに従事した後、株式会社riplaを創業。