メインストリームとオルタナティブ

IT Pro-Java Radar ■ 2005/3/15 Free Edition Vol.307 ■
に面白い記事があったので以下掲載する。
オルタナティブは破壊的イノベーションや(メインストリームと対比するという意味で)キャズムを越えようとしている技術の言い換えと受け取った。

また、MSサイトにも.NETとJAVAに関して、以下の記載あり。
●主流と非主流
http://www.microsoft.com/japan/msdn/community/gotdotnet/walking/walking8.aspx

============================================================================
■近況コラム:「メインストリームとオルタナティブ」に関する覚え書き

                                                                                                                                                      • -

Java Computing 2005 Springで,Sun Microsystemsの上級エンジニアたちがたびたび口
にした言葉が「メインストリーム(主流)」と「オルタナティブ(代替)」だ。どうや
ら米国IT産業で最近多用されているキーワードらしい。この言葉が,「技術の選択とイ
ノベーション」に関して,筆者が最近モヤモヤと考えていた事柄に対してフォーカスを
与えてくれた。

この覚え書きでは,Java Computing 2005で取材した文脈を参考にしつつ,メインスト
リーム(主流)とオルタナティブ(代替)という概念を使って情報システム技術の選択
肢,そしてイノベーションについて考えてみたい。

まず注意しておきたいこと。「主流」と「代替」は両方とも必要だ。オルタナティブ
決して「傍流」や「負け組」という意味ではない。一方,「メインストリームなら安
心」と思ってしまうと,それは失敗案件への道を進んでいる可能性が高い。繰り返すが,
優劣,勝敗という概念ではない。

そして何より,オルタナティブの中から次のメインストリームが出てくるという点を見
落としてはならない。先を見通すためには,オルタナティブにこそ注目する必要がある
のだ。

●メインストリーム:多数派のための技術

ここで,メインストリームとは,多数派が使う現代的な技術を指す。

ある技術がメインストリームであるためには,現代的な主流技術としての合理性があり,
開発者の層が十分に厚いことが必要となる。数百人規模の開発者が必要な大規模案件が
あったとしよう。そこで選ばれる技術がメインストリームだ。

例えばJava言語,J2EEStrutsは,システム構築技術のメインストリームに位置づけら
れる。

ユーザー目線で考えてみよう。多数派の技術は情報も多く,開発者人口も多い。ただし,
水準が低い開発者の比率も高いかもしれない。「メインストリームだから安心」という
思考パターンは失敗事例の温床だ。実際,「Javaの案件の失敗例の話を聞くことが増え
てきた」という声がある。逆説的だが,これはJavaがメインストリームに移行したこと
のダークサイドである。

そして開発者目線で考えると,情報が多く技術の成熟度が高い技術(=メインストリー
ム)とは,裏返せば競争も激しくなるということである。今,ソフトウエア開発会社の
競争相手は国内だけではない。インドにも中国にもJava開発者はいる。ソフトウエア会
社の立場で言うなら,メインストリーム技術だけを使って高い利益率を維持し続けるこ
とはどんどん難しくなっていく。

オルタナティブ:先進的な少数派。

オルタナティブとは,少数派が使う技術を指す。本論では,特に先進的な技術について
この言葉を使いたい。

(とはいうものの,「オルタナティブ=先進」とは一概にいえない。Linux商用UNIX
に比べ技術的な先進性があったとは言い難いが,商用UNIXに対して強力なオルタナティ
ブとなり,「破壊的イノベーション」として作用した。後述する「レガシー」も,時と
してオルタナティブと位置づけられることがある。)

先進的なオルタナティブ技術どうしの競争から次のメインストリームが生まれる。
Javaも,J2EEも,Strutsも,登場時点ではオルタナティブだったことを忘れてはならな
い。その意味で,オルタナティブ技術には注意を払う価値がある。Java技術も,登場し
た時点ではオルタナティブだったのだ。

何がオルタナティブか。Java技術でいえば,J2EE/EJBに対するSpring Framework
HibernateStrutsに対するTapestry。このあたりがオルタナティブに位置づけられる。

少数派が存続するには,多数派に比べて何らかの優位性が必要だ。例えば,オープン
ソースであること,あるいは技術的に先進性があることだ。

開発者の立場でオルタナティブを見てみよう。技術に自信がある小規模な会社では,メ
インストリーム技術より,生産性が高いオルタナティブ技術を採用した方が競争力を高
められるだろう。特定のニーズのある分野でオルタナティブ技術に通暁することは,
「専門家」として競争力を高めることにつながる。「グレート・ニッチ」を狙う戦略で
ある。

ユーザー目線で考えてみよう。オルタナティブ技術で飯を食っているシステム構築会社
はそれ相応の腕前を持っている可能性が高い(あるいは,人を騙すのがうまい場合もあ
るかもしれないが)。少数派の技術をあえて選択することで,価格,納期,機能など何
らかの点で優位性のあるシステムを調達できる可能性もある。

オルタナティブ技術を選択する理由は何か。「技術的合理性に納得した」,「エンジニ
アを信頼した」,「メインストリームに対する競争優位性を獲得したい」,「次世代の
メインストリームとなる可能性を見た」,このあたりが正解である。ただし,他人任せ
では失敗リスクが高まることを忘れてはならない。

●レガシー:伝統技術

もう一つのオルタナティブが「レガシー」だ。かつてはメインストリームだった技術,
あるいは伝統と実績がある技術で,需要が減少傾向にあるものを指す。

例えばCOBOL言語,SQLVisual Basicは,かつてはメインストリームだった。今はレガ
シーだ。

(本筋からは外れるが,ここで興味深いサンプルがLisp言語だ。Lispは1950年代に登場
した言語でCOBOLより古い。Lispは常に少数派のための技術だった。そして今なお生命
力を持っている。Smalltalkで有名なアラン・ケイは,Lispは時代とともに進化し,
「最高級言語」であり続けた,と述べている。Lispは永遠のオルタナティブといえるか
もしれない。)

レガシーにこだわることが「弊害」と見なされる理由は,イノベーションから遠ざかっ
てしまうからだ。レガシー技術を使って納品された製品(システム)をメンテナンスし
続けることは,コストにつながる。メインフレームを撤去するユーザー企業が相次いだ
理由は,維持し続けるコストに嫌気がさしたからである。

もちろん,組織によって事情が異なる場合もあるだろう。COBOL使いの方がJava使いよ
り多い会社では,COBOLがメインストリームだ。「SQL使い」が多い組織も同様。

誤解してならないことは,レガシーであることそれ自体は,優劣や勝ち負けとは関係が
ないということだ(これは繰り返して強調しておきたい)。技術の評価尺度は,その技
術的合理性,先進性,標準との合致,普及率(=開発者層の厚み)などはっきりした尺
度であるべきだ。

レガシー技術を選択することに合理性がある局面もあるだろう。レガシー技術に通暁し
た職人的エンジニアは,平凡なメインストリーム技術のエンジニアよりもいい仕事をす
るかもしれない。

●メインストリーム,オルタナティブ,レガシーのバランスこそが重要

ここでレガシー,メインストリーム,オルタナティブという概念は,思考のためのツー
ルであって,価値判断ではない。

しかも情報技術のイノベーションにより,これらの位置づけは入れ替わる。かつて,
Windowsは業務システムの世界ではオルタナティブだった。Java/J2EEも,登場時点では
オルタナティブだった。

「メインストリームではない」こと,レガシーやオルタナティブに分類されることを感
情的に拒否する人もいるかもしれない。では,レガシーは「伝統技術の職人」,オルタ
ナティブは「先進的グループ」と考えればどうだろう。メインストリームではない技術
を「売り」にするという時点で,その人には矜恃があるはずである。私はそんなエンジ
ニアを尊敬する。

メインストリーム技術も,いつかはレガシーになる。エンジニアとはそもそも技術を進
化させるために働いている。エンジニアが保守的な態度のままでは,やがて自らの価値
を損なってしまうだろう。

●暫定的な結論:メインストリームとオルタナティブが揃ってエコシステムは完成する

メインストリームがなければIT産業はカオス状態に陥る。1993年〜1995年頃のメインフ
レーム文化の崩壊に続くクライアント/サーバー時代は,ある意味で混迷の時代だった。
「何が主流か分からない」乱世が長く続くことは,開発者にとって不幸なことだ。

一方で,オルタナティブなきメインストリームは停滞を意味する。「一社勝ち」の状況
は,やがてその企業を弱くする。オルタナティブとメインストリームの両方が揃わなけ
れば「エコシステム」は完成しない。

●暫定的な提案:技術資産のポートフォリオのバランスの取り方を考える

では,オルタナティブとメインストリームに対して,私たちはどのような態度を取るべ
きなのか。

理想的には,レガシーの知恵,メインストリームの層の厚み,オルタナティブの先進性
の各要素をバランスさせることが望ましい。いわば「技術資産のポートフォリオ」を作
るのだ。それにより,リスク,コスト,機能,メンテナンス性,標準の採用,といった
重要な要素をコントロールできる可能性がある。

なお「ポートフォリオ」は,金融資産の管理や,企業経営で使われる概念で,リスクと
リターンの異なる複数の金融商品(あるいは事業)を組み合わせて,リスクとリターン
をコントロールする考え方である。

このバランスの加減で,1人のエンジニアとしてのキャラクターや,システム構築企業
としてのキャラクター,システム利用企業としてのキャラクターが決まるといってよい。

先進性とリスク,リターンは裏腹だ。だからリスクを取れる人材は(エンジニアでも,
マネージャーでも)貴重な人材である。

優秀なエンジニアの多くは先進性のある技術を好む。優秀なエンジニアを求めて,あえ
て少数派のリスクを承知でオルタナティブ技術を狙うユーザーもいる。

そして私は,こうした考え方をする人達の話を聞くのが好きである。

日経BP Javaプロジェクト  星 暁雄 hoshi@nikkeibp.co.jp

        • ☆PR☆------------------------------------------------------------------」に関する覚え書き
                                                                                                                                                      • -

Java Computing 2005 Springで,Sun Microsystemsの上級エンジニアたちがたびたび口
にした言葉が「メインストリーム(主流)」と「オルタナティブ(代替)」だ。どうや
ら米国IT産業で最近多用されているキーワードらしい。この言葉が,「技術の選択とイ
ノベーション」に関して,筆者が最近モヤモヤと考えていた事柄に対してフォーカスを
与えてくれた。

この覚え書きでは,Java Computing 2005で取材した文脈を参考にしつつ,メインスト
リーム(主流)とオルタナティブ(代替)という概念を使って情報システム技術の選択
肢,そしてイノベーションについて考えてみたい。

まず注意しておきたいこと。「主流」と「代替」は両方とも必要だ。オルタナティブ
決して「傍流」や「負け組」という意味ではない。一方,「メインストリームなら安
心」と思ってしまうと,それは失敗案件への道を進んでいる可能性が高い。繰り返すが,
優劣,勝敗という概念ではない。

そして何より,オルタナティブの中から次のメインストリームが出てくるという点を見
落としてはならない。先を見通すためには,オルタナティブにこそ注目する必要がある
のだ。

●メインストリーム:多数派のための技術

ここで,メインストリームとは,多数派が使う現代的な技術を指す。

ある技術がメインストリームであるためには,現代的な主流技術としての合理性があり,
開発者の層が十分に厚いことが必要となる。数百人規模の開発者が必要な大規模案件が
あったとしよう。そこで選ばれる技術がメインストリームだ。

例えばJava言語,J2EEStrutsは,システム構築技術のメインストリームに位置づけら
れる。

ユーザー目線で考えてみよう。多数派の技術は情報も多く,開発者人口も多い。ただし,
水準が低い開発者の比率も高いかもしれない。「メインストリームだから安心」という
思考パターンは失敗事例の温床だ。実際,「Javaの案件の失敗例の話を聞くことが増え
てきた」という声がある。逆説的だが,これはJavaがメインストリームに移行したこと
のダークサイドである。

そして開発者目線で考えると,情報が多く技術の成熟度が高い技術(=メインストリー
ム)とは,裏返せば競争も激しくなるということである。今,ソフトウエア開発会社の
競争相手は国内だけではない。インドにも中国にもJava開発者はいる。ソフトウエア会
社の立場で言うなら,メインストリーム技術だけを使って高い利益率を維持し続けるこ
とはどんどん難しくなっていく。

オルタナティブ:先進的な少数派。

オルタナティブとは,少数派が使う技術を指す。本論では,特に先進的な技術について
この言葉を使いたい。

(とはいうものの,「オルタナティブ=先進」とは一概にいえない。Linux商用UNIX
に比べ技術的な先進性があったとは言い難いが,商用UNIXに対して強力なオルタナティ
ブとなり,「破壊的イノベーション」として作用した。後述する「レガシー」も,時と
してオルタナティブと位置づけられることがある。)

先進的なオルタナティブ技術どうしの競争から次のメインストリームが生まれる。
Javaも,J2EEも,Strutsも,登場時点ではオルタナティブだったことを忘れてはならな
い。その意味で,オルタナティブ技術には注意を払う価値がある。Java技術も,登場し
た時点ではオルタナティブだったのだ。

何がオルタナティブか。Java技術でいえば,J2EE/EJBに対するSpring Framework
HibernateStrutsに対するTapestry。このあたりがオルタナティブに位置づけられる。

少数派が存続するには,多数派に比べて何らかの優位性が必要だ。例えば,オープン
ソースであること,あるいは技術的に先進性があることだ。

開発者の立場でオルタナティブを見てみよう。技術に自信がある小規模な会社では,メ
インストリーム技術より,生産性が高いオルタナティブ技術を採用した方が競争力を高
められるだろう。特定のニーズのある分野でオルタナティブ技術に通暁することは,
「専門家」として競争力を高めることにつながる。「グレート・ニッチ」を狙う戦略で
ある。

ユーザー目線で考えてみよう。オルタナティブ技術で飯を食っているシステム構築会社
はそれ相応の腕前を持っている可能性が高い(あるいは,人を騙すのがうまい場合もあ
るかもしれないが)。少数派の技術をあえて選択することで,価格,納期,機能など何
らかの点で優位性のあるシステムを調達できる可能性もある。

オルタナティブ技術を選択する理由は何か。「技術的合理性に納得した」,「エンジニ
アを信頼した」,「メインストリームに対する競争優位性を獲得したい」,「次世代の
メインストリームとなる可能性を見た」,このあたりが正解である。ただし,他人任せ
では失敗リスクが高まることを忘れてはならない。

●レガシー:伝統技術

もう一つのオルタナティブが「レガシー」だ。かつてはメインストリームだった技術,
あるいは伝統と実績がある技術で,需要が減少傾向にあるものを指す。

例えばCOBOL言語,SQLVisual Basicは,かつてはメインストリームだった。今はレガ
シーだ。

(本筋からは外れるが,ここで興味深いサンプルがLisp言語だ。Lispは1950年代に登場
した言語でCOBOLより古い。Lispは常に少数派のための技術だった。そして今なお生命
力を持っている。Smalltalkで有名なアラン・ケイは,Lispは時代とともに進化し,
「最高級言語」であり続けた,と述べている。Lispは永遠のオルタナティブといえるか
もしれない。)

レガシーにこだわることが「弊害」と見なされる理由は,イノベーションから遠ざかっ
てしまうからだ。レガシー技術を使って納品された製品(システム)をメンテナンスし
続けることは,コストにつながる。メインフレームを撤去するユーザー企業が相次いだ
理由は,維持し続けるコストに嫌気がさしたからである。

もちろん,組織によって事情が異なる場合もあるだろう。COBOL使いの方がJava使いよ
り多い会社では,COBOLがメインストリームだ。「SQL使い」が多い組織も同様。

誤解してならないことは,レガシーであることそれ自体は,優劣や勝ち負けとは関係が
ないということだ(これは繰り返して強調しておきたい)。技術の評価尺度は,その技
術的合理性,先進性,標準との合致,普及率(=開発者層の厚み)などはっきりした尺
度であるべきだ。

レガシー技術を選択することに合理性がある局面もあるだろう。レガシー技術に通暁し
た職人的エンジニアは,平凡なメインストリーム技術のエンジニアよりもいい仕事をす
るかもしれない。

●メインストリーム,オルタナティブ,レガシーのバランスこそが重要

ここでレガシー,メインストリーム,オルタナティブという概念は,思考のためのツー
ルであって,価値判断ではない。

しかも情報技術のイノベーションにより,これらの位置づけは入れ替わる。かつて,
Windowsは業務システムの世界ではオルタナティブだった。Java/J2EEも,登場時点では
オルタナティブだった。

「メインストリームではない」こと,レガシーやオルタナティブに分類されることを感
情的に拒否する人もいるかもしれない。では,レガシーは「伝統技術の職人」,オルタ
ナティブは「先進的グループ」と考えればどうだろう。メインストリームではない技術
を「売り」にするという時点で,その人には矜恃があるはずである。私はそんなエンジ
ニアを尊敬する。

メインストリーム技術も,いつかはレガシーになる。エンジニアとはそもそも技術を進
化させるために働いている。エンジニアが保守的な態度のままでは,やがて自らの価値
を損なってしまうだろう。

●暫定的な結論:メインストリームとオルタナティブが揃ってエコシステムは完成する

メインストリームがなければIT産業はカオス状態に陥る。1993年〜1995年頃のメインフ
レーム文化の崩壊に続くクライアント/サーバー時代は,ある意味で混迷の時代だった。
「何が主流か分からない」乱世が長く続くことは,開発者にとって不幸なことだ。

一方で,オルタナティブなきメインストリームは停滞を意味する。「一社勝ち」の状況
は,やがてその企業を弱くする。オルタナティブとメインストリームの両方が揃わなけ
れば「エコシステム」は完成しない。

●暫定的な提案:技術資産のポートフォリオのバランスの取り方を考える

では,オルタナティブとメインストリームに対して,私たちはどのような態度を取るべ
きなのか。

理想的には,レガシーの知恵,メインストリームの層の厚み,オルタナティブの先進性
の各要素をバランスさせることが望ましい。いわば「技術資産のポートフォリオ」を作
るのだ。それにより,リスク,コスト,機能,メンテナンス性,標準の採用,といった
重要な要素をコントロールできる可能性がある。

なお「ポートフォリオ」は,金融資産の管理や,企業経営で使われる概念で,リスクと
リターンの異なる複数の金融商品(あるいは事業)を組み合わせて,リスクとリターン
をコントロールする考え方である。

このバランスの加減で,1人のエンジニアとしてのキャラクターや,システム構築企業
としてのキャラクター,システム利用企業としてのキャラクターが決まるといってよい。

先進性とリスク,リターンは裏腹だ。だからリスクを取れる人材は(エンジニアでも,
マネージャーでも)貴重な人材である。

優秀なエンジニアの多くは先進性のある技術を好む。優秀なエンジニアを求めて,あえ
て少数派のリスクを承知でオルタナティブ技術を狙うユーザーもいる。

そして私は,こうした考え方をする人達の話を聞くのが好きである。

日経BP Javaプロジェクト  星 暁雄 hoshi@nikkeibp.co.jp

        • ☆PR☆------------------------------------------------------------------