先週私はAlt.NETのカンファレンスに出席した。 これは、私がブログ界隈で長い間ウォッチしてきた人たちのグループによる、名前を持った最初の会合だ。 Microsoft 技術の長期利用者たちで、自分達の開発哲学が、レドモンド発の正統と思われるものから乖離してきたと感じている人たちのグループだ。 一方、このグループから離れ、Microsoftの世界にとどまって影響を与えてみたいと考えた人たちもいる。

alt.netという単語は David Laribeeがブログで初めて使ったものだ。 カンファレンスはオープンスペースの手法で開催された。 このやり方はそのコミュニティの性質にちょうどぴったりくるものだったと思う。 私はこのコミュニティを代表してしゃべりたいわけじゃないし、コミュニティの定義をしたいわけでもない。 以下の文は私が見聞きしたものの私なりの解釈だ。

代替手段

オルタナティブという名前について1つ質問が上がった。 Microsoftに反対するグループだと示唆されているようで、幾人かの人を落ち着かなくさせたのだ。 「オルタナティブ」の異なる見方は、これは選択ヲ抱擁スルためのものだということだ。 多くのコミュニティが、選択肢が多いことでより強くなれると信じている(Unixコミュニティが心に浮かぶ)。 ソフトウェア開発では、ひとつの解決策がどんな状況でも正しいなんてことはまずない。 代替手段を持つということは、自分たちの状況において適切なのはどの解決策なのかを考えなければいけないということだが、ハンマーでナットを回そうとするよりはそっちの方が好ましい。 そしてもちろん、個人的な経験や好みで選択結果が変わるということにもなる。 私たちはプログラマーかもしれないが人間でもあるわけで、アルゴリズムが具現化した存在ではないのだから。

alt.netの考え方は私にはとても親しみやすいものだ。 アジャイル&オブジェクト指向&パターン&TDD&DDDの混ぜ合わせで、まさに私好みのソフトウェア開発の流派である。 (適切な名前がないので、ソフトウェア開発のOOPSLA派と呼びたい。) きっとそこには、現在は主流なマイクロソフト正統派というものがあるが、これはOOSPLA派には適していない、という信念があるのだろう。 そしてそれに対する苛立ちもある。 しかしここで大事なのは、alt.netコミュニティは、主流と思われるMicrosoftの道筋を消し去るべきだと考えているわけではなく、Microsoftの世界は広いのだから異なるアプローチがあってもいいだろうと考えているということだ。

「オルタナティブ」がいい名前かどうかの議論以外にも、そもそも名前が必要なのかという議論もある。 強迫的新造語作者として知られる私が「名前重要」と考えているというのは驚くようなことではないだろう。 ここで形成されているソフトウェア開発には明らかに共通的な流儀があり、それに名前をつけることで、このことに関する話がしやすくなる。 用語を作ることが癇にさわる人もいることは避けられないが、その反対意見よりも便利さの方が勝っていると思う。

参画型コミュニティ

alt.netの重要な特徴は、参画型コミュニティであることだ。 昔から、ユーザーカンファレンスが開催されるときは、アジェンダはベンダーが仕切っている。 ほとんどのセッションはそのベンダーに関するもので、ベンダーが提供するツールの使い方をコミュニティに教えるのだ。 よいベンダーたちは顧客コミュニティの話を聞き、それをふまえてコミュニティの要望を反映した新製品を開発する。

参画型コミュニティはこれとは異なり、単にベンダーに話を聞いてもらって好ましい製品を作ってもらいたいわけではない――新製品の開発に参画することを望んでいるのだ。 このコミュニティはまさにそうした、Javaの世界で主導権を握っているような参画型コミュニティである。 JUnitや、IBatisや、SpringやHibernateなどはベンダーから生まれたものではなく、「顧客」によって開発されたのだ。 ソフトウェア産業の性質の一つに、多くの顧客がどこもベンダー会社と同様に重要な製品を開発できると言うことがあげられる。 特にコミュニティとオープンソースの精神とが結びついているときに顕著だ。

Microsoftにとってこれから重要な問題なのは、このコミュニティのような参画型で頑固なコミュニティとどう付き合っていくのかである。 こういうグループを敵と見なしてしまうと、価値ある製品を失ってしまうし、より重大なことに、それら製品に関係する有能な人たちも失ってしまうことになる。 このようなコミュニティと付き合っていくことは重要な機会をもたらすのだ。 エンタープライズJava界隈の参画型コミュニティがエンタープライズJavaプラットフォームを救ったことを言いたい。 このことからMicrosoftが受ける大きな試練とは、オープンソース開発に順応する方法を探すことを意味するのだ。 最近の兆候、特にIron Rubyまわりのものは、少なくともMicrosoftのごく一部は正しい方向に向かっているということを示している。

正しい方向性の兆候は、Scott GuthrieによるASP.NET MVC frameworkのデモにも多く見られた。(Scott Hanselmansのビデオも参照のこと。)