この記事では、アプリ開発に用いられる「ウォーターフォール開発」と「アジャイル開発」という2つの開発フローについて解説いたします。
この2つのフローの特性を理解していきましょう。
流れや特性の違う、2種類のアプリ開発手法
アプリ開発は、大きく分けて「ウォーターフォール開発」と「アジャイル開発」という2種類の開発手法があります。
この2つは、開発の進め方や原則が大きく異なります。
どの開発手法を採用するかはプロジェクト全体の動きに大きな影響を与えるため、まずはそれぞれの開発手法を解説していきます。
ウォーターフォール開発
ウォーターフォール開発は、作りたいものを明確にした上で、事前に決めた開発工程を変更することなく、決めた工程に沿って開発を進める手法で、開発手順がシンプルで分かりやすく、品質を担保しやすい点に特徴があります。
後ほど記事内で説明しますが、アプリ開発には多くの工程が存在しますが、この工程を「上から順番に行う」ことをウォーターフォール開発といいます。
アジャイル開発
アジャイル開発は、仕様変更に対応しながら素早いシステム開発を目的とする開発方法です。
作りたいアプリの内容を大まかに決めた後、細かい機能については「企画、設計、実装、テスト、リリース」という工程を小さく設定し、その工程を高速に繰り返しながら開発を進めます。
ウォーターフォール開発とは反対に、決定事項を後から更新することを前提に開発を行うため、仕様変更などに柔軟に対応できるのが特徴です。
基本的な開発の流れを「ウォーターフォール開発」から学ぼう
アプリの基本的な開発の流れを知るために、「ウォーターフォール開発」を解説します。
ウォーターフォール開発は最もベーシックな開発の流れのため、ウォーターフォール開発がわかれば開発の流れを理解していると言えます。
ウォーターフォール開発のメリット・デメリット
ウォーターフォール開発が開発フローの基本とされているのは、プロジェクト管理の観点で大きなメリットがあるためです。
ここではウォーターフォール開発のメリット・デメリットを解説していきます。
ウォーターフォール開発のメリット
・スケジュールやコストの計算がしやすい
この後詳細な工程を解説しますが、ウォーターフォール開発は各作業工程が完全に分かれており、さらに開発も仕様が明確になってから行われるため、工数の計算がしやすく、スケジュール作成やコストの見積もりが行いやすいというメリットがあります。
・プロジェクト全体の進捗管理がしやすい
ウォーターフォール開発は、いまどこのフェーズにいて、あとどれくらいで次に進めるのかプロジェクトが終わるのかが把握しやすい特徴があります。
始めから全体の工程が見えているため、遅れが出た場合の調整も行いやすいです。
ウォーターフォール開発のデメリット
・仕様変更を行いにくい
ウォーターフォール開発とは、事前に決めた開発フェーズごとに完了できたかを確認しながら工程を進めていく手法のことです。そのため、次のフェーズに進んでしまうと後戻りができないフローになります。
・リリースまでの期間が長い
詳細な要件定義や設計を完了させ、全ての機能を実装してからリリースを行うため、初期リリースまでの時間が長くなります。ひとまずリリースして後から改善していきたいという場合は、ウォーターフォール開発でなくアジャイル開発を採用しましょう。
ウォーターフォール開発の流れ/手順
ウォーターフォール開発は大きく分けて以下の5つのフェーズに分かれます。
- 企画フェーズ
- 設計フェーズ
- 開発フェーズ
- リリース
- 保守・運用フェーズ
1. 企画フェーズ
まずは、どのような目的でどのようなアプリにするのかを考える、企画のフェーズです。
企画ではアプリの目的はもちろん、企画の背景やサービスの展望、コンセプトをまとめます。アプリにほしい機能のアイデアもこのタイミングで話し合い、どのように使ってほしいアプリなのかのイメージを固めましょう。
アプリの具体的なイメージができ、コンセプトや機能を簡単に明文化できたら、要件をまとめて開発会社に提出します。
重要ポイント①
この時、機能の詳細な内容や仕様についてまで決める必要はありません。
この後の工程にて、開発会社がヒアリングの上でどのように機能に落とし込むかを提案してくれますので、社内のアプリに対する認識を合わせる程度で問題ありません。
2. 設計フェーズ【最重要】
ここからは外注先の開発会社と一緒に進めていくフェーズになります。
この設計フェーズが最も重要で、開発費用に大きく影響するのはもちろん、プロジェクト成功の要所となっています。
要件定義
要件定義では、企画内容のヒアリングと具体的な機能への落とし込みを行い、開発の範囲や前提条件を固めます。
この要件定義にて、制作するアプリの内容や使用する技術を決定します。
重要ポイント②
もしこの工程で認識の齟齬が発生したまま開発に着手してしまうと、後から大きな修正が必要になり、開発費用やスケジュールに影響してしまう可能性があります。要件の追加や変更ができるだけ発生しないよう、開発会社とだけではなく社内でもコンセンサスを取っておきましょう。
また、開発費用は技術選定によって大きく変動する可能性があります。こちらの記事で解説していますので、ぜひご覧ください。
見積もり
見積もりでは、開発会社が要件定義の内容を踏まえて工数と開発費用を算出した見積書を作成します。見積書の内容に承諾すれば実際に設計や開発フェーズに移っていきます。
開発会社や開発規模によっては、簡単なヒアリングのみを行い、具体的な要件定義に入るタイミングで要件定義費用の請求が行われるケースもあることを認識しておきましょう。
また、開発規模が大きい場合は、要件定義においても、まとまった費用が必要になることがほとんどです。
基本設計・デザイン(外部設計)
ここからは、要件定義をもとに開発会社が進めてくれます。
基本設計・デザインでは、アプリの構成やデザイン、各画面のレイアウトや操作方法など、ユーザーの目に触れる部分を実装前に設計します。デザインを進める際は、必ずサービスイメージやコンセプト、ブランド感など、ユーザがアプリをどのような存在として扱って欲しいかを開発会社に伝えましょう。
詳細設計(内部設計)
詳細設計では、基本設計で決まった内容を実現するために、具体的な実装内容やシステム構成を決めます。
ユーザが触る部分の動作だけでなく、内部の処理やサーバ、データベースといった範囲の設計を行います。
3. 開発フェーズ
詳細設計・デザインが確定したら、開発フェーズへと移ります。
開発
開発は詳細設計をベースに、エンジニアがプログラミングを行う工程です。開発工程に合わせたスケジュールが明らかになっているか確認しましょう。
テスト
テストフェーズでは、作成したアプリが仕様通りに動作するかを確認します。
仕様書の指示通りにアプリが動作するか、データベースに正しいデータが登録されるか、デザイン通りの見た目になっているかといった内容がチェックされます。
最後にアプリを発注した企業が、アプリの操作性や機能を実際に試すテストを行い、問題がなければアプリの開発は終了です。
4.リリースとその後
ストア申請
アプリのリリースにはiOS/Androidの各アプリストアの審査があります。
コンテンツに問題がないか、レギュレーションに則った機能が実装されているか等の確認がプラットフォームによって行われます。
アプリの審査が無事に終了したら、いよいよリリースです。
運用・保守フェーズ
リリースが終わったら、アプリの運用・保守フェーズに入ります。
これは、アプリが問題なく稼働し続けるために、エンジニアがエラー対応やアップデート対応を行います。
具体的な保守の内容や費用については、こちらの記事で詳しく解説していますので、ぜひご覧ください
リンク:『見落としがちなアプリの保守費用とコストを抑える最新の開発方法』
アプリ開発には、より適した開発手法がある
ここまでアプリ開発の基本的な流れをウォーターフォール開発を用いて解説しました。
しかし、ウォーターフォール開発はアプリ開発の基本ではありますが、アプリ開発をコスト面やクオリティ面でより効率よく行うには、スモールスタートかつアジャイルチックな開発をおすすめします。
アプリ開発の最適な進め方からアプリ開発会社の選定基準までをこちらの記事で解説していますので、賢くお金を使い、良いものを作りたい方は、ぜひお読みください。
リンク:『アプリ会社の選び方|スモールスタートの重要性』






