IT業界でシステム開発を進めるプロセスで最もよく使われるモデルはウォーターフォールです。ウォーターフォールは滝モデルとも言います。上流工程から要求事項が決まって下流工程に降りてきて、次の工程で淡々と進められる最もよく使われる開発方法論です。具体的には、分析(要件定義)、設計、開発、テストを順番に進めることになります。
ただし、開発現場はそう簡単にはいかず、システムも簡単には作られません。ウォーターフォールモデルで成功するためには、一番上流から流れてくる水が変わらないという前提が必要です。しかし、システム開発現場で上流を担当するユーザー部門やクライアントが一度決めた仕様を変えないような現場はほとんどありません。それはユーザーが気まぐれだからというよりは、システムの複雑性や市場のニーズの変化に対応するためには、しょうがないことでもあります。
ウォーターフォールモデルの短所を賄うためにIT業界で新たに出てきた開発方法がアジャイル開発です。人の心を変えることはできないので、プロセスを変えよう。小さな開発サイクル(イテレーション)を繰り返し、お客様に気に入られるまで(気が済むまで)続ける方法がアジャイルです。
アジャイルは顧客満足を目指し、改善され続けるシステムを想定し、これを成功させるには無制限の時間が必要であるという特徴があります。インターネットサービス企業はアジャイル開発を導入している企業がほとんどでそれが適しています。すでに商用環境でアプリやシステムが動いてて、それによって利益を出していれば、利益を増やすためにシステムを改善していくことができます。
その一方で、SI業界でアジャイル開発が広がらない理由は、コストに換算される時間が固定されているためです。SI業界でいうプロジェクトの成功は、顧客満足度ではありません。顧客満足度も重要ですが、決められた納期に決められた機能が完成していることが成功の基準です。つまり、インターネットサービス企業とSI業界は、目指していることが異なります。
建築現場とSIプロジェクトはよく似ているといわれます。建築現場では、必要に応じて人を募集し工事が終われば、別の現場へ行きます。SIプロジェクトも同様です。必要に応じて人を募集し、開発プロジェクトが終わったら、別のプロジェクトへ参画します。違うことは、建築現場は日が暮れると帰られますが、SI業界の現場は日が暮れても働けます。
SI業界でもアジャイル方法を導入しようとする取組は多く広まっています。しかし、根本的なコスト構造を変えなければ、見せるための形だけアジャイル現場になってしまいます。顧客満足度や単純に数値化できない価値に対して数値化することができて、その価値に対する適切な対価を査定できるようにすることが、SI業界でアジャイル開発を広められるまでの課題だと思います。