プログラムの自動生成でシステム開発を高速化すると注目される「超高速開発」は、本当に使える技術なのか? 実例を交えながら、その実態や真価を発揮する使い方を解説します。
はじめまして。私は「超高速開発」と呼ばれるジャンルの製品の実装・営業を担当しているルート42の高橋一成と申します。営業先で、「ソフトウェアを設計情報から自動生成するものである」といった具合に自社製品について簡単に説明すると(※1)、こんなふうに返されることがあります。
実際に多くの案件で超高速開発を駆使し、プロジェクトを成功へと導いてきた私からすると、「いやいや、そうではなくて……」と言いたいところですが、どうやらこのような認識を持っている方は少なくないようです(※2)。
確かに、パンフレットを見たりセミナーに行ったりしても、“良いこと”だけが強調されていますから、私がいくら「超高速開発はちゃんと使えますよ」という話をしても「ふーん」で終わってしまうのも仕方がないのかもしれません。
そこで、本連載では、「超高速開発のリアル」を本音でお伝えしたいと思います。超高速開発は、用途に合った使い方をすれば便利で効率化に役立つ技術だということを、実例を交えながら、なるべく分かりやすく説明していこうと思います。良い面だけでなく、不得意な面もごまかさずに紹介しますのでご期待ください。
連載は全3回を予定しています。
連載の最後までお付き合いいただき、「超高速開発、ちょっと試してみようかな?」という気持ちになっていただけたら幸いです。フィードバックもお待ちしています。
なお、超高速開発技術は多数存在しており、用途もさまざまです。今回の執筆陣が関与している製品は、「社内の業務システム向けに特化している」「デスクトップ向けWebブラウザで動作する」「いわゆるBRMSやバッチ処理に特化した製品とは別物」という共通の特徴があり、今回はこのスコープ内での議論になることをご理解ください。
さて、超高速開発とは何でしょうか? 老舗のベンダーであるマジックソフトウェアのWebサイトには次のように書かれています。
超高速開発とは、業務アプリケーションの開発工数を劇的に短縮する開発支援ツールをはじめ、開発手法なども含めて、システム開発により高い生産性をもたらし、従来のシステム開発が抱えている問題解決などに活用していく考え方、開発への取り組みのことを指しています。
私もこの定義に異論はありません。超高速開発とは、コードの自動生成機能がコアでありつつも、それだけで閉じているものではありません。
例えば「実際に動くサンプルを見せながら要件定義ができる」なら、要件定義はずっと早く完了できるし、手戻りもぐっと減ると思いませんか?
超高速開発はそれを可能にします。
「何年も保守していく中で、設計と実装の乖離(かいり)が激しくなるのでは?」という考える方もいらっしゃるかもしれません。しかし超高速開発は、設計情報と実装が密接に結び付いているため、乖離が非常に起きづらい仕組みになっています。
また、超高速開発で作られたシステムのバグ数は通常の4分の1以下です(※当社実績の平均値)。「自動生成されたシステムにほとんどバグがない」なら、日本の従来スタイルにおけるシステム開発で悪しき習慣とされることが多い「保守契約」の在り方も変わってきますよね。
もちろん、超高速開発は良いことばかりではありません。ユーザー側の妥協や諦めも重要です。
このように、超高速開発とは、従来のシステム開発の問題点を(全てではないにせよ)カバーするものであり、単なる要素技術の1つではなく、開発スタイルの1つであると私は捉えています。
※1:超高速開発技術は「ソースコード生成型」と「実行エンジン型」の2つに分類できますが、ここでは話を簡単にするためにあえてこのように表現しました。両者の違いについては連載の中で説明していきます。
※2:例えば、「ウチも現場の人が似たようなツールを作っているよ」というのは「足場コード生成ツール」との混同と考えられます。足場コードとは、実装の取っ掛かりとなる基礎的なコードです。「Ruby On Rails」のようなフレームワークはデータモデル定義から足場コードを自動生成できます。ただし、足場コードは設計情報とリンクされているわけではなく、生成されたコード自体をユーザーが改変することが前提であるため、超高速開発とは異なるものです。これについてもおいおい説明していきます。
Copyright © ITmedia, Inc. All Rights Reserved.