ソフトウェア開発も建築と同様で、要件定義や基本設計、製造、試験といった一連の工程があり、それに沿って開発するのが一般的です。まずは要件を聞き、それを設計に含め、作成した設計書に従って製造します。もし要件が変更になったときはまたその部分の設計をやり直して、同様の工程を踏むことになり、その分工数がかかってしまうことになります。設計書から工数を見積り、人件費とのかけ算がソフトウェア開発の対価となります。
このプロセスの場合、要件の変更がすべてを狂わす諸悪の根元になります。締切が遅れるか、他の要件を削るか、人を追加投入して(追加でお金を投入して)間に合わせるという選択肢から選ぶことになります。したがって、変化に弱いプロセスといってもよいと思います。
ところで、私の関わるプロジェクトはあまりに変化が多く、上記のプロセスは現実的でないと感じています。私も時間がたてば変化するのは当然であり、むしろ変化を当たり前とする開発プロセスのほうが顧客にとって満足いただけるものに仕上がる可能性が高いと思います。
こういった事例が多いためか、事実このようなプロセスを開発する取り組みが盛んに行われています。この日記の表題はその手法の一つである「エクストリームプログラミング」の基本姿勢をあらわしています。
ただ、いろんな手法を見てきましたが、一番大切なものは「変化を受け入れるという気持ち」だと思います。例えば、クライアントがこうしてくれ、ああしてくれ、という無理難題にまずは前向き(その通りにしようという)に受け止めるという姿勢が重要だと思います。そして、そのようにして開発して失敗しても、後から取り返しがつくように開発する習慣をつける必要があります。こうしたスタンスで開発していると、自ずと基本設計はもちろん詳細設計やワークフローさえも、今までの考え方を変えなければならないことがわかってきます。
このような開発手法を総称して「アジャイル開発」や「lightweightプロセス」と呼ばれています。これからも注目していきたいですね。
ブログ一覧
Posted at
2002/10/04 01:44:21