企業のシステム担当者の中には、自社でのアプリケーション開発を検討したことがある方もいると思います。アプリケーションの開発方法は「ウォーターフォール開発」というこれまでに確立されたモデルが現在でも主流であり、各工程をしっかりと理解することで、開発の成功率をあげていくことが可能です。
本記事では、自社でのアプリケーション開発を検討している人にむけて、自社で開発に取り組む場合の流れについて解説していきます。
また、アプリケーション開発手法の種類やiOS、Androidによるプラットフォームの違いも併せて解説しますのでぜひ参考にしてください。
アプリケーション開発には2種類
アプリケーション開発の方法には「ウォーターフォール開発」と「アジャイル開発」の2種類があります。
ウォーターフォール開発
アプリケーション開発を企画、計画、設計、実装、テストといったフェーズごとに工程を分け、上流の工程から一つずつ順番に開発を進めていく方法です。上流の工程を完成させてから次の工程に進むフローのため、一度完成した工程には基本的に戻りません。開発計画のスケジューリングが容易かつ、進捗が確認しやすいので、中~大規模な開発でよく採用されています。
ただし、設計ミスや仕様変更によって手戻りが発生すると、納期や開発コストが大幅に増加してしまうので、あらかじめ仕様変更の可能性が見込まれる場合には向いていません。
アジャイル開発
リリースまでの期間が短く、開発途中の仕様変更および要件変更を柔軟に行いたい場合に選択する開発方法です。工程に関わらず、重要な項目から進めていくことが可能なため、一部機能のみを作ってサービスインし、後から機能の充実化を図っていけるメリットがあります。
欠点は、進捗の見えにくい点や最終的なコストが定量化しづらい点です。これらの点が気になりにくい、スピード感を重視する小規模な開発の場合に向いていると言えるでしょう。
プラットフォームいろいろ
スマートフォンにはiOSアプリケーションとAndroidアプリケーションがありますが、実はそれぞれでプラットフォームが異なり、開発言語も違ってきます。
◇iOS向けの開発言語:Objective-C、Swiftなど
◇Android向けの開発言語:Java、Kotlinなど
iPhoneとAndroidでは人口やターゲット層も変わってくるので、どちらのプラットフォームを選択するか、開発を行う前に決めておくのが重要です。
次項より、Androidのアプリケーション開発にてウォーターフォール開発を選択した際の具体的な流れを説明していきます。アジャイル開発を行う場合も、この流れが基本サイクルとなりますので、よく理解しておきましょう。
何を作る?企画フェーズで練り上げる
開発が決まったら、まずは作りたいアプリケーションの企画を行いましょう。企画は開発する目的やイメージを明確にするフェーズなので、エンジニアよりもユーザー側の要求を基本に決定する項目となります。
この工程で重要になってくるのはユーザーがアプリケーションを使う目的や、完成イメージ、ターゲットを明確に伝えることです。企画を基にエンジニアが仕様を作るので、完成イメージが曖昧だと理想通りのアプリケーションができなくなるでしょう。
詳細を決定する設計フェーズ
企画フェーズを通して作りたいアプリケーションのイメージが明確になったら、設計フェーズで詳細なシステムを決めていきましょう。設計フェーズには、大きく分けて4つの工程があります。
要件定義
ユーザー側とエンジニア側が話し合って、システムの機能や性能、運用方法などの要件を決定するフェーズです。この工程でユーザーとエンジニアの持つイメージにずれがあると、希望と異なるアプリケーションができてしまうので、企画と同程度に大切なフェーズとなります。
ユーザー側も企画でイメージしたアプリケーションが実現できるかをしっかり考えたうえで、エンジニアと認識を合わせておきましょう。
基本設計
基本設計は外部設計とも呼ばれ、システムの全体構成やデザインなど、目に見える部分の設計を行うフェーズです。基本設計が終わったらユーザー側が見てわかるように基本設計書を成果物として作り、ユーザー側にチェックを依頼します。
詳細設計
基本設計で作られたシステムをモジュールごとに分解し、より詳細に機能を設計していくフェーズです。詳細設計の工程ではコードやプログラムの設計など、エンジニア側の視点でシステムを設計し、詳細設計書を成果物として作ります。
テスト設計
テスト設計は、バグを発見するためにどんなテストをするか決める工程です。リリース後にバグが見つかると大きな問題となるため、抜けもれなくすべての機能をチェックする必要があります。
テスト設計書を基にほかの人がテストを行うので、「どんなテストを行えばいいか」をわかりやすく記載することも求められるでしょう。
いよいよ実装 開発フェーズ
モジュールごとの詳細な設計が終わったら、いよいよ次はプログラミングを行う開発フェーズです。開発フェーズは次の4つの工程があります。
実装
詳細設計書を基に、プログラミングを行うフェーズです。ほとんどの場合は、実装と単体テストを同時に行いながら開発を進めていきます。
単体テスト
作成したプログラムが、詳細設計書の記載通りに動くことをテストするフェーズです。単体テストでは、プログラムの単位であるモジュールがすべて正常に動くかをチェックしていきます。
連結テスト
連結テストでは、画面遷移やデータ送受信など、モジュールごとの連携の問題点を発見できる工程です。実際の業務を想定してテストを行うことが多いことが特徴になります。
受け入れテスト
実際の運用環境でアプリケーションを使用したときに、ユーザーの目的やイメージ通りに使えるかをチェックする工程です。
受け入れテストはほかのテストとは異なり、システムの不具合を見つけることは目的ではありません。ユーザーによる最終チェックになるので、工程の最後に行われます。
まとめ
今回は、自社でのアプリケーション開発を検討している人にむけて、自社でアプリケーション開発を行う場合の流れについて解説しました。
ウォーターフォール開発は一般的な開発手法であり、手法を理解しておけば、アプリケーション開発の経験が無くとも比較的簡単に開発が進められます。
ただ、特に上流工程でミスがあると大規模な手戻りが発生したり、理想とかけ離れたアプリケーションができてしまったりする可能性もあるので、堅固なアーキテクチャ構築を行いたいならコンサルタントの協力を得ることが不可欠です。
自社開発においてコンサルタントを依頼するなら、アーキテクチャ構築で多くの実績を持つArchwayがおすすめです。
こうしたコンサルタントサービスを有効に活用し、自社開発の成功につなげましょう。