ソフトウェア開発の代表的な2種類の手法を知り外注先を選択しよう

ノートパソコンを操作する人

更新日:2017年09月27日 | 公開日:2016年07月30日

ソフトウェア開発の手法には「ウォーターフォールモデル」「アジャイルソフトウェア開発モデル」「スパイラルモデル」「プロトタイピングモデル」などの様々な手法があります。
それぞれ名前は聞いたことがあるかもしれませんが、「それって外注先の仕事の進め方のスタイルの問題で発注先はあまり関係ないのでは?」と思っている方もいるかもしれませんが、そんなことはないのです。

「ウォーターフォールモデル」はどんな開発に適しているか・適していないか

滝

ウォーターフォールモデルは古くからあるもっともポピュラーな開発手法で、この開発手法を経験したことがないという開発会社は、少し前まではほとんど存在しませんでした(現在はアジャイルしかやったことがない、という会社も多く存在します)。

ウォーターフォールモデルにおいては、「要件定義」「外部設計(基本設計)」「内部設計(詳細設計)」「実装(プログラミング/コーディング)」「評価(テスト)」「運用、保守」といった工程を、原則として前工程に戻ることなく、進めていきます。
ちょうどその様子が滝が上から下に落ちるように一方向に行われるので、ウォーターフォール(滝)型と呼ばれます。
ソフトウェアでは、設計段階のことを「上流」、コーディングなどの段階を「下流」といいますので、その川の流れを一気に一方向に流すという意味で、こうした名前がつけられているわけです。

ウォーターフォール型では、開発の流れは原則として各工程が完了したことをもって次工程に進みます。
したがって、工程の進捗が管理しやすい事がこの手法のメリットといえます。
一部では、ウォーターフォール型は完全に過去の開発手法である、という意見もありますがそれは言い過ぎで、製品の仕様が最初からきちっと決まっている場合(大規模な基幹系システムなど)にはこの方法で開発することが適しています。

逆に、下流に進むにつれてシステムが具体的に見えてきて、その都度ユーザからの修正要求などに対応しなければならない場合には、この手法は柔軟性にかけるので不向きといえます。

「アジャイルモデル」はどんな開発に適しているか/適していないか

タブレットとスマホ

ウォーターフォールモデルの、一方向に開発工程が流れていくことを前提とするという手法の弱点を克服するために考案された開発手法の一つが、アジャイルソフトウェア開発です。

アジャイルでは、開発対象を多数の小さな機能に分割し、1つの反復単位 (イテレーション) で1つの機能を開発します。
この反復のサイクルを継続して行い、クライアントにテストをしてもらいながら1つずつ機能を追加開発していきます。
よくアジャイルは「テスト」を繰り返して完成度を高めていく手法だ、という説明がありますが、それは間違っているとまでは言わなくとも、アジャイルの本質を捉えているとはいえません。

テストをベースにするというだけならば、プロトタイピングモデルが代表的な開発方法です。

【 プロトタイピングモデル 】とは

■ 要求のプロトタイプ(ユーザの評価・修正)
■ 設計のプロトタイプ(ユーザの評価・修正)
■ システムのプロトタイプ(ユーザの評価・修正)
■ 最終テスト

プロトタイピングモデルでは、上記のように各工程でプロトタイプを作成してユーザの評価を得て、必要ならば修正を行います。
例えばウェブアプリの重要な機能の一部をjQueryなどで実装して「だいたいこんなイメージで動きますよ」という部分をユーザーに示して完成形のイメージを共有し、実際にバグがないように完成させるのがプロトタイピングモデルです。

アジャイルは違います。
アジャイルでは「やりたいことはこういうことか?」という部分を繰り返しクライアントに確認しながら、1つずつ機能を追加開発していきます
各イテレーション(反復)が完了するごとに追加した機能を実装したソフトウェアが完成形としてリリースされ、実現した機能以外の、まだ未着手の各機能の優先度を評価し直して、次の開発に移行します。

アジャイルソフトウェア開発手法は、Webアプリケーションやスマホアプリなど市場環境の変化に速やかに適応することが求められるケースに威力を発揮します。ユーザからの修正要求や技術的な革新(OSのバージョンアップなど)に素早く対応しなければならない開発に向いています。

その反面、工程の進捗管理が非常に困難なので大規模な開発には向きません。

【まとめ】目的に適した開発スタイルの選択を

実際には、自社で依頼したい案件によって「ウォーターフォールモデル」「アジャイルモデル」のどちらが適しているかは違ってきます。
当然、それぞれ得意な開発スタイルをもつ外注候補先に見積り依頼を取らないと、プロジェクトの成功はおぼつきません。

ビジネスマッチングサイト『アイミツ』では、システム開発の発注に関する専門知識を持ったコンシェルジュが、信頼のおける業者を完全無料で紹介することができます。

まずはお気軽にお問い合わせください。
すぐれたコンシェルジュが、あなたの会社に合った企業選びを全力でお手伝いさせていただきます。

いま知りたいこと
コンシェルジュが解決します!

コンシェルジュサービスは
3万社以上が利用している無料の相談サービスです。

コンシェルジュ