エンタープライズ開発分野の本当の技術革新とはどういうものかを考察する

来週の6月21日に迫ったシステム開発者徹底支援セミナーは、すでに140名を超える申込があるとのこと。システムインテグレータさんとの初の共同実施ですので、気合いが入ります。まだお申し込みされていない方は、是非ともご参加ください。

今回は主に開発現場の方が参加されるということですので、Wagby の紹介というよりもエンタープライズ開発分野の技術革新とは何か、について話をしたいと考えています。

コンピュータが登場して以来ハードウェアの進歩は目覚ましいものがあります。有名なムーアの法則によって、5年で10倍、20年で10000倍という桁外れの性能向上が起こりました。現代のスマートフォンは、かつてのスーパーコンピュータに匹敵するというレベルです。

一方で、ソフトウェア開発についてはどうでしょう。エンタープライズ開発に限っていえば、COBOL からはじまって C, BASIC, そして Java .NET と、構造化言語からオブジェクト指向言語に変わりました。しかし開発スタイルは昔から大きな変化がありません。SI業界で共通利用できる見積手法は未だに存在せず、営業が気合いで示した総額による一括請負契約の元、膨らむ仕様を抑えられずに残業・徹夜というデスマーチ化は発生し続けています。SI業界はオフショア開発で打開しようと試みますが、単に人月単価を減らしただけですので、構造問題は依然として残っています。(日本国内の構造問題を海外に輸出していいのでしょうか。)その結果、優秀な人材は SI 業界から離れる傾向が加速しており、現場は10年以上前のプログラミング技術を使い続けながら仕事をしているということも珍しくありません。

問題の根を一言で要約すると、ユーザ(発注側)と開発者(SIer; 受注側)の間で、システム開発に対する意識の差が大きすぎるのです。

ユーザ 仕様変更は起こりえる。開発者なら、これを迅速に吸収できるのが当然と思っている。
開発者 仕様変更の度に、作成途中のプログラムは捨てることになる。かかった工数は請求対象になる。

このため、発注側は「丸投げ」を希望します。総額を固定し、その範囲内でいくらでも仕様変更したいのが本音です。受注側はこれに耐えられず、オフショア化で対応しようとしましたが、それも行き詰まっています。注目されているアジャイル開発は、このギャップに対してお互いが歩み寄ろうとするアプローチですが、あくまでも意識合わせであり、開発の技術革新とは異なります。

この差(ギャップ)を埋めるための技術革新とは何か。それは「捨てられるプログラムをつくる」ことだと考えています。そのためには、仕様からプログラムを自動生成するスタイルが有効です。仕様変更のインパクトを開発者が受けるのではなく、自動生成エンジンが吸収する。これによって開発者はユーザの希望を仕様書という形(昨今では DSL; Domain Specific Language として注目されています)で記述します。DSL からプログラムを自動生成する、私はこれが次世代の SIer の姿だと思います。

まだ DSL の標準形はありません。当社が開発した Wagby は Excel で仕様書を書きますが、これも DSL の一種です。今後、さまざまな DSL と自動生成エンジンが市場に投入されていくことでしょう。開発ツールの進化は、もうはじまっています。そして、このような新しい開発ツールを使うことが、ユーザ満足度の向上に大きく貢献することになります。

「ちょっと、この部分をこういう風に変更してほしいんだけど...」「了解です。明日には変更完了します。」という会話が成立する世界を想像してみてください。そんなの無理だ!と開発現場は叫びたくなるでしょうが、ユーザが求めているのは、こういう感覚であり、これを実現するのが真のエンタープライズ開発の技術革新です。ジャスミンソフトの目標は、このような世界を実現することです。