スタートページ> 主張・講演> 経営者・利用部門のためのIT入門> 第4章 個別システムの調達(2)
システム開発は、次の順序で行われます。これをシステム開発のライフサイクルといいます。ライフサイクルに関しては「共通フレーム」という標準があります(参照:「共通フレーム2007」)。さらに詳細に体系化しており用語もやや異なりますが、ここでは簡単にするため、慣習的な表現にしておきます。
・要件分析
・外部設計(業務の視点でのシステム仕様の作成)
・内部設計(プログラマの視点でのシステム仕様の作成)
・プログラミング
・テスト
・移行実施
後工程になってから前工程の不備が見つかったり、修正が行われたりすると、手戻りのために、多大な費用や時間がかかります(参照:「要件定義の重要性と留意事項」)。
それを回避するために、多様な開発技法があります。いずれも一長一短があるので、対象とする情報システムにより使い分けたり組み合わせたりすることが必要です。
ウォータフォールとは滝のことです。滝が上から下へ一方的に流れるように、前工程が完了するまでは、後工程に着手しないし、後工程から前工程に手戻りをしないことを徹底します。これは、最も基本的な開発技法で、現在でも大規模で環境変化が緩やかな対象業務に広く用いられています。
しかし、これには次の欠点があります。
このような不都合を回避するために、いろいろな開発技法があります。
「小さく産んで大きく育てる」考え方です。対象業務のうち、重要な部分だけに限定して開発し、逐次、範囲を広げていく方法です。対象業務のすべてを一挙に開発するのは費用的にも労力的にも困難な場合、広範囲での詳細な仕様が確定できない場合に採用されます。
しかし、全体計画が不十分だと、先に構築した部分と矛盾ができて、作り直すことになる危険があります。
短期間で見本を作って利用者に使わせ、逐次、改善していく方法です。ライフサイクルを短期間で繰り返すことからスパイラル型開発技法ともいいます(スパイラル型開発技法をインクリメンタル型開発技法の意味で使うこともあります)。利用者が常に実物を見ているので、要求変更に随時対応できますし、大きな手戻りが回避できます。
しかし、この方法には次の欠点があります。
アジャイルとは「俊敏な」という意味です。まず開発期間(数週間、数か月)を先に決めてしまい、その期間中に重点的な機能を持つシステムを構築します。全権を任された開発者と利用者がペアになりプログラムを作ります。優れた開発環境を提供し、付随的な業務はすべて協力者が行います。非常に効率的な開発ができますが、このような能力を持つ開発者・利用者を得ることが困難です。