チャレンジ!はじめてのシステム開発

開発手法には特徴がある

システム開発の手法

世の中のIT化が急速に進み、整備されたネットワーク環境において実現できるサービスが増えるに従って、より快適でより安全でより速いサービスの提供が貪欲に求められるようになっています。企業内に導入するシステムも、当初の「宝の持ち腐れ」になりかねないような大型で高額なものから、ユーザーによる運用のしやすさまでをも含めて考えた、小回りの利くコンパクトでカスタマイズされたシステムの開発が求められるようになっています。
開発に許される時間もお金も、これまでのようなどんぶり勘定ではなく、シビアに費用対効果を計算されるようになっており、条件は厳しくなる一方です。更にどんどん新たな技術や知識や製品が生まれており、それらを最適に組み合わせる手腕が問われるようにもなっています。従ってシステム開発の手法も、このような変化に応じて様々に工夫されています。

ウォーターフォールモデル

まず代表的な従来型開発手法といえるのは、ウォーターフォールモデルです。これはシステム開発の場合、「要件定義」や「外部設計」や「内部設計」という上流工程に始まって、「実装」や「評価」、そして「運用、保守」という下流工程に至るまで、水が流れるように順番に開発を進める手法です。
それぞれの工程が一つ一つ完結して次に移るため、後戻りする無駄を最小限に抑えられるのであり、そのため進捗管理が最もやりやすいのです。しかしその一方で、それ以前の工程に誤りがないということが暗黙の前提であるため、上流工程における間違いを、下流工程で初めて気が付いても、もはや修正が難しいという欠点があります。

アジャイルソフトウェア開発

このようなウォーターフォールモデルの欠点を克服する手法が、反復型開発であり、アジャイルソフトウェア開発はその派生形です。
アジャイルソフトウェア開発では、開発すべきシステムを機能ごとに細分化し、その一つ一つにおいて「計画」「要件定義」「設計」「実装」「評価」の各工程を経て、機能を一つずつ追加しながら、最終的にシステム全体としてまとめ上げます。開発を取り巻く現実環境の変化に敏感に対応でき、またユーザーからの修正要求にも素早く応えることができますが、進捗管理が難しく、そのため大規模な開発には不向きとされています。

スパイラルモデル

同じく反復型開発手法であるスパイラルモデルでは、「設計」と「プロトタイピング」を反復し、ユーザーが最初の反復完了時点で進展を評価します。各反復ごとに工学的分析を施しながら、当初の設計目標到達まで反復を繰り返しますが、反復回数が増えれば工期が延びてしまうため、あらかじめ反復回数や反復ごとの進展を予測するなどして、進捗を管理しやすくします。