「自動生成ツールを見たら思い出してほしい」というコラムを読んで

本日、日経IT Pro「林 浩一のITアーキテクトの視点」に「自動生成ツールを見たら思い出してほしい」という興味深いコラム記事が公開されました。出展は日経SYSTEMSです。
http://itpro.nikkeibp.co.jp/article/COLUMN/20120726/411921/

この記事を要約すると次のとおりです。

  • 仕様書から業務アプリケーションを実現するソースコードを自動生成するという発想は珍しくない。
  • 最初の自動生成エンジンは簡単に開発できても、そこからが大変。
  • 何でもできる自動生成エンジンは、使い方(設定)が難しくなる。
  • 自動生成されたコードに手を入れて業務アプリケーションを完成させるには、高度なプログラミングスキルが求められる。(自動生成されたコードを理解しなければならない。)

これはまさに、私達が苦労してきた、自動生成エンジンの開発の歴史そのものです。実際のところ、どこまでを自動生成の対象とするか、どのような設定が汎用性があるか、どういうカスタマイズ方法を提供するか、を手探りで進めてきました。

この記事の冒頭にあるように

古くは1980年代の第4世代言語と呼ばれる活動まで遡れる。世界的なIT企業の研究者の多くが考えてきたことであり、今も世界中で多くの人がチャレンジしているはずだ。ただ、今のところうまくいってはいない。

は、真実だと思います。20年ほど前に流行の兆しをみせた CASE ツールは、画面上でダイアグラムを記述するとアプリケーションが開発できるとうたっていましたが、期待を満足させるものではありませんでした。

しかし、この分野は着実に進んでいます。20年前に失敗したからといって、そのアイデア自体が失敗だったわけではありません。
やはりこの記事にあるように

IT技術者の手間を省くツールという方向では有望で、それは今後のシステム開発の方向性でもある。つまり、要件定義から実装まで長く延びていた開発工程を短くするということだ。

ということです。これが「超高速開発」ということで認知されてきつつあるのが現状です。

そうなると、重要な活動は工程の両端に集約されていく。曖昧な業務をシステム化できる精緻さまで落とす活動と、自動生成ツールの限界を補ってシステム全体を完成させる活動だ。

「自動生成エンジンの特徴を活かした、適切な設計書を作成するSE」と「高度な開発技術を有したプログラマー」のペアによって、少数精鋭による大規模アプリケーション開発が実践できそうだ、ということに気付いている人は少なくありません。1000人月規模のオフショア開発を、その10分の1の人数で国内で開発する - しかも超高速開発かつ高い品質で実現する - という目標を掲げるということです。

そのための自動生成エンジンはどうあるべきか。その答えは「さまざまな実装が登場する中で、収斂されていく」ことでしょう。SIerはどの自動生成エンジンの扱いを得意とするのか、が差別化戦略につながります。今はまさに開発の変換点であり、私たちはその渦中にいるのだと実感しています。