最初は基本機能から構築しましょう

今までのシステム開発は、全体を設計してから開発に着手して、全ての機能を一括してリリース(使用開始)する方法が執られていました。

その結果、何が起こったでしょうか。

まず第一に、システム全体を一括して設計するという神業を完璧に出来る人材は、この世に存在しないため、開発が開始されると次々と要求が噴出して収拾がつかなくなり、開発費用が膨ら、利用開始時期がどんどん先延ばしになります。

まだ、要求仕様段階であれば、手戻りも許容できるのですが、一旦開発に着手すると、機能の追加や仕様変更は受け入れることが困難になるだけでなく、仮に、仕様変更を受入れると、他のプログラムと関連により、修正がドミノ倒しの如く伝播し、開発コストが大きく膨らみます。当然、修正漏れや間違いで品質も損ないます。

この構図が、システム開発の今までの姿でした。では、なぜこの形態(ウォーターフォール方式)でも社会が受け入れられていたかというと、大企業の潤沢な開発予算によって支えられてきたのです。また、システムベンダーも、システム構築を安値で請け負っても、着手後の仕様変更による高収益性で、最初の損金を回収する目論見もあります。

発注側も、増え続ける開発費用に音を上げたいのですが、すでに投下したコスト(サンクコスト)を考えると、前へ進むしか道がく、ベンダーの求めに応じて追加予算を組み、支払うのです。

しかし、中小企業では、そんな開発手法では、おいそれと自社開発に乗り出す事が出来ないと考えるのも無理はありません。

そこで、「ウォーターフォール方式」の開発ではなく「アジャイル方式」の開発手法が脚光を浴びています。つまり、必要な機能を先行して開発して、特殊な条件で発生する事務は、手作業で行うと割り切って開発する方法です。単機能であれば早く、低コストで開発できますし、全てではなく、大方の事務がシステム化されることで、大幅な生産性向上が達成できるので、イレギュラーな事務処理が手作業として残ったとしても、十二分に効果があるので、経営者は投資効果が実感でき、かつ、従業員も生産性向上を実感でき、協力的になっていきます。

「ウォーターフォール型」の欠点は、開発完了日が逃げ水の如く逃げて行くだけではなく、不要な機能を作りこんでしまい、その結果、高コストであるだけでなく、不要なバグ(システムの瑕疵)を生む点にあります。

​これらを考えると、これからの開発は「アジャイル方式」で基本部分から開発し、みんなに使ってもらう事が大切だと考えます。