MCi Home

IT化へのロードマップ(2) -- システム開発手法

IT化へのロードマップ(2)

2.システム開発手法

開発部 柴尾昌克 2011/07/20

システム開発の手法には、大きく分けて、ウォーターフォール型とスパイラル型があります。

ウォーターフォール型



ウォーターフォール型は、要件定義→外部設計→内部設計→実装→テストの順序で開発を進めて行きますが、この順序を一回だけ行い、かつ、原則として後戻りはしないという方法です。つまり、要件定義の段階で、顧客の要望を漏れなく抽出し、全ての要件を定義してから、外部設計に移ります。同様に、外部設計の段階では、外部設計で行うべき全ての作業を行い、内部設計の段階では内部設計で行うべき全ての作業を行います。原則として、作業段階の移行は一方通行です。

もちろん現実的には、例えば内部設計の段階で、外部設計に不備が見つかったりすることもありますから、このときは外部設計の段階に一度戻らなければなりません。あるいは顧客があとになって機能の追加を要望してくることもあるでしょう。ウォーターフォール型は、原則として、そのような手戻りがなるべく発生しないように開発を進めて行こうという開発手法になります。

ウォーターフォール型を採用するメリットは、

日程管理しやすい
要件定義からテストまで一方通行で開発が進められますので、納期順守が比較的容易です。

コスト抑制
日程管理の容易さはコスト把握にも貢献します。

が挙げられます。ただし、注意しなければならないのは、手戻りが増えるとこれらのメリットを享受できなくなるということです。ですので、デメリットとして

仕様変更は難しい
前段階の仕様変更は手戻りを意味し、手戻りが発生した分だけ納期は遅れます。

コスト
手戻りの分だけコストがかさみます。

となります。

機能を追加したいという要望があとから出てくると、間違いなく手戻りになります。逆に言えば、どんなシステムが欲しいか具体的にイメージ出来ているならば、ウォーターフォール型の開発手法の方が有利ということになるでしょう。


スパイラル型



スパイラル型も要件定義からテストまでを順次行っていきますが、これを何度も繰り返すという点がウォーターフォールと異なるところです。具体的には、一巡目で大まかな仕様策定、設計、実装を行い、その結果を元に、二巡目ではより詳細な仕様策定、設計、実装を行い、巡回する毎に、システムの詳細さを増していくという手法になります。一巡目でできたシステムはいわばプロトタイプ(原型)であり、実際に顧客がそれを使ってみて、気がついたことや、追加したい機能があれば、それを二巡目に反映させていき、以下それを続けて行くということになります。

メリットとしては

顧客がイメージしやすい
プロトタイプを触ってみることによって、どんなシステムが出来つつあるのかを顧客が知ることができ、自分が欲しいシステムのイメージを作りやすくなります。

設計変更に柔軟
仕様変更は次の巡回で反映させることになります。

が挙げられます。デメリットとしては

日程管理が困難
何度も仕様を変えると、いつまで経っても開発が終わらない。最悪の場合、システムが完成しないこともあります。

コスト
巡回が多すぎるとコスト増加に直結します。

が挙げられます。

顧客が具体的なイメージを持たない状態で、システム導入を検討している場合は、こちらの方が有利でしょう。


実際的な開発手法

ウォーターフォール型とスパイラル型の二つを主な開発手法として挙げましたが、実際の現場では、このどちらもかなり極端ですので、通常は折衷的な方法を採用しています。

ちなみに、大規模なシステムの場合はウォーターフォール型が向いているとされます。この場合、仕様変更を後から行うことは手戻りを意味しますので、要件定義は比較的じっくり時間をかけて、行われることがほとんどです。それでも、あとから機能追加したいという要望は出てくるもので、その場合は、今やっている開発を第一期とし、機能追加は続く第二期に行うという工程管理も一般的に行われています。

逆に中規模程度のシステムのような場合は、使い勝手を重視するために、プロトタイプを作りながら、順次詳細化していくという方法もとられます。こちらも巡回数が多くならないよう、開発を第一期、第二期というように分け、第一期でシステム化する範囲をあらかじめ固定してしまい、導入まで行い、続く第二期で追加機能や課題解決を行うという方法が一般的です。