大規模案件には必須?スパイラル開発とその手順とは?
どのような業界、業種でもシステムの導入は必須と言っても良い時代になっています。 様々な業務をシステム化することによって、私達のビジネスは加速度的に成長することが出来るのです。 そんなシステム開発の手法として、アジャイル開発やウォーターフォール型開発などがあります。 今回はそんなシステム開発の手法の一つである「スパイラル開発」について見ていきましょう。
スパイラル開発とは
スパイラル開発とは スパイラル開発とは、全体の設計を完璧に行ってからシステム開発を行うのではなく、 「1つ1つの機能(小単位のシステム)を設計→開発→テスト→修正」 を行っていき、徐々に全体を開発していく手法になります。 アジャイル開発と似ている様に感じる人も多いと思いますが、大きな違いは 「品質が保証されていない段階でユーザーに披露する」 という点です。 アジャイル開発は、「素早い」という意味合いを持つため、開発の完成をより迅速に行うために使われますが、スパイラル開発は品質を高めることに重きを置いているので、品質が保証されてない段階で披露し、より高い品質になるように意見をもらうのです。 スパイラル開発では、小さい単位での開発を行い、その内容を評価・修正し、より高いレベルのシステムにしてから次へ進むため、螺旋階段の様に「設計→開発→修正」と同じ工程を繰り返しながらも、品質としてはどんどんと高くなる事が名前の由来です。
スパイラル開発の手順
スパイラル開発の手順 では、スパイラル開発はどのような手順で行われるのでしょうか。
要件定義・設計
まずは、小さい単位での要件定義や設計を行っていきます。 全体の設計を行うわけでは有りませんので、打ち合わせの時間としては短く、参加者としてはクライアントのシステム部門と各業務の担当者やその部署の責任者程度の少人数での打ち合わせになります。
開発・テスト
開発とテストを行いますが、いわゆる結合テストのような形で全体評価を行うわけでは有りませんし、前述したように 「品質の保証がされていない段階でクライアントに披露する」 事から、テストに多大な時間をかけません。
評価
開発した物を実際にクライアントに見せて評価をしてもらいます。 この段階でバグの洗い出しや、操作性の仕様変更、データ項目の追加・削除などを行い、再度設計の打ち合わせに戻ります。 この工程を繰り返しながら品質を高めていきます。
スパイラル開発のメリット
スパイラル開発のメリット では、このスパイラル開発にはどのようなメリットが有るのでしょうか。
修正が少なくなる
何度もテスト→評価を行っていくため、最終的な修正は少なくなります。 例えば、ある程度まとまった単位でシステム開発からテストまでを行い、クライアントに納品した場合、相手としては 「思ったものと違っていた」 「仕様が伝わっていなかった」 「伝え忘れていた仕様がある」 「いざ使ってみると使いにくい」 という認識のズレが生まれることが多々あります。 そのタイミングで修正依頼をしても、 「データ構造を変えないといけないから追加費用をもらいます」 などのような事になれば、クライアントとしても不満が残りますし、作る側も修正が大変です。 そのため、スパイラル開発によって少しずつクライアントに評価をされている状態は、認識のズレなどが起こりにくく、最終的な修正は少なくなります。
仕様変更が容易
スパイラル開発では、全体の設計を先に行っていないという特性上、使用の変更を容易に行なえます。 特に、これまでアナログでの仕事しかしてこなかった部門のシステム化や、担当者が非常にアナログな場合には 「思わぬ所で更に開発が必要になった」 「聞いていなかったけど、他社システムを導入していた(担当者も忘れていた)」 などのトラブルがよくあります。 そういった仕様変更に対処しやすいのも大きなメリットでしょう。
スパイラル開発のデメリット
スパイラル開発のデメリット では、スパイラル開発にはどのようなデメリットがあるのでしょうか。
全体像を把握しにくい
1つずつの機能を順に開発していくと、どうしても全体像が把握しにくくなるというデメリットがあります。 例えば、 「このデータは、A、B、Cの3部門に関連性の強いデータだから、・・・というデータ構造にして、マスター管理しておこう」 というような全体の設計がしにくくなります。 また、全体の設計を行っていない分、費用が読みにくいため、システム会社の営業としても扱いにくい案件となる可能性があります。
開発期間が伸びるケースも多い
アジャイル開発との違いとして「質を取るか納期を取るか」というお話をしましたが、スパイラル開発では、設計と開発を繰り返すため、開発期間が伸びることが多いです。 また、評価をクライアントにしてもらう回数も多くなるため、クライアント側のスケジュールによっても、納期が延びてしまう可能性があるでしょう。
思わぬ障壁が後から出てくることも
順番にシステムを開発していくにあたって、 「A部門のシステム開発は終わっているのに、B部門の開発を行う過程で、A部門用のシステムも変更する必要が出てきた」 という事も考えられます。 何度も開発・評価を繰り返してきただけに、仕様や運用方法もガッチリと決めてしまっている事も多く、後から戻って修正や対応するのが難しいケースも出てくるでしょう。
スパイラル開発向きの案件
スパイラル開発向きの案件 では、一長一短のスパイラル開発は、どのような案件で使える手法なのでしょうか。
大規模案件
規模が大きければ、全体の詳細なシステム設計を行うのは非常に困難です。 そのため、システムを複数に切り離して考え、各システムをスパイラル開発していく方が向いているケースも多いです。
相手がシステム開発に慣れていない場合
相手がシステム開発に慣れていない場合、 「システムを開発する上では重要な事なのに、その認識が担当者にない」 ということが多々あります。 例えば、文字数制限などは誰しも経験したことがあるのではないでしょうか。 システム開発をする上では、データベース上のカラム文字数の制限を行い、画面上でも文字数チェックを行うなど、エラーが起きない様に開発しますが、文字数の制限が変更になると、いくつもの画面や関数を修正する必要性が出てきます。 しかし、システムに詳しくない人間からすると 「文字数くらい後からいくらでも変更できるでしょ」 という感覚だったりします。 この様に、システムに慣れていない人がクライアントの場合には、スパイラル開発にて少しずつ要件を詰めていく方が、確認事項の抜け漏れを防いだり、クライアントの細かい同意を得られるなど、スパイラル開発が向いているケースも多いです。
現場利用システムで現行業務をしっかりと把握できていない場合
ある程度の規模の会社になれば、システム部門が存在するかと思います。 そういった会社では、システム部門が中心になってシステム会社と打ち合わせをする事も多いですが、システム部門の人間が現行業務を把握できていないケースも多いです。 そのため、思わぬ仕様変更が発生するなどのリスクがあるため、スパイラル開発の方が向いているケースもあります。
システム開発ならAMELAに
システム開発ならAMELAに 様々なシステムの開発手法がありますが、「完璧な開発手法」は存在しません。 どの手法も優れていますが、「向いていない案件」というものが存在します。 ですので、システム会社を選ぶ際は、知見の広さや経験を見ていく必要があります。 AMELAは、様々な業界で活躍するシステム会社であると同時に、ITコンサルティング事業も行っているため、 「業界全体の知見を持った企業」 であると自負しております。 システム開発を依頼した事が無い会社も、AMELAに相談すれば、これまでの疑問が全て解決し、自社に最も合った方法でIT化を行うことが出来るでしょう。 時代の急速な変化に対応するためにも、これから大きく成長するためにも、是非AMELAにシステム相談をしてみてはいかがでしょうか。