企業にとってスマートフォンアプリを開発することは、今や事業戦略として当たり前の取り組みです。特にECサイトのスマートフォンアプリを開発することで、スマートフォンからの流入を増やして売上アップを狙っている経営者は多いでしょう。ちなみに、2020年における全世界のアプリダウンロード数は2,180億件を突破したそうで、アプリ市場は一層と活性化しています。
引用:「App Annie、「モバイル市場年鑑 2021」 - MarkeZine(マーケジン)」
「アプリ開発を行おう!」と考えた時、開発を依頼する委託会社や技術者を選定しますが、その後の開発工程まで理解している方はどれくらいいるでしょうか?アプリ開発の工程を知っておくことは、工程ごとに自身がどう関われればよいのかを把握でき、アプリ開発を円滑に進め、望み通りのアプリを開発することができます。
本稿ではアプリ開発の工程について紹介しますので、この機会にぜひ理解を深めていただきたいと思います。
アプリ開発の工程
一般的なスマートフォンアプリの開発は、企画開発、要件定義、設計、デザイン、開発、テスト、受け入れテスト、リリース申請という8つの工程で進行していきます。各工程では何が行われるのか?早速解説していきます。
企画開発
アプリ開発最初の工程は「どんなアプリを開発するのか?」というコンセプトを考えるための企画開発です。この工程は発注会社独自に行われることもあれば、委託会社と共に行われる場合もあります。大切なのは、開発したいアプリの全体像について、できる限り詳細に企画することです。
要件定義
要件定義とは、これから開発するアプリにどんな機能を実装するのか?アプリはどんな動きをするのか?入出力するデータは?などの要件を定義していくことです。一般的には委託会社が発注会社にヒアリングを行い、一緒になって要件定義を行っていきます。
設計
設計は大まかに3つに分類されます。まず「外部設計」では、アプリで表示する画面をどんなデザインにするか?どんな機能処理をするのか?など、主にユーザーの目に触れる部分を設計していきます。
次に「内部設計」では、それぞれの機能をプログラム単位に落とし込んで設計したり、データベースの構造設計をしたり、ユーザーの目に触れない部分を設計していきます。最後に「テスト設計」では、開発途中や開発後にどんなテストを実行するのかを設計します。
デザイン
外部設計資料をもとに、アプリの画面や動き(アニメーション)をデザインし、パーツごとに切り分ける作業を行います。デザイナーが実際にイラストやアニメーションを作成したりして、アプリに組み込むための設計も行います。
開発
ここまでの工程が完了すればいよいよ開発工程に移ります。開発では内部設計の内容をもとにプログラムを作成していき、各プログラムを結合したりして、1つの機能、1つのアプリを開発していきます。
テスト
作成したプログラムが正しく動作するかの確認を「単体テスト」、プログラム同士をつないだ機能の動作確認を「結合テスト」と呼びます。これらのテストは開発と同時進行で行われていきます。
全体的なアプリ開発が完了したら、テスト設計によって作成したテスト仕様書(テスト項目書)をもとに、様々なテストを行っていきます。「総合テスト」と呼びます。
受け入れテスト
完成したアプリが発注会社の想定した通り動作するものかどうかを確認するためのテスト工程です。主に、基本機能の動作やデータの入出力、デザインやアニメーションの動きなどを確認してもらいます。
リリース申請
スマートフォンアプリを各OSのストアにアップするためには、リリース申請を行う必要があります。アプリの説明文などストアに掲載する情報を準備し、委託会社がリリース申請作業を行います。
以上がアプリ開発の工程です。委託会社によって多少の違いはあれ、大方この工程に従ってアプリ開発が進められていきます。開発期間はアプリの内容によって差がありますが、スマートフォンアプリならば早ければ2ヵ月以内でリリースされます。
アジャイル開発とウォーターフォール開発、DevOpsの違い
アプリ開発の工程以外にも、発注会社として知っておきたい知識があります。それがスマートフォンアプリを開発するにあたっての、開発方法です。現在主流になっている開発方法には「アジャイル開発」と「ウォーターフォール開発」があります。2つの開発方法の違いを確認していきましょう。
アジャイル開発
スマートフォンアプリの開発において、今一番使用されている方法がアジャイル開発でしょう。アジャイル(Agile)は「俊敏」という意味で、文字通り短期間でのアプリ開発を実現できます。
アジャイル開発では開発期間を複数に区切り、その中で開発工程を繰り返していきます。たとえば要件定義段階で要件ごとに優先度をつけ、それに応じてアプリ開発を進めていきます。
アジャイル開発の利点は、不確定要素の発生を前提にしているため急な仕様変更にも対応でき、常にユーザー視点に立ったアプリ開発が行えることです。アプリ開発は計画通りにことが進まないことも多いため、アジャイル開発を利用することで様々なリスクに対応できます。
ただし、アジャイル開発は計画に曖昧性が残るため全体的な開発期間を予測しづらく、経験豊富なプロジェクトマネージャーの存在がないと、進捗が上手く進まない等の課題もあります。
ウォーターフォール開発
ウォーターフォール開発は古くから使われている開発方法であり、上流工程から下流工程まで一連の工程でアプリ開発を進めていきます。まさに「滝が上から下に流れる(ウォーターフォール)」ようにプロジェクトを進めてきます。先に紹介したアプリ開発工程を、1~8まで順番に実行していくイメージです。
アプリ開発全体を1つのプロジェクトと捉えて開発を進めるため、確実性が高く進捗管理が用意であり、何を作るかが決定しているアプリ開発や、予算や期間が明確に決まっているアプリ開発に採用されます。
ただし、滝の流れが後戻りしないように、ウォーターフォール開発もまた工程の後戻りができない(難しい)開発方法です。従って企画開発や要件定義段階で計画をかなり煮詰めないと、後々にプロジェクトを覆すような仕様変更が発生する可能性もあります。
DevOps
たとえばインターネットを通じてサービスを提供している会社の場合、顧客の要望に合わせて多様な機能やアプリケーションを継続的に提供し、顧客満足度を満たすことができます。もしもデプロイした機能やアプリケーションが不評だったとしてもさしたる問題にはなりません。迅速にフィードバックを得て新しいものを提供できるのですから、それも顧客満足度向上に繋がります。
システムの信頼性を維持するという点においてもDevOpsは有効です。DevOpsでは開発チームと運用チームが協力体制を取り、コラボレーションツールを活用することで開発や運用に関する様々な情報を共有します。なので他のメンバーが修正途中のプログラムを誤って消してしまうといったミスは無くなりますし、管理台帳の一覧性と検索性が弱いといった問題も排除できます。DevOpsを取り入れることで開発チームと運用チームの間や個々に存在した問題は解消され、スピーディかつ信頼性の高い開発運用体制を目指せます。
どの開発を採用するかによって、発注会社と委託会社のかかわり方も変わってきます。アプリ開発依頼時に委託会社の開発方法を明示してもらい、どんなコミュニケーションが最適なのかを考えましょう。
アプリ開発へ積極的に関わろう!
アプリ開発工程において「外部設計まで発注会社の仕事」と考える方もいらっしゃいますが、実際は内部設計や開発中も、委託会社と積極的にコミュニケーションを取ることが大切です。委託会社も顧客満足度の高いスマートフォンアプリを開発したいと考えているので、開発を丸投げされるよりも、積極的にコミュニケーションを取ってくれる方がより良いアプリが開発できると考えています。アプリ開発工程全体を通じて、発注会社として何が出来るかを常に考え、委託会社と一緒になってアプリ開発を成功させましょう。
- カテゴリ:
- トレンド