本記事では、スパイラルモデルについて解説していきます。

またスパイラルモデルとは別の開発方法のウォーターフォールアジャイルプロトタイプとの違いも見てみましょう。


スパイラルモデルとは?

考える男性


スパイラルモデルとは、ソフトウェアや情報システムの開発工程のモデルの一つ。

システムを複数のサブシステムに分け、それぞれのサブシステムごとに開発を進めていく手法です。

スパイラルモデルは、システムを複数のサブシステムを分けていく作業から取り掛かっていきます。

複数のサブシステムに分けるのは、開発の規模が大きいシステムはクライアントに完成品が届くまで長い時間を要するからです。

サブシステムを分散させることにより、サブシステムごとに試作品をクライアントに確認してもらえることができます。

これによって大きな手戻りが減少し、システム全体のクオリティーを上げていくことに繋がっていくのです。


スパイラルモデルの開発の流れ


作業と確認を繰り返すのが特徴

サポートエンジニア


システムに複数のサブシステムを設けていきます。(例:サブシステム1・サブシステム2・サブシステム3)

  1. サブシステム1の検討、設計、製造、テストをおこなう。
  2. サブシステム1の完成品をクライアントに確認してもらう。
  3. クライアントの要望をサブシステム2にも反映し、サブシステム2の開発に取り掛かる。(検討、設計、製造、テスト)
  4. サブシステム2の完成品を、再びクライアントに確認してもらう。
  5. クライアントの要望をサブシステム3にも反映し、サブシステム3を開発していく。

このようにスパイラルモデルでは、サブシステムごとに試作品を作成させるのです。

そしてクライアントに確認してもらうという作業をシステムが完成するまで繰り返し行っていきます。


身近なものに例えると


あまりピンとこないという人もいると思いますので、次はもっと簡単に身近なものに例えて説明してみましょう。

ピザ屋を経営しているオーナーがいるとします。オーナーは新規顧客獲得のために新作のピザの開発を考えている人です。

新作ピザの開発はオーナーが生んだ新しいプロジェクトですので、ある程度の完成イメージや工程を立てました。

そこで店の調理長に新作ピザのイメージや工程を共有し、6週間の間で完成させるよう伝え作業に取り掛からせます。

また、イメージの共有のため6週間の間に3回の試作品会を実施することになりました。

つまり

  1. オーナー(クライアント)が料理長(開発者)に簡単なプロジェクト計画を共有
  2. 完成の期日(納期)を決め開発をスタートさせた

ということです。


3つの工程

複数のコンピューターや画面


新作ピザ作りのための3つの工程は以下の通り。

  1. 生地作り(サブシステム1)
  2. トッピング(サブシステム2)
  3. 焼き方(サブシステム3)

これがシステムに複数のサブシステムを設けるということになります。

早速生地作り(サブシステム1)に取り掛かり、

  1. 設計
  2. 製造
  3. テスト

以上の工程を経てオーナーに完成した生地を確認してもらいました。

オーナーに意見をもらい、完成した生地を使ってトッピングに入ることにします。

トッピング作り(サブシステム2)では、生地作りの工程で完成した生地をもとにトッピングを追加。

同じく設計→製造→テストの工程を経てオーナーに確認してもらい、最後の焼き方の工程に進むことになりました。

焼き方の工程(サブシステム3)でも同じように2つの工程で完成した生地とトッピングを元にします。

設計→製造→テストを行いオーナーに最終確認をしてもらうことになりました。

オーナーに意見をもらい細かい箇所を修正し、ついに完成です。

このように設計→製造→テストを繰り返していくことで完成品を目指すのがスパイラスモデルとなります。

スパイラルは日本語で「螺旋」という意味。

サブシステム毎に何度も何度も同じ工程を繰り返していくことからスパイラスモデルという名前なのです。


スパイラルモデルの導入メリット

チームで開発


スパイラルモデルは、プロジェクト計画段階で詳細を細かく決めません。

小さい単位ごとに計画を立てていき

  1. 設計
  2. テスト
  3. 試作品

という流れで成り立っています。

長期的な計画は、計画の変更や追加箇所が生じるとスケジュール調整が困難です。

スパイラルモデルは計画変更が起こっても柔軟に対応できるということが大きなメリットといえるでしょう。

各セクションで試作品をユーザーやクライアントに見てもらえることから、イメージの共有がしやすくなります。

仕様変更の要望を貰いやすく、次のセクションで要望を取り入れることができることで変更や修正に柔軟に対応できることも可能。

そのためユーザーやクライアントのフィードバックから、不具合や問題点にも素早く気付かることもメリットの一つです。

また、他の開発手法に比べ手戻りが難しくないため途中変更や、やり直しなどの負担を最小限に抑えることが可能といえるでしょう。


スパイラルモデル導入の注意点

デスクでパソコンに向かう男性


スパイラルモデルはアジャイルモデルと同様、プロジェクトの開始段階で詳細を決めません

そのためプロジェクトの進捗状況の把握が難しく、当初の完成イメージとは異なる可能性があります。

また、サブシステムが増えれば増えるほど開発コストは増えていくため注意が必要です。

しかしウォーターフォールモデルとプロトタイプモデルの長所をうまく組み合わせた形であるともいわれています。

高品質でありながら要望にも臨機応変に対応できるというのがスパイラルモデルの長所です。

プロジェクトの進捗状況の管理と全体像の把握を徹底することで優良な完成品を目指せるといえます。


ソフトウェア開発とは


ソフトウェアの分類


そもそもソフトウェア開発とは、顧客のニーズやマーケティング分析を行い、そこからソフトウェア製品に変換していく一連のプロセスのことです。

ソフトウェア開発は大きく分けて3つに分類することができます。

  1. システムソフトウェア
  2. アプリケーションソフトウェア
  3. 組み込みシステム


システムソフトウェアとは

コンピューターを動かすために必要不可欠なものがシステムソフトウェアです。

誰もが知っているWindowsのオペレーションシステム(OS)などが代表的なものとして挙げられます。


アプリケーションソフトウェアとは

タブレット PC 画面上の JAVASCRIPT のコンセプト


ユーザーの利用目的を果たす機能を持つソフトウェアが、アプリケーションソフトウェアです。

ゲーム機やゲームソフト、Word Excelなどの計算ソフトなどが代表的なものとして挙げることができます。


組み込みシステムとは

家電機器や機械などを動かすために内部に組み込まれたものなどが、代表的な組み込みシステムです。


スパイラルモデル以外のモデル


ソフトウェア開発にはいくつかの手法があります。ソフトウェア開発の現場で使われている手法は大きく分けて4つです。

  1. ウォーターフォールモデル
  2. アジャイルモデル
  3. プロトタイプモデル

と上記で説明したスパイラルモデルの4つになります。簡単にそれぞれの手法の特徴について一つずつ解説していきましょう。


ウォーターフォールモデルとは


ウォーターフォールモデルとは、システム開発を

  1. 計画
  2. 外部設計
  3. 内部設計
  4. プログラム設計
  5. プログラミング
  6. テスト

という工程に分けて段階を踏んで開発を行う手法です。

一つ一つの工程を順に進めていき完成させることで、原則的に前の工程に戻ることはありません

それが滝(ウォーターフォール)のように流れていくことから、そう呼ばれるようになりました。

ウォーターフォールモデルは一つ一つの工程を完成させ、簡単に後戻りできないような大きなプロジェクトに適用されるケースが多いです。

一つの工程に大人数が関与し、順にプロジェクトを進めていく方法は日本企業にも採用されるケースもあります。


ウォーターフォールモデルのメリット

ウォーターフォールモデルは多くの現場で取り入れられています

そのため、一度は経験している人が多いため導入自体が容易であるということです。

また一つの工程を完成させて次の工程に移るので、進捗状況を把握しやすく計画的にプロジェクトを進めることに適している手法といえます。

また各工程を順に進めていくということは、一つの工程が完成した際には品質確保ができているということが大前提です。

大きな手戻りやアクシデントを最小限に抑えることができます。


ウォーターフォールモデルのデメリット

ウォーターフォールモデルの開発手法は、プロジェクトを開始する際に全ての工程を細かく決定したうえでゴールを目指す手法です。

計画通りに進んでいけば大きな手戻りもなくゴールに進んでいくことができます。

しかしながら、途中の工程で問題が生じ途中変更を余儀なくされた際の対処が容易にできません

それがウォーターフォールモデルのデメリットといえます。

想定外の要望が出てきた際には、予算が当初の予算設定を超えたり、納期の遅れが生じたりする可能性があるのです。

また、ウォーターフォールモデルは開発者側がメインに開発を進めていく手法とも言え、途中の段階で問題点を修正していくということが構造上難しいという特徴もあります。

さらにユーザーやクライアントの意見や要望が反映されにくいということも、デメリットの一つといえるでしょう。

ウォーターフォールモデルについては、以下の記事でも詳しく解説しています。

ウォーターフォール・モデルを徹底解説!メリットと好まれるケース、アジャイル・モデルとの違いとは?時代遅れといわれる理由も紹介


アジャイルモデルとは

若いスタートアッププログラマ


アジャイルモデルとは、途中変更をしていく前提で反復(イテレーション)と呼ばれる短い開発周期を取り入れる手法です。

これによりリスクを最小限かつ迅速にプロジェクトを進めていくことができます。

ちなみにアジャイルとは「俊敏、すばやい」という意味の単語です。

小さい単位で設計→実装→テストという工程を繰り返すのが特徴。

不具合や問題点を発見しやすくなり容易に修正や変更ができることができます。


アジャイルモデルのメリット

アジャイルモデルは小さな単位で開発を進めていくことから、ユーザーやクライアントなどの意見を反映させることが比較的容易です。

小さな単位で開発することで改善点を発見しやすく、手戻りが難しい手法に比べ原因究明も速やかにできます。

また、プロジェクトの開始段階で要件定義を最小限にするため、短時間で納品できるのもアジャイルモデルの大きなメリットといえるでしょう。


アジャイルモデルのデメリット

アジャイルモデルは途中変更や修正が簡単にでき、短期間で完成品を作ることができます。

その一方、プロジェクトの開始段階での計画は最小限で済ませるためにプロジェクトの進捗管理が難しいというのがデメリットです。

ウォーターフォールモデルのように厳密に計画を立てて開発に着手する手法と比べ、マネジメント管理が難しい面があります。

そのため、経験や力量がプロジェクトを進めていく上で重要です。

また、詳細を細かく決めずにスタートすることから方向性が変わってくるというデメリットも存在します。

開発途中に意見や要望を簡単に追加できることで、開発当初の完成イメージとは違うものになってしまう恐れもあるでしょう。

不要なタイムロスや開発を防ぐためにも、目的やイメージの共有を徹底する必要があります。

アジャイルモデルについては、以下の記事でも詳しく解説しています。

アジャイル開発とは?要件定義やメリットを徹底解説!他の開発手段との違いは?失敗事例とその理由から正しい対策方法もご紹介!


プロトタイプモデルとは


プロトタイプモデルは開発初期段階で簡易的な機能を揃えた試作品を作ることにより、開発工数を減らす手法です。

プロトタイプは「試作品」という意味を持ちます。

簡易的な試作品をユーザーやクライアントに見てもらうことで、完成イメージを持ってもらうのが特徴です。

当初想定していなかった要望や、不要な機能を早期に明確にできます。


プロトタイプモデルのメリット

プロトタイプモデルは、開発早期の段階で簡易的な試作品を提供することが可能です。

試作品の機能は簡単に変更や追加ができるため、必要に応じて修正できることで取捨選択を早期からできることは強みになります。

試作品で操作性や感覚的なフィードバックを直接意見してもらえることも、開発を進めていく上で大きなメリットといえます。

また、技術的な問題や課題点も早期に発見できることから、大きな手戻りやアクシデントが起きにくいでしょう。


プロトタイプのデメリット

プロトタイプモデルは変更や追加を容易にできることで、ユーザーやクライアントの要望や意見を取り入れ易いところが強みです。

しかしその一方、変更を多く加えていくことで当初の目的と大きくかけ離れてしまう可能性があります。

完成品を納品しても、変更を多く加えたことでメンテナンスが困難になりメリットである柔軟性を失ってしまうかもしれません。

他の開発手法に比べ、意見や要望を取り入れてプロジェクトを進めていくことから必然的に変更箇所が増えていきます。

それに伴い、前もって緻密な進行計画を立てることが難しくなっていくのです。

プロジェクト内容によっては、試作品作りに多くの時間がかかってしまうこともあります。

完成品を作り上げるまでに莫大な時間を使う可能性があり、工期や工程が定まらないと開発予算や納期予定を立てることも難しくなるでしょう。

プロジェクト全体のプランが不透明になってしまうことはデメリットとして考えられます。


まとめ

CTO 代表 会社 役員


スパイラルモデルについてと、アジャイル開発など他のモデルとの違い・スパイラルモデルの導入メリットを説明してきました。

スパイラルモデルはシステムにサブシステムを複数設け、

  1. 設計
  2. 製造
  3. テスト
  4. 試作品

という工程を繰り返し行うことで高品質かつ柔軟に要望に応える開発手法です。

プロジェクトの進捗状況の管理全体像の把握を徹底することがスパイラルモデル開発を円滑に進める上で重要になってくるでしょう。