ホームITウォーターフォール、アジャイル、スパイラル……情報システム部門が必ず押さえるべきシステム開発方式の違い

IT Insight

ウォーターフォール、アジャイル、スパイラル……情報システム部門が必ず押さえるべきシステム開発方式の違い

レンテックインサイト編集部

ERP(統合基幹業務システム)、生産管理システム、人事・給与システムなど、製造業の情報システム部門が携わるシステムは多岐にわたります。また、新型コロナウイルスの流行によりBCP(事業継続計画)の重要性が叫ばれる中、もう一度システムを開発し、保守・運用し続ける体制を見直すことが必要ではないでしょうか。
そんな中で改めて押さえていただきたいのが、ウォーターフォール、アジャイル、スパイラルなど、システム開発方式の違いについてです。ウォーターフォール型開発の文化が根強く、各開発方式のメリットとデメリットが理解されているとは言い難い状況です。
本記事では、情報システム部門を中心とした製造業のすべての方に向けて、システム開発方式とその違いを一から解説します。

システム開発方式とは

そもそも、システム開発方式とは何かについて最初に定義しておきましょう。
それは、「企画→設計・開発→テスト→導入→運用・保守」という工程を経て業務システム活用を成功に導くための手法をモデル化したものです。形ある製品を世に送り出す流れとも共通しているため、製造業に従事する方であればITエンジニアでなくとも理解することはたやすいでしょう。
その方式は下記のように多岐にわたります。

  • ウォーターフォール
  • アジャイル
  • スパイラル
  • プロトタイピング
  • 契約
  • 段階的
  • RAD

開発方式はこれですべてではなく企業独自の手法でカスタマイズされたり、技術の発展やトレンドとともに新たな方式が生まれるものです。
とはいえ、代表的な方式とそのメリット、デメリットについて押さえておくことには意味があります。
ここからはウォーターフォール、アジャイル、スパイラル、プロトタイピングの概要とメリット・デメリットについて見ていきましょう。

ウォーターフォールは“確実性が高いが変化に弱い”

ウォーターフォール方式は、基幹システムの開発において長く支配的だった手法です。ウォーターフォール(滝)に水が流れるように、開発の各工程を一つ一つ終わらせ、次に進んでいきます。シンプルで理解しやすく全体の予算感・スケジュール感を把握しやすい一方、要件定義の段階で時間がかかったり、突発的な変更に対応するのが難しかったりするという問題があります。
機械や車両、基幹システムなど、最初に全体像を固める必要のある成果物を作成する場合は、ウォーターフォール型の開発が適しているとされてきました。しかし、ものづくりのサービス化が進み、スピード感が求められるようになったことで、上記のハードウエア・システムにほかの開発方式が導入される流れも生じてきています。

【メリット】

  • 予算感・スケジュール・必要な人員が把握しやすい
  • 完成度を高めやすい

【デメリット】

  • スピード感にかける
  • 変化や調整・やり直しに弱い

アジャイルは“スピード感重視で徐々に要件定義を進める”

アジャイル開発は、アジャイル(agile:素早い)という言葉を冠する通り、スピード感が特徴的な手法です。企画の段階であえて要件を固めず、おおまかなスケジュールや仕様が決まったら、設計へとコマを進めます。そうして、機能の一部から実際の開発を始めてしまうのです。
そこからは「設計→実装→テスト→修正」を繰り返します。この1セットをイテレーション(反復)といい、何度も繰り返すことで徐々に完成度を高めていきます。
まず手を動かすことで見えてくるものがあり、要件定義にかかる時間を抑制し、変化に柔軟に対応できるというのが大きなメリットです。その一方、いきあたりばったりに進めることで無駄が発生したり、スケジュールが伸びたりすることがあります。

【メリット】

  • 素早く開発を先へ進められる
  • 変化に対応しやすい

【デメリット】

  • 変化に対応しやすい
  • ある程度のゴールが見えていなければプロジェクトが迷走し、かえって時間やコストがかかることも

スパイラルは“フィードバックを前提に完成度を高めていく”

スパイラル開発は、どちらかといえばアジャイル開発と似たシステム開発方式です。計画を詰め過ぎず、「設計→実装→テスト→修正」を繰り返すことで徐々にシステムを完成へと導きます。

それでは、両者の違いはどこにあるのでしょうか。
アジャイルは実現した機能に対しテストを実施することで徐々に要件定義を進めプロジェクトを完成形に近づけることを目的にしています。一方、スパイラルは完成した段階のシステムにフィードバックを受けることでプロトタイプを改良することに重きが置かれる傾向にあります。
絵画に例えれば、まず背景を完成させ、それに合わせて人物、小物などと対象ごとに完成させながらイメージを固めていくのがアジャイル、全体をラフに描き、フィードバックを得ることで完成形に近づけていくのがスパイラルといえます。
スパイラル(螺旋)のように繰り返すことが前提となっているから「スパイラル」と覚えておきましょう。

【メリット】

  • プロトタイプに対しフィードバックを得るまで非常に早く進められる
  • フィードバックが前提のため、変更に対応しやすい

【デメリット】

  • プロトタイプの開発においてコストやロスが生じる
  • フィードバックが重なり、スケジュールやコストが膨らむ可能性がある

プロトタイピングは“シンプルにまず形にする手法”

まずプロトタイプ(試作品)を作り、フィードバックを受けることで何度も改良していく手法です。スパイラルと似ていますが、プロトタイプをつくり、フィードバックを受けて修正し、の単純ながら強力なループにより重きを置いている点が特徴です。プロトタイプをなるべく早く作って見せるという目標に重点を置くことで、最もスピード感を持って進められるのがメリットです。ただし、そもそもの完成像があやふやな状態で、プロトタイプを作っても無駄になってしまう可能性もあります。ある程度ゴールがイメージしやすいシステムの開発に適した手法といえるでしょう。
近年3Dプリンターの発達などにより、ソフトウエアだけでなくハードウエアでもプロトタイピングが用いられる例が現れています。

【メリット】

  • 試作品の作成まで最速で進める
  • 完成品に対してフィードバックを受けられるため、イメージの相違を防げる

【デメリット】

  • ある程度ゴールが明確でなければ、工程がまるまる無駄になる可能性がある
  • 全体のスケジュールやコストが読みにくい

開発方式はシステム全体のコストや品質に関わる

情報システム部門の基礎知識として押さえておきたい“システム開発方式の違い”について解説しました。
「工程ごとに契約される、契約モデル」といったような、説明した以外のシステム開発方式も存在しますが、現状代表的なのはご紹介した4種でしょう。
自社開発するにせよ、パッケージで導入するにせよ、システム開発がどの方式で進められるかは全体のコストや品質に関わります。
IT導入を進めるのであれば、まずどの手法で進めるべきかを検討事項に含めるべきでしょう。

IT Insightの他記事もご覧ください

Prev

Next