システム開発には様々な開発手法がありますが、その一つにスパイラル開発があることをご存知でしょうか。
この記事では、スパイラル開発とは何なのかについて解説するとともに、他の開発手法との違い、メリット、デメリットについて解説していきます。
スパイラル開発を採用しようと考えており、上記について知りたい方には役立つ記事となっていますので、ぜひ参考にしてみてください。
目次
スパイラル開発とは?その他2つの開発手法と比較し解説
スパイラル開発とは機能ごとに開発工程を分け、開発していく手法で、それぞれの機能に対してユーザーやクライアントからレビューを受けます。
スパイラル開発は案件や開発チームによって異なりますが、工程は主に以下のステップに分けられます。
- 要件定義
- 設計
- 開発
- テスト
- 評価及び改善
上記の工程を繰り返し、システムの完成度を上げていきます。
後ほどメリットの詳細についてお伝えしますが、各工程でレビューを受けるため出戻りが少ない開発手法になります。
ウォーターフォール開発との違い
ウォーターフォール開発とは開発手法の中で認知度が高いと言われている開発モデルであり、名前の通り滝のように上流工程から下へ順番に進められていきます。
ウォーターフォール開発 | スパイラル開発 | |
---|---|---|
開発期間 | 小規模:6ヶ月〜12ヶ月大規模:2年〜3年 | 1工程につき半年程度 |
目的 | 確実さを重視し各工程を確実に完成させる | 未知なるシステムを作りながら完成させていく |
反復回数 | 1回のみ | 数ヶ月行い各工程で完成するまで繰り返す |
仕様変更 | しにくい | しやすい |
人員体制 | ・プロジェクトマネージャー ・設計者・プログラマー | ・プロジェクトマネージャー ・設計者兼プログラマー |
要件定義 | 事前に確定 | 変更を前提 |
おすすめ開発 | 大規模開発、受託開発 | 新製品開発 |
アジャイル開発との違い
アジャイル開発とは優先度の高い工程から開発を進めて行き、最後に各機能を結合させ一つのシステムとして完成させる手法の一つです。
工程を繰り返して開発していく点などスパイラル開発と似た部分があるのが特徴です。
アジャイル開発 | スパイラル開発 | |
---|---|---|
1工程につき1ヶ月程度 | 1工程につき半年程度 | |
目的 | 無駄な作業を省き効率重視で完成させる | 未知なるシステムを作りながら完成させていく |
反復回数 | 1週間から4週間 | 数ヶ月行い各工程で完成するまで繰り返す |
仕様変更 | しやすい | しやすい |
人員体制 | ・プロジェクトマネージャーなどアジャイル開発に熟知している人 ・ユーザーに常に確認ができる人物 ・プログラマー ※固定 | ・プロジェクトマネージャー ・設計者兼プログラマー |
要件定義 | 反復の中で確定させていく | 変更を前提とする |
おすすめ開発 | 小規模開発コミュニケーションレベルで補えることができる | 新製品開発 |
スパイラル開発を行うメリット
急な変更に対応しやすい
開発の初期段階では、システムの全体設計を行わずに開発する機能を一つずつ設計するよう計画していきます。
そのため、ユーザーとの確認がしやすく急な変更にも対応しやすいです。
開発手法によっては完成後に「もう少しこうしてほしかった」や「意図していたものと少し違う」といった齟齬を生じる可能性があります。
それを修正するとなると1から開発する必要が出てくる可能性があります。
スパイラル開発であれば、それぞれのシステムでテスト機を作成しユーザーに確認してもらうため、途中で要件が追加になり、修正が必要になった場合でもスケジュールや仕様の変更に対応しやすいです。
手戻りが少ない
スパイラル開発は設計から開発まで本番に近い機能やテスト機を早い段階で作ることができるため、ユーザーに完成品のイメージを共有しやすくなります。
そのため、開発段階にてユーザーとベンダー側での認識の齟齬を回避することが可能です。
テスト機の段階で本番機を想定しながら操作をすることで不具合に気づきやすくなります。
早い段階でユーザーのフィードバックを受けることで各工程の修正ができ、大きな出戻りが少なくなるのはスパイラル開発の大きなメリットと言えるでしょう。
求められる品質のシステムになりやすい
スパイラル開発は最終段階までユーザーがシステムを確認できないウォーターフォール開発とは違い、システム毎に毎回テストをユーザーに確認してもらい、評価やレビュー、改善をしていくため、完成したシステムの品質を担保しやすいです。
テスト機を実際にユーザーに見てもらうことで、ベンダー側はフィードバックを受けることができ、具体的な改善点を把握することができます。
その改善点を次の開発に活かしていけば高い品質を担保できます。
スパイラル開発を行うデメリット
開発期間が長引く恐れがある
スパイラル開発は工程を分割し、順番に設計を行い、テスト開発、レビューを繰り返していくため、開発の全体像が把握しにくくなります。
仕様やスケジュールの変更に柔軟に対応できるというメリットと相反していますが、これがスパイラルモデルのデメリットになります。
全体像が把握しづらい理由としては、システム毎にフィードバックを受け、 必要に応じて計画が変更されるからです。
全体像を把握しないまま計画の変更が続ければ最終的に目指す方向性がずれ、プロジェクト自体が頓挫する可能性も高くなります。
開発コストがかかる恐れがある
テストを繰り返しながらテスト機を改善していくスパイラル開発はシステムの品質を担保することができるというメリットがありますが、その分開発コストが膨らんでしまい、想定以上の予算がかかってしまうというデメリットがあります。
開発コストが膨らんでしまう理由としては必要とされる機能が当初よりも多く、その結果テスト回数を増やさないといけないことが挙げられます。
また、テスト機とはいえシステムを開発する必要があるためコストがかかります。
品質が確保できる分、コストが跳ね上がってしまうのがスパイラル開発のデメリットと言えるでしょう。
スパイラル開発を実施する流れ
要件定義
開発するプロジェクトの目的・ゴールを基に必要となるシステム要件をまとめて資料に落とし込むのが要件定義フェーズです。
要件定義では以下の項目を決めます。
- 必要な機能
- スケジュール
- 工数(人員)
- 実装の手順
- 予算
他の開発手法であれば、ここで細部まで作り込むのですがスパイラル開発ではそこまで細かく作りません。
ここではシステム全体の機能を細かく分けて重要度の高い機能を並べるのがメインになります。
実装(開発)
要件定義で資料にした仕様書を基にプログラムを開発します。
こちらは一般的な開発と同様にチームごとに、どのシステムを開発するのか分けて進めて行き、その後に各プログラムを結合していく流れになります。
テスト
作成したシステムを動作させレビューしていきます。
他の開発方法では完成形のものをレビューするため、テスト機はありません。
スパイラル開発においてはテスト機を開発して本番を想定してテストしていきます。
レビュー・改善
テストではユーザーとテスト機を共有し、バグはないか、不具合はないか、双方に認識のズレはないかなどシステムの品質を高めるため様々な方向から評価とレビューをしていきます。
スパイラル開発においてはこのレビューが重要であり、集めたフィードバックから改善点を見つけ、次の開発へと活かすことで品質を向上することができます。
全ての実装が完了後、リリース
全てのレビューが完了し、システムが完成すれば本番環境へのリリースが始まります。
ベンダー側としては、ここでプロジェクトが完了になりますが、場合によっては運用・保守のサポートを行います。
コストを抑えて開発するならパッケージ開発がおすすめ
デメリットでも記載した通り、スパイラル開発は費用が大きくかかります。
そのため、コストを出来る限り抑えたい場合には向いていません。
コストを抑えてシステム開発を行うならパッケージ開発がおすすめです。
必要なシステムは事前に標準化されており、直感的な操作で開発ができるだけでなく、すぐに機能の搭載が可能です。
専門的な知識を持ったエンジニアがいなくても開発ができるため、開発に必要な人件費を最小限に抑えることができます。
まとめ
スパイラル開発とは何なのかに加え、メリット、デメリットについて解説しました。
スパイラル開発は出戻りが少ないなどのいくつかのメリットがありますが、 開発期間が長くなりコストがかかる可能性があります。
もし、マッチングサイトの開発を考えているならパッケージ開発のマッチングクラウドがおすすめです。
コストや開発期間を抑えることはもちろん、開発後のサポートが充実しており、 機能の追加に費用はかからないため、事業の成長に合わせてサイトのカスタマイズをすることができます。
マッチングサイトの開発には当社のマッチングクラウドへお気軽にご相談ください。