スパイラルモデルを用いた開発体制に巡り合ったことはありますか?スパイラルモデルとは主流な開発手法のウォーターフォールモデルやアジャイル開発とはまた異なった”設計→実装→顧客確認を機能単位で実施しシステムの品質を上げていくことを目的としたモデル”なのです。この記事ではプロトタイプモデルの特徴やメリット及びデメリットについて解説をしていきます。
スパイラルモデルとは設計と試作機の作成を繰り返して実施する開発モデルです。
特徴的なのは”機能単位で要件定義、設計、開発、テスト、顧客確認”を繰り返し実施していくことです。想定している機能単位で繰り返し設計から確認を実施することで顧客は完成品のイメージを具体的にすることが出来ます。顧客からのフィードバックを得やすいこの開発モデルはシステムの質を上げていく上で優秀な開発モデルです。
“スパイラル型開発”や”スパイラルアプローチ”と呼ばれることもあります。
スパイラルモデルにおけるメリットを解説します。
機能単位での”設計→開発”が主となるため、お客様からのフィードバックが得やすく柔軟な対応が実現可能です。品質向上のための意見交換を機能単位ですることでお客様と開発者のイメージも近く質の良いシステム作成できるというメリットがあります。
お客様はシステムの仕様理解に苦しむ方が多いですが、スパイラルモデルでは全体のシステムを機能単位へと分割して開発を実施するため仕様理解の難易度も下がり開発側とのイメージ共有がしやすいため安心して開発を任せることが出来ますね。
主流な開発手法であるウォーターフォールモデルではシステムの全貌をプロジェクト開始時に計画するためスケジュールには非常にシビアです。一方で機能単位へと分割して開発実施をするスパイラルモデルではスケジュール変更が発生したとしても影響範囲はそこまで大きくないため柔軟な対応が可能というメリットがあります。
システム開発においてスケジュール変更とは通常かなりハードルの高いものです。
一方でスケジュールに縛られて本来の目的が盲目になってしまうこともあります。
必要な”仕様変更”や”その他対処すべきトラブル”としっかり冷静に向き合うためにもスケジュールのプレッシャーは高すぎない方が良いですね。
スパイラルモデルにおけるデメリットを解説します。
機能単位で開発を実施し、お客様からフィードバックをもらうスパイラルモデルでは問題・改善点の量や範囲によっては開発当初の想定よりも遥かに費用と時間が積み重なる可能性があります。
品質の高いシステムを目指すために顧客とのコミュニケーションを取りやすいモデルである一方で都度イレギュラーなお客様の要望を受け続けていると費用が重むお客様側も工数負担が大きい開発側もあまり良い思いは出来ません。互いに開発初期段階での想定範囲を広く持つこととフィードバック時のルールを明確にしておくことで想定外の費用の積み重ねを防ぎましょう。
スパイラルモデルと同様に機能単位で開発を分割していくことで類似する2つの開発モデルを紹介します。
インクリメンタルモデルはシステムを独立性の高い機能単位に分割し、機能毎に設計、コーディング、テストを行い、追加していきながらシステムを完成させる開発モデルです。
スパイラルモデルとの違いとして機能単位での開発を並列進行させるという点があります。
インレーティブモデルは開発初期段階から全体像、ユーザーエクスペリエンス(UX)を大切にすることを軸に置いた上で機能単位での開発を進行していくモデルです。
インクリメンタルモデルとイテレーティブモデルそれぞれの特徴を抑えた分かりやすい図を御覧ください。上述の文章と照らし合わせながらご覧頂くことでよりイメージしやすいかと思います。
参照:Incremental is not iterative
スパイラルモデルのそれぞれの特徴とメリット・デメリットをご紹介させて頂きました。
ウォーターフォールモデルなど主流の開発モデルと比べてまだ当モデルを採用するプロジェクトは多くはないのが現状です。その原因に質を追求するあまりにそれと比例してコストが膨大になってしまうことが挙げられます。初期段階でのルール決めや想定外の反復コストを予め導入しておくことでバランスを取りながら進められる開発会社様はスパイラルモデルでの開発も検討の一つに入れてみると良いかと思います。