成本正史さん
マイクロソフト株式会社 デベロッパーマーケティング本部 マネージャ
1988年 大阪大学基礎工学部卒業。同年横河電機株式会社に入社。主にファクトリーオートメーションの分野でソフト・ハードの開発を担当。99年マイクロソフトに入社。COMや.NETに関する開発コンサルティングに従事した後、現在はアーキテクチャに関する技術啓蒙、中央省庁関連の各種団体活動への参加、アーキテクトを対象とした講演や各種メディアへの寄稿を担当
アーキテクトという仕事の重要性
林
そのように激動する今、成本さんは「アーキテクト・エバンジェリスト」であるわけなんですが、ITの世界でアーキテクトという言葉を比較的みんなが使い始めたのは、ここ2,3年ですよね。でも考え方そのものはもともとありました。
私なんかは、アーキテクト・ドリブンの仕事の仕方をずっとやってきたわけで、「みんなやっと気がついたか」という感じです。私のやってきた仕事のやり方にアーキテクトという名前がついて、アーキテクトの仕事というものは大事なものであるという職業観、役割、期待が、きちんと言葉で表されてありがたいな、と思っています。
でも多くの人は、最近、初めてアーキテクトという言葉に出会って、「これからはアーキテクトだぞ!」という人と「なんだそれは?」という人にわかれている。「なんだそれは?」といっている人には、「これまで君は一体何をしていたんだ?」と言いたい(笑)。アーキテクチャをあまり考えないで、ただやっていたということを白状しているようなものだと思っていますが、成本さんのお考えはどうですか?
成本
僕はアーキテクチャをわかりやすく表現したい場合には「基本的な枠組み」という言い方をしているんです。本当にわかっている人には「アーキテクチャはソフトウェアの本質的な部分です」と言います。
本質的な部分さえきちんと作っておけば、そんなに間違わないけれど、ここがずれると、もうめちゃくちゃになります。だから本質的な部分がきちんとわかって、それをきちんと作れる人がアーキテクトなんです。
映画「マトリックス」の世界でも最後にアーキテクトの名前が出てきますよね。あの世界を作り上げた人です。ああいう世界を作り上げる人がアーキテクトなんです。構想する人であって、新しい形態、形象、空間を作り上げることのできる人ですね。
林
建築とか土木、プラントでも同じことが言えるんだけど、モノが見えるでしょ。そうするとアーキテクトがよい仕事をしていると美しい。原則を維持しながらその中にアーキテクトが個性を折り込むわけですよ。それがすばらしい。
ソフトウェアでも、例えば「このソフトウェアは成本タッチだ」とか「林タッチだ」というのがあって、「どちらもすばらしいけれど、どちらかというと成本タッチの方が好きだな」って言う人もいる(笑)。そういう世界が作れると、非常に世の中が豊かになる。心が豊かになりますよね。
アーキテクトの仕事領域は分離可能である
林
ちなみに私は20年前からそれを言っているわけですよ。モデルがあまりにも「粗」だから。
成本
「粗」ですか。
林
ええ、そこには立体的な感じや質感がまったくない。確かに抽象化すればある程度そうなるのは仕方がないんだけれども、そこに折り込めるものはたくさんあると思うんです。今後はそういうことが重要になると言い続けてきました。
もしも20年前にもう少し速くまともにソフトウェアが作れるようになっていれば、今ごろはどこに頼んでも理想的なソフトウェアができてくる世界になっていたはずで…まあ、それはちょっと甘すぎるかな(笑)。その基盤ができて初めて、アーキテクトの仕事であるアート的な資質や個性が入ってくる時代になると考えていたわけです。そうすると分離可能なんですよ。完ぺきに組み立てる部分と、もっと属人的なアート的部分が。ソフトウェア・ファクトリーに対する私の理解というのはそういうものです。
成本
その通りだと思いますよ。
林
アーキテクトは、ソフトウェアの最初の骨格、個性や工夫の部分を担当する。原理原則は守っているんだけど、ちゃんと主張もある。それができ上がったらその人の仕事は終わりというわけじゃないけれど、一つの領域になっている。
建築でいえば、黒川紀章のようなアーキテクトと、建設会社の現場監督と、そこにいてものを組み立て量産をする人に分かれますよね。そのあたりの原点に戻って分担を考え直したら、ということです。
成本
そうですね。要は「いかに効率的にソフトウェアを作っていけばいいのか」という大命題があるわけです。それに対する答えとして、このソフトウェア・ファクトリーという考え方、方法論を我々は提唱しているんです。
ソフトウェア工程に「生産ライン」の考え方を組み込む
林
その辺をもう少し詳しくお聞きしましょう。
成本
非常に話を単純化してしまうと、「2段階の工程に分けましょう」ということです。まず「プロダクトライン」というのを立てます。これは、まさに言葉からイメージされるように製造業に近いような生産ラインです。生産ラインを組み立てた後で、そこに部品をどんどん流していけば最終的な完成型ができる。これをソフトウェアでやっちゃおうよ、というのがソフトウェア・ファクトリーです。ソフトウェアの場合に、生産ラインというのに何が相当するのかというと、まさにアーキテクチャであり、開発方法論であり、ソフトウェアを作るために最適化された開発ツールであり、主な部品であり、それらを使いこなすためのガイドラインです。このようなものを「アセット」と呼んでいますけれども、そういうものをいったん先に作りましょうということなのです。
林
ハードウェアと違ってソフトウェアというのは、いわば超多品種・超少量ですよね。
成本
ええ、ファクトリーと言うと、どうも大量生産のイメージですが、そうじゃないんです。生産ラインをちょっとカスタマイズすると、また違ったソフトウェアができるという、そういった柔軟な生産ラインを作ってみようと考えたものです。
林
それはまさに、日本人が洗練してきた製造業の手法ですね。
成本
で、具体的にそれをどう実現するかなんですけれども、これを作るために、どういうモデリング要素があるのか、スキーマはどういうふうに定義したらよいのか、それごとにモデルを作っていくのを個々の作業として定義しています。そしていったんモデル化を行ったものをテンプレートとしてツール(Visual Studio2005)にインポートさせる。インポートした瞬間に作るべきプログラムのかなりの部分はでき上がっているわけです。
効率のよい場合はもう7割方はこの瞬間にできてしまっている。残り3割は手でプログラミングする作業が残りますけれども、それも基本的なアーキテクチャの枠組みが決まっていて、それがツールとして強制されているので、間違いようがない。
林
いわばMC(マシニング・センター)旋盤にメーカーから来た図面データを流し込むと、後はマシンが勝手に作業を始めるというのをソフトウェアでやろうということですね。
成本
ツールとしてガイドされているので、それに従っていればできるということです。
さらに言えば、モデリングにしても業務形態にしても、エンドユーザーさんは個々に違います。エンドユーザーさんに最適の情報システムを作るための生産ラインというのは、やっぱりエンドユーザーさんごとに違って当たり前なんです。そこで今度はどういう作業にフォーカスが当たってくるかというと、エンドユーザーさんにとって最適な開発環境を作る、つまりこの生産ラインを作る部分というのが重要になってくるんです。