アプリケーション開発手法の種類とそれぞれの特徴

 2020.05.08  BizApp チャンネル編集部

アプリケーションを開発する手法は1つではありません。いくつかの手法の中から最適なものを選択し、より品質の高いアプリケーション開発が求められます。本記事でご紹介するのは、ウォーターフォール開発、アジャイル開発、プロトタイピング開発、スパイラル開発の4種です。それぞれの概要と、どのようなメリット・デメリットがあるのかを一緒に確認していきましょう。

application-development-method

ウォーターフォール開発

アプリケーション開発手法の中で最もポピュラーなのがこのウォーターフォール開発です。数十年前から手法が確立されており、今日に至るまで現役の開発手法として多くのアプリケーション開発で採用されています。

特徴は、開発工程が一連の大きな流れに沿って進められることです。アプリケーションの要件定義に始まり、外部設計(UIやデザインなど)から内部設計(プログラム的な部分)に落とし込まれ、開発とテストを経て運用へと至ります。このように上流工程から下流工程への順番に開発を進めていく姿が滝の水のようにも考えられるため、ウォーターフォール開発と呼ばれています。

メリット

最もポピュラーな開発手法なので、この手の経験を持つ開発者が多いというのが最大のメリットです。IT人材不足が叫ばれている中、より多くの開発者を確保できるのが大きなアドバンテージになります。

また、ウォーターフォール開発や上流工程から下流工程へと流れるにあたり、各工程の明確な成果物が設定されています。その要件を満たさない限り次の工程へは進めないようになっているので、1つひとつの品質を担保しながら開発を進められることと、スケジュール管理が行いやすいのがメリットです。

デメリット

デメリットもまた、上流工程から下流工程へと大きな流れに沿って開発が進むことが関係しています。アプリケーション開発途中に設計や仕様に関する変更が生じた場合、ウォーターフォール開発では後戻りが難しいのです。そのため、途中での要件変更が生じると想定以上に大きな手戻りとなり、開発スケジュールに遅れが生じるケースが大半です。

一度手戻りが発生すれば前工程をすべてやり直さなくてはいけないケースもあるので、開発者にとっての負担も大きくなります。

「Microsoft Power Platform」と「脱Notesソリューション」について
脱Notesに「新風を吹き込む」Microsoft Power Platformの可能性について

アジャイル開発

アジャイルは「俊敏」という意味で、文字通り素早い開発スタイルを得意として手法です。アジャイル開発が登場した背景には、従来の開発手法では顧客やユーザーが求めるビジネス要件を十分に見せていないという問題があります。そこで、アプリケーション開発分野において名声のある17名の開発者が、米ユタ州スノーバードに会して彼らがそれぞれ個別に提唱してきた開発手法の重要な部分を統合することで、「アジャイルソフトウェア開発宣言」という文書を発表します。

アジャイル開発では、アプリケーション開発は途中での要件変更が往々にして発生することを前提に、柔軟性の高い開発スタイルを確立したものです。要件定義の優先度に応じて設計・開発・テストを実施し、各プログラムを統合して1つのアプリケーションを完成させます。

アジャイルソフトウェア宣言

メリット

アジャイル開発のメリットはやはりその柔軟性にあります。ウォーターフォール開発のような手戻りはなく、途中での要件変更が生じても変更すべきコンポーネントだけを修正するため、手間がかかりません。また、イテレーションと呼ばれる小さい開発サイクルをいくつも用意するため、個別の品質改善が行いやすいのが特徴です。

デメリット

デメリットは、アジャイル開発における豊富な経験と高いスキルを持ち合わせた開発者が少ないことです。また、アジャイル(俊敏)という名称からアプリケーション開発を素早く完了できると誤解しがちですが、あくまで柔軟性の高さを示す名称です。むしろ開発状況によっては、ウォーターフォールよりも時間がかかる可能性があります。

プロトタイピング開発

プロトタイピング開発は実用可能なアプリケーションを早い段階で完成させ、それから修正点へ対応していく方法です。多くの場合は、開発したいアプリケーションの大枠は決まっているものの、細部までは決定していない時に採用されます。ひとまず動作するアプリケーションを作り、都度改善していくため柔軟な対応が可能な開発手法です。

メリット

プロトライピング開発のメリットは、理想とするアプリケーションのイメージが完成していない状態でも開発に取り組めることです。特に開発緊急性の高いアプリケーションに対して有効で、「とりあえず作ってみて使ってみる」ことで、徐々に理想とするアプリケーションのイメージを固めていきます。作りながら修正を加えていけることで柔軟性が高く、時にはより素早く理想形に近づける可能性があります。

デメリット

ただし、計画性に欠ける点がやはりデメリットなため、納期が決まっているプロジェクトには向きません。また、実際に動くアプリケーションを開発するのに時間を要するため、大規模なアプリケーション開発にも向かないでしょう

スパイラル開発

スパイラル開発は一通りの開発工程を繰り返し行うことで、質の高いアプリケーションを開発できる手法です。「開発工程を繰り返す」という点ではアジャイル開発と共通しています。違いは、スパイラル開発ではまだ品質が保証されていない段階でクライアントからの評価を受けながら、開発工程を繰り返して品質を高めていく点です。アジャイル開発ではクライアントに見せる段階で品質が保証されています。

スパイラル開発では一通りの開発工程を終えると、テスト等を実施する前に毎回ユーザーからの評価や光学的な分析を受けて、繰り返し開発工程を行います。これにより、品質改善のスパイラル(連鎖)を生みながら質の高いアプリケーション開発を目指します。

メリット

繰り返しの開発工程の中で、修正点が生じた時に随時アップデートできるのが大きなメリットです。特に会計などの基幹アプリケーションの場合は、会計基準改正など時代の流れに応じて繰り返し修正する必要があります。クライアントの要望と採り入れつつ、満足度の高いアプリケーション開発に欠かせない手法です。

デメリット

デメリットとしては、修正点に応じて開発工程を繰り返していくため、開発コストが大幅に膨れ上がる点です。そのため、素早く低コストにアプリケーションを開発したい場合には向きません。

どのアプリケーション開発手法が最適なのか?

各アプリケーション開発手法には、異なる特徴と一長一短があります。そのため、一概にどの開発手法が正解ということはありません。大切なのは、これから開発しようとするアプリケーションの特徴と目的、ビジネスにおける役割を整理した上で、適切な開発手法を選ぶことです。また、開発ベンダーによって得意とする開発手法が異なるので、アプリケーション開発を委託する場合は各ベンダーの得意領域なども十分に考慮しながら、委託先を選定することが重要になります。この他にも、アプリケーション開発手法には細かい分類があるため、この機会に知見を広げていただければと思います。

脱Notesに「新風を吹き込む」Microsoft Power Platformの可能性について

「Microsoft Power Platform」と「脱Notesソリューション」について
脱Notesに「新風を吹き込む」Microsoft Power Platformの可能性について

RECENT POST「開発」の最新記事


アプリケーション開発手法の種類とそれぞれの特徴
ERP導入ガイドブック

RANKING人気資料ランキング

ブログ購読のお申込み

RANKING人気記事ランキング

RANKINGパートナー資料ランキング