« Excel方眼紙がダメな2つの理由 | トップページ | 「フィールド値の色」をテーブル定義に組み込む »

2012.07.20

特定ドメイン向け開発環境の意義

 「実行可能な仕様書」を実現したプラットフォームXEAD Driverについて、「適用分野が狭い」と言われたことがある。確かにこれを用いてゲームソフトや組込ソフトは作れないし、本来のターゲットとしている業務システムであっても金融等のクリティカル系は扱いきれないだろう。その批判は間違っていない。

 しかし、そもそも私としてはEclipseのように汎用的な開発環境を作る気はなかった。だから、ウサイン・ボルト氏が「あなたは確かに速いが、そういう走り方ではマラソンでは勝てない」と言われたような気分である(たぶん)。

 私が欲しかったものは、「小中規模事業所向け業務システム」の開発を支援するためのプラットフォームだ。これまで専用システムを持ちたくても持てなかった小規模事業所や、不相応にコストのかかるシステムを押し付けられてしまっている中規模事業所――そういう主体が身の丈に合った、かつコストパフォーマンスの高い業務システムを手に入れるための開発・実行環境。汎用性はないが、ターゲット分野においてきわめて使いやすいOSSプラットフォーム、それがXEAD Driverである。

 XEAD Driverのように適用分野を限定した開発環境を「DSP(特定ドメイン向けプラットフォーム,Domain-Specific Platform)」とここでは呼ぼう。同種のものとしては「楽々フレームワークⅡ」や「Wagby」などいろいろある(いずれも素晴らしいツールだ)。もういっぽうの、Eclipseのような汎用開発環境を「DIP(ドメイン独立プラットフォーム,Domain-Independent Platform)」と呼んでおこう。

 ここで言う「ドメイン」は「ドメイン駆動」のそれよりも大きい粒度を持つ概念である。「業務システム」は「企業基幹業務」のドメインにおいて生み出されるソフトウエアだ。何度か引き合いに出した「音楽演奏データ制作」もひとつのドメインを成しており、これを支援するDSPとしては以前に取り上げた「SONAR」がある。「企業管理会計」も魅力的なドメインのひとつで、畏友であるkeis氏が開発した「FusionPlace」は企業管理会計向けDSPの好例だ。これらのドメインの関係は次のとおりである。

20120720 企業基幹業務を演奏データ制作用DSPで支援しようとしても無理だし、その逆も無理だ。しかし、DIPであるEclipseにプラグインやフレームワーク等の足場を組み込めば、いずれのドメインも支援できる。いっぽうDSPならば、単体でもターゲットドメインを支援することはさらに容易だ。

 では、そのような「ドメイン」はどのように切り出され、対応するDSPが開発されるのだろう。鍵は「ニッチ特性」すなわち「狭さと豊かさ」だ。十分に狭く、案件開発を含む経済活動が十分に盛んであるようなソフトウエア分野があれば、DSP向けのひとつのドメインとして切り出され得る。

 すなわち、十分に狭いゆえにソフトウエア特性を様式化することで開発作業を合理化しやすいし、ドメインとしての専門性の高さが参入障壁になってくれる。また、経済活動が十分に盛んであるゆえに、そこに棲む技術者は工夫やカイゼンを惜しまない。遅かれ早かれDSPが生み出される(*1)。

 これらのドメインよりも対象を広くとると、経済上の潜在力はより高くなるが、扱うソフトウエアの特性を絞り込めない。それゆえにDSPではなく、汎用的なDIPを利用せざるを得ない。しかし、だからといってDIPが役に立たないということではない。だいいちDIPは、DSPを生み出すための開発環境として不可欠だ。

 興味深いことに、「DIP+α」とDSPとが、同一ドメイン向けの支援ツールとして競合するケースがある。演奏データ制作用DSPは早くから発達したので、そのような競合は起こらなかったが、「企業基幹業務」のドメインにおいては昔から競合が生じている。それは、このドメインの経済的潜在力の大きさゆえかもしれない。多くの技術者や開発業者がそれぞれのやり方で業務システムを開発してきた。どんなやり方でもそれなりの水揚げをもたらしてくれる、それが「企業基幹業務」のドメインだった。

 ところが、このドメインで最大の水揚げを誇ってきた大手SIerの業績が低迷している。これは、コストパフォーマンスの悪い成果物によって中大規模事業所向けの漁場が荒らされた結果ではないだろうか。景気が右肩上がりであればシステム化予算を得られ続けるため、たとえ使いにくく保守しにくい成果物が納品されてもそれほど問題にならない(保守契約が続くのでSIerにとっても都合がいい)。ところが景気が伸び悩む状況では、現行システムを騙しだまし使い続けるしかない。さまざまな無理や不合理が浮かび上がった業務システムに悩まされている大企業は少なくない。

 「中大規模事業所向け」の先行きが不透明であるいっぽう、「小中規模事業所向け」の海域は青々としたままで残されている。事務担当者がExcelを駆使してなんとか回しているといった「業務システム」はまだまだ多い。軽量だったりOSSだったりする業務システム向けDSPはそんなドメインにぴったりだ。汎用性はないが、限定されたニッチにおいては使いやすい。人海戦術でやれるほどの予算を期待できないという意味でも都合がいい。この時代、DIPを駆使する技術だけでなく、DSPのひとつを自家薬籠中のものにしておいて損はない。そのようにしてドメインを選択・集中することが、プログラマとしての専門性を深めるための第一歩でもある。


*1.ただし、すべてのソフトウエア分野がDSP向けドメインになり得るとは限らない。たとえば「ゲームソフト」の分野で、実行環境や大枠の設定が同じタイプのゲーム向けにDSPを用意することは可能ではあろう。しかし、バージョンアップの過程でソフトウエアの基本構造が変化し得るとすれば、DSPを事前に用意することは難しい。ゲームソフトにはそんな特性があるような気がする。

|

« Excel方眼紙がダメな2つの理由 | トップページ | 「フィールド値の色」をテーブル定義に組み込む »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: 特定ドメイン向け開発環境の意義:

« Excel方眼紙がダメな2つの理由 | トップページ | 「フィールド値の色」をテーブル定義に組み込む »