スパイラル開発とは
スパイラル開発とは、システムの開発工程を機能ごとに分けて、重要な機能から開発していく手法のことです。システム開発の手法はほかにも「ウォーターフォール開発」や「アジャイル開発」、「プロトタイプ開発」などがあります。
スパイラル開発の最大の特徴は、機能ごとに要件定義や設計、開発、テスト、評価、改善の工程を繰り返し、プロダクトの完成度を徐々に挙げていく点です。プロダクトが完成したら本番環境へ移行し、運用・保守のフェーズに入ります。
なお、アジャイル開発はスパイラル開発と同様に開発工程を繰り返しますが、ウォーターフォール開発は工程の後戻りができません。そんなウォーターフォールのデメリットを改善するために作られた手法がプロトタイプ開発です。工程の途中でプロトタイプ(試作品)を作ってクライアントとすり合わせながら開発を進めます。プロトタイプの作成はスパイラル開発でも行われます。
スパイラル開発のメリット・デメリット
スパイラル開発のメリット・デメリットを詳しく見ていきましょう。
メリット:仕様やスケジュール変更がしやすい
綿密にスケジュールを組んで進めるウォーターフォール開発と違い、スパイラル開発は最初にプロダクト全体の設計をしません。機能ごとに設計や開発、評価を進めていくので、途中でクライアントから仕様変更や機能追加の要望があっても、スケジュールを調整して柔軟に対応できます。さらに、評価と改善を短期的に繰り返し、機能ごとに完成させていくので手戻りが最小限になります。
デメリット:プロジェクト全体像を把握しにくい
最初に綿密な計画を立てないことは、デメリットにもなり得ます。プロジェクトの全体像が見えないので、最終的にどのくらいの時間・開発コストが必要になるのか把握しにくいのです。仕様変更を繰り返すとその分作業量や開発コストが増えるうえ、リリースまでに時間がかかってしまいプロジェクトが遅延するケースもあるので要注意です。
\ 開発ツール の製品を調べて比較 /
製品をまとめて資料請求!
資料請求フォームはこちら
スパイラル開発とアジャイル開発の違い
スパイラル開発と同様、機能ごとに開発工程を反復するアジャイル開発は何が違うのでしょうか。混同されやすいので、わかりやすく解説します。
計画と品質のどちらを優先するか
スパイラル開発は品質を重視する手法です。
開発する機能の方向性を明確に決め、それを具体化したプロトタイプを作成し、クライアントに評価してもらいます。プロトタイプはひと通りの動作確認をするだけで、はじめのうちは品質が定まっていません。ビジネスの観点からプロトタイプの検証や改良を繰り返し、1つずつの機能を完成形へと近づけます。
それに対して、アジャイル開発はプロジェクトの管理や計画重視の手法です。
最初から明確に計画を立てず、機能単位で要件定義・設計・実装・テストを実施するのは、スパイラル開発と同様です。アジャイルの直訳「素早い」という意味のとおり、開発がスピーディであるのが特徴でしょう。1つの機能がある程度完成する度にリリースし、要望に応じて機能を追加していくので、スパイラル開発と比較すると計画的に進みます。
どのタイミングでリリースするか
スパイラル開発では、機能ごとにプロトタイプを早期に作り、クライアントの評価を得ながら、開発と改良を繰り返すことで品質を向上させます。最終的に、すべての機能の品質が保証されればシステム全体が一挙にリリースとなります。
それに対して、アジャイル開発の場合は1つの機能の開発が完了し、品質が保証された段階で、その都度リリースされます。リリースを重ねるごとに機能が増えてシステム全体を完成させる、というイメージです。サービスを稼働させながら、短い期間でシステム全体の開発を行えます。
スパイラル開発とアジャイル開発の実情
つづいて、スパイラル開発とアジャイル開発の実情を見ていきましょう。
スパイラル開発の普及率は低い
スパイラル開発の普及率が低い主な原因は、開発コストです。スパイラル開発は、プロトタイプを作成して評価を行い、評価後に再び追加開発・改良を繰り返す開発手法です。
プロトタイプで適切な評価を行うために、必要な機能はひと通り動作しなければなりません。つまり、プロトタイプの追加開発・改良をする度に、コストが膨らんでしまうのです。
限られた予算で開発するプロジェクトが多いため、コストが大きくなりやすいスパイラル開発はあまり普及していません。
アジャイル開発が主流になりつつある
ウォーターフォール開発は、システム全体について要件定義や機能の設計を詳細なレベルまで固めてから、各工程を完了させていくので予算や納期を遵守しやすいでしょう。しかし、途中で仕様変更があると手戻りする範囲が大きくなってしまいます。
そこでウォーターフォール開発よりも仕様変更に対応しやすいことから、スパイラル開発が登場しました。さらにWebの普及に伴い、ソフトウェア開発においてより迅速な対応が求められるようになったため、アジャイル開発が広まっています。
アジャイル開発は仕様変更に対応できるだけでなく、リリースの期間も短くできるため、国内でも徐々に広まり、現在の主流となっています。
アジャイル開発の注意点
アジャイル開発にもデメリットがあります。適切に開発を進めるためにも、アジャイル開発の注意点を見ていきましょう。
開発の方向性がブレる可能性がある
アジャイル開発は柔軟に仕様変更に対応できるように、設計段階では詳細まで決めません。それゆえ、開発のゴールを明確に決めていなければ、繰り返される仕様変更により方向性がブレてしまいます。結局どのようなシステムを開発したいのか分からなくなり、完成品の品質を落としてしまうでしょう。
このような事態を防ぐためには、アジャイル開発の理解を深めることと、目的を明確にする必要があります。開発を依頼するクライアントがアジャイル開発について正しく理解していないと、たびたび仕様変更してしまう事態になりかねません。
クライアントとのコミュニケーションを密にし、どのように開発を進めていけば良いかよく話し合いましょう。また、同時にどのようなシステムを開発したいのか目的も明確にしてください。
納期に間に合わない可能性がある
アジャイル開発は仕様や細部の機能変更が容易であるため、必要以上に修正する事態に陥りやすいです。また、開発とリリースを繰り返せば、全体のスケジュールも把握しにくくなります。結果的に納期に遅れてしまう可能性が高いです。
開発段階で、納期や全体のスケジュールは決めなくてはなりません。開発期間が長くなればコストもかかるため、全体の計画を細かく設定しましょう。
それぞれの開発手法の違いを理解して、適切な選択を!
アジャイル開発とスパイラル開発は同じ反復型の開発手法ですが、開発の特徴が異なります。
スパイラル開発は機能ごとにプロトタイプを作成してシステム全体の品質が高くなった段階でリリースしますが、アジャイル開発は機能ごとに開発が完了したらリリースします。現在は、早期リリースが可能なアジャイル開発が主流です。
開発手法の違いを理解して、プロジェクトによって適した方を選びましょう。