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

Kotlinアプリを外注するなら、RFP(提案依頼書)と要件定義書に技術選定を含む要件を明記します。曖昧なままだと見積りが横並びで比べられず、「iOSが想定どおり動かない」「書ける人がいない」事態も招きます。

全体像は、Kotlin開発の完全ガイドから先に読むと把握しやすいです。

技術選定を要件に落とすプロセス

Kotlin開発を中央に置き、OSの優先順位、実装方式、Java資産の扱いを周囲に示した図。
発注側の前提をそろえると、ベンダー提案を比べやすくなります。

Kotlin開発の要件定義が一般的なアプリ開発と違うのは、技術選定そのものが要件になる点です。「Kotlinで作る」と決めても、Android専用かiOS両対応かで、必要な工数と体制が変わります。

さらに、両対応ならKMPかSwift別実装か、既存Java資産をどう扱うかによっても、工数と体制は変わります。これらを曖昧にしたままRFPを出すと、ベンダーごとに前提の違う提案が返り、比べられなくなります。そのため、技術選定を要件として明記することが出発点です。

Android/iOS優先の決め方

Kotlin採用の前提として、どのOSを優先するかを要件で決めます。日本ではiOSのシェアが高く、世界全体ではAndroidのシェアが高いという一般論はあるものの、判断の基準は自社のターゲット層です。

たとえば、若年女性層が中心ならiOS先行、物流・製造の業務端末ならAndroid先行というように、発注側はターゲットの属性から優先順位を決めます。つまり、Kotlinが主役になるのはAndroid優先の場合です。Android端末を業務で使う現場アプリや、Androidユーザーが多いサービスでは、Kotlinネイティブが第一候補になります。

片側のOSを先行リリースし、検証してから他方を作る段階的な進め方も、要件として明記すべき判断です。たとえば、Androidを先行リリースして市場の反応を見てから、iOS対応を決める計画です。後からiOS対応を決めると、KMPで共通化できたはずのロジックを作り直すことになりかねないため、将来のOS展開を見据えて、iOS対応の可能性と初期の技術構成を要件に明示すると後戻りを防げます。

KMP/Swift別実装とJava資産の扱い

iOS両対応ならKMPでロジックを共通化するか、Swiftで別途作るかを、ロジックの複雑さや両OSの仕様一致、採用市場から判断し、RFPに明記します。KMPは二重開発を避けられますが、まだ新しく、対応ライブラリや知見が発展途上です。Swift別実装は各OSで最適化できる一方、ロジックを二重に作る分のコストがかかります。

既存のAndroidアプリをJavaで運用している場合は、Java資産の扱いも要件の柱です。KotlinとJavaは100%相互運用できるため、全面書き換えではなく、新規機能からKotlin化し既存Javaを段階的に移行する方針を示せます。なお、具体的な機能の中身は、『Kotlinの必要機能や標準機能の一覧について』もあわせてご覧ください。

移行方針は、「既存のJavaコードベースを活かし、段階的にKotlinへ移行する」「コアロジックは当面Javaを維持する」のようにRFPに書きます。こう書けば、ベンダーは現実的な移行計画を含めて見積もれますが、移行範囲が曖昧だと見積りが過大になったり、移行リスクが見落とされたりします。技術選定・OS優先・Java移行の3点を要件に落とすことが、RFPの核心です。

ポイント

技術選定は、Android専用かiOS両対応か、両対応ならKMPかSwift別実装か、既存Java資産をどう扱うかを要件に明記して決めます。前提がそろわないと、ベンダーの見積りを比べられません。

Must/Wantの仕分けと社内合意形成

Must、Want、将来の3つのパネルに、それぞれコア機能、付加機能、思いつき段階のアイデアを配置した図。
初期リリースから外す機能を決めると、予算超過時の調整先が見えます。

技術選定と並んで要件定義の難所になるのが、機能のMust/Wantの仕分けと、それをめぐる社内合意です。現場は「あれもこれも欲しい」と多機能を求め、経営層は「コストを抑えて早く出したい」と短期・低コストを求めます。

この板挟みを要件定義の段階で解消できないと、開発の途中で要件が膨らみ、予算もスケジュールも破綻します。

機能のMust/Want/将来への仕分け

機能は、Must(これがないと成立しない)、Want(あれば価値が上がる)、将来(後で追加でよい)に仕分けます。基準は事業目的への直結度で、アプリの存在意義となるコア機能はMust、ユーザー満足を高める付加機能はWant、思いつき段階のアイデアは将来に分けます。

この仕分けがあれば、見積りが予算を超えたときに、Wantや将来の機能を初期リリースから外す判断ができます。すべてをMustにすると、予算オーバー時に削るものがなくなり、プロジェクトが頓挫しかねません。Kotlinなら、まずAndroidのMust機能でMVP(最小限の価値を検証する版)を作り、効果を見てWantやiOS対応を足していく段階的リリースが現実的です。

開発費(会員登録・ログイン30〜80万円、決済80〜200万円、リアルタイムチャット150〜400万円:出典ripla)を見ると、何をMustにするかが予算を直接左右します。MVPの範囲を要件で明確にすると、予算管理と早期の市場検証を両立できます。機能の優先度付けは、要件定義書の中でも投資判断に直結する部分です。

現場と経営層の板挟みの解消

Must/Wantの仕分けは、社内政治の問題でもあります。現場の多機能志向と経営層のコスト志向は、どちらも正しい立場であり、これを調整するのが要件定義の隠れた本丸です。要件定義は、技術の判断と社内の合意を両輪で進めることが、成功の条件になります。

そのため、関係者が同じ条件で話せるよう、機能ごとに「この機能は事業目的のどれに貢献し、いくらかかるか」を一覧にします。優先順位は、目的への貢献度とコストという共通の基準で決めます。感情論や声の大きさで決めないことが、合意の土台になります。

「最初から完璧を目指さない」を関係者で共有し、MVPで小さくリリースして反応をもとに次の機能を決めます。こうすれば「全部欲しい」と「安く早く」を段階的リリースで両立でき、要件定義の段階で合意すると手戻りや揉め事を防げます。riplaは元事業会社(ラクスル/LINEヤフー)出身の知見をもとに、板挟みを解消する要件整理を支援しています。

ポイント

Must/Want/将来の仕分けは事業目的への直結度で行い、MVPの範囲を要件で決めます。現場と経営層の調整は、目的への貢献度とコストという共通の基準で進めます。

内製化・採用市場と非機能要件の整理

要件定義で見落とされがちなのが、「作った後、誰が保守し、内製化できるのか」という観点です。アプリは作って終わりではなく、長期にわたって運用・改修されます。

そのため、その担い手を確保できるか、つまり採用市場を要件に織り込むことが、Kotlin選定の要です。あわせて、性能・セキュリティといった非機能要件も整理します。

内製化を見据えた採用市場の考慮

将来的に内製化を目指すなら、技術選定は採用市場と一体で考えます。riplaの一次データでは、エンジニアの採用難易度は「React Native > Swift/Kotlin > Flutter > KMP」の順で、左ほど採用しやすいとされています。Kotlinは比較的採用しやすい部類です。

年収相場も約873万円(2022年、Swiftの約868万円とほぼ同水準:出典ripla)と、Androidエンジニアの市場が成熟しています。そのため、内製化の担い手を確保しやすく、これはKotlinを採用する大きな実務的メリットです。一方で、KMPは採用ランキングで最も採用しにくく、担当エンジニアが辞めた場合のリカバリーが経営リスクになりえます。

iOS両対応のためにKMPを選ぶなら、その技術を担える人材を継続的に確保できるかを、要件定義の段階で見極める必要があります。採用市場を無視して技術を選ぶと、「作れたが保守できない」「退職で開発が止まる」という事態を招きます。そこで、「内製保守を見据え、採用可能性の高い技術構成を優先する」と要件定義書に明記すると、長期の持続性を担保できます。

性能・セキュリティの非機能要件の定義

非機能要件では、性能・セキュリティ・保守性を定義します。性能は、Kotlinネイティブを選ぶ理由とも直結します。たとえば「カメラ起動は何秒以内」「リスト表示は滑らかに」といった目標を要件にすると、ネイティブのKotlinが適しているか、クロスプラットフォームで足りるかを客観的に判断できます。

容量やカメラ起動の性能差(ネイティブ6.6MB対Flutter16.8MB、カメラ5.85ms対247.87ms:出典ripla)を踏まえ、自社のアプリで妥協できない性能を要件に明記します。セキュリティは、扱うデータの機密性に応じて要件化します。決済情報や個人情報、業務データを扱うアプリでは、通信の暗号化や生体認証、不正アクセス対策を要件に盛り込みます。

Kotlinはネイティブ言語なので、OSが提供するセキュリティ機構を直接使える強みがあります。さらに保守性では、null安全やコルーチンといった言語機能が長期保守の負担を下げるため、コードの可読性や保守体制も要件に含めます。機能要件と同じ熱量で非機能要件を詰めることが、リリース後の「遅い」「落ちる」「漏れる」というトラブルを防ぎます。

ポイント

内製化を見据えるなら、採用しやすい技術かどうかを要件で見極めます。性能・セキュリティ・保守性の非機能要件も、機能要件と同じ熱量で詰めます。

RFPに盛り込む項目と見積り妥当性の判断

Kotlin開発のRFPに盛り込む、プロジェクトの目的とKGI、対象OS、技術要件、機能要件を並べたチェックリスト。
技術要件と機能要件まで具体化すると、提案の前提をそろえやすくなります。

要件がまとまったら、それをもとにRFP(提案依頼書)を作成し、複数のベンダーに提案を依頼します。RFPの質が、集まる提案と見積りの質を決めます。

曖昧なRFPには曖昧な見積りしか返ってこず、横並びの比較ができません。とくにKotlin開発は技術選定の幅が広いため、RFPで前提を揃えることが、見積りの妥当性を判断する大前提になります。

RFPに必ず盛り込むべき項目

Kotlin開発のRFPには、次の3項目を盛り込みます。

  • プロジェクトの目的とKGI
  • 対象OS
  • 技術要件

技術要件では、ネイティブKotlinかKMPかSwift別実装か、Java資産の移行方針を示します。とくにKotlin開発では、この技術要件と対象OSを具体的に書くことが、提案の前提を揃える要になります。

機能要件はMust/Want/将来の分類付きで書き、非機能要件には性能・セキュリティ・保守性を入れます。加えて、予算とスケジュールの目安、開発・運用の体制要求、内製保守や採用市場に関する方針も盛り込みます。体制要求は、プレゼンの上手さではなく実開発体制を確認できる項目としてRFPに盛り込むことが、ベンダー選定の防衛策になります。

見落とされがちなのが、体制要求と契約・法務面です。コンペにエース級が出ても実開発は下請けが行い、リリース後に障害が多発する失敗は実際に起きています。そこで、契約解除やベンダー変更に備え、RFPに体制図の提出や、実際にKotlinを書く人・PMの明記を求め、著作権の帰属や検収基準、SLAも示しておくと有効な自衛策になります。

見積りの妥当性を判断する観点

見積りの妥当性は、まず発注先別の単価相場を知ることから判断します。人月単価は、フリーランス60〜80万円、中小開発会社80〜120万円、大手SIer150〜300万円と大きく異なり、その差は技術力より中間マージンや組織維持費によるものです。同じKotlinアプリでも誰に発注するかで総額が数倍変わるため、見積りは「人月数×単価」の構造で読み解く必要があります。

A社1,500万円とB社800万円の差が、工数の差なのか単価の差なのかを見極めます。次に、「開発一式」「テスト・デバッグ費」が一式でまとめられていれば、内訳の開示を求めます。機能・工程ごとに工数と単価が示されれば、コストがどこにかかっているかが見え、追加要件の単価ルールも事前に決められます。

要件定義書とRFPが詳細であるほど、ベンダーは精緻な見積りを出さざるを得ず、「開発一式」の中身も見えやすくなります。なお、AI駆動開発と分割発注で市場相場700〜1,500万円規模を500万円に圧縮した事例もあり、コスト最適化の提案力もベンダー評価の一つの観点です。riplaはフルスクラッチ受託と国内開発の立場から、見積り内訳を明示する進め方を重視しています。

ポイント

RFPには技術要件と体制要求、契約条件まで書き、提案の前提をそろえます。見積りは人月単価の相場と内訳で中身を確かめてから、横並びで比べます。

まとめ

Kotlin開発の要件定義・RFP・提案依頼書では、機能の列挙に加えて、技術選定を要件として明記することが核心です。技術選定には、ネイティブKotlin/KMP/Swift別実装、Android/iOS優先、Java資産の移行方針が含まれます。

そのうえで、機能をMust/Want/将来に仕分けてMVPの範囲を定め、現場と経営層の板挟みを社内合意で解消します。内製化を見据えて採用市場も織り込み、Kotlinは採用しやすく年収約873万円、KMPは採用難とされています(出典ripla)。

これらをRFPに技術要件・体制要求・契約条件まで明記すれば、ベンダーの提案を横並びで比較できます。人月単価(フリーランス60〜80万・中小80〜120万・SIer150〜300万:出典ripla)に照らせば、見積りの妥当性も判断できます。

要件定義の質は、そのままプロジェクトの成否に直結します。事業目的と現場の事情を正確に映した要件こそが、現場に使われ、長く保守できるアプリを生みます。

riplaはフルスクラッチ受託と国内開発、元事業会社出身の知見を組み合わせ、技術選定からMust/Wantの仕分け、RFP作成までを発注企業と協働で支援します。全体像の確認には、あらためて完全ガイドをご活用ください。

会社紹介

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

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

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

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

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

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