Firefox Hacks 翻訳日記

アクセスカウンタ

zoom RSS Firefox 開発の軌跡

<<   作成日時 : 2006/02/12 18:17   >>

トラックバック 0 / コメント 4

この記事は、Firefox の開発リーダー Ben Goodger が自分のブログ Inside Firefox に、2006年2月6日付けで投稿した、The Inside Track on Firefox Development の翻訳である。
旬の文書なので、翻訳の速度を優先して正確性を犠牲にした部分がある。興味と英文読解力のある方は、ぜひ原文をお読みになっていただきたい。


Firefox 開発の軌跡


Firefox はどこから来たのか?


Mozilla の物語は長く、奥深い。視点も人それぞれ。これは僕の物語だ。

参加


僕が Mozilla に参加したのは、何百万人もの人に影響を与えられるようなものに携わる、というのが気に入ったからだ。僕と友人たちはすでにブラウザを使っていたので、出荷できる Netscape 製品を作るという、貢献の明確な目標もあった。レイアウトエンジンを 変更 した後、Netscape はありとあらゆる手助けを必要としているようだった。1999年の前半に、新しいブラウザ に実装されていたのは、古い Communicator スイートの一番基礎的な要素だけだった。Netscape の技術者たちはアプリケーションの枠組みを作るのに一生懸命だったので、ブラウズやメールを読むのすらほとんどできなかった。

僕は自分にどんなオファーができるか考えてみたが、これは難問だった。ウェブサイトを持っていたので JavaScript と HTML は独学で覚えたが、C++ の知識は全くなかった。それどころか、僕の AMD K6/166 では Mozilla のような大きなコードベースをコンパイルするのも難しかった(フロッピーディスク一枚に収まるくらい小さかった時でさえ!)。でも僕は、HTML と JavaScript に似た何かを使ってユーザインターフェース (UI) が開発されている事に気付いた。自分の注意深さと細かさが役に立つかもしれないと思った僕は、UI の改善で働き出した。参加した分野は、開発中のブラウザ・フロントエンドの洗練 と、XUL ツールキットの設計 だった。数ヶ月後、僕は ブラウザ・チーム に就職しないか、というオファーを受けた。

それは 2000年1月の中旬、僕はサンフランシスコ国際空港の国際線ターミナルで、搭乗の順番を待つために薄暗いラウンジに入った。数秒後、爆発したようなヘアスタイルの赤毛の男が、笑みを浮かべて近寄ってきた。彼が gramps (訳注:Don Melton のハンドルネーム)で、僕を待っていたのだ。

ぎこちない協力関係


Netscape と Mozilla オープンソース・プロジェクトとの関係は、気安いものではなかった。製品としての結果を求める Netscape のような企業と違い、Mozilla の目標は、各貢献者が コード信頼 を投資するに足る、コミュニティのハブとして独立した存在だった。しかし Netscape は、Mozilla に主導権を握らせたくはなかった。Netscape のブラウザのようにいろいろな制約のある製品をビルドし出荷する事は、昔も今も大いなる挑戦だ。Netscapeは、何をするべきかがわかっているのは自分だけだと確信していた。その時点では、僕もその通りだと思っていた。

コミュニティの貢献者たちは数多くいたが、根本的な機能においても、実現しているものよりは実装されていないものの方が多かった。クリティカルなバグの数は、修正されたものより未修正のものの方が多かった。不気味なまでに長いバグのリストをゼロに近づけられる戦略を持った組織は Netscape だけだったのだ。

Netscape のコミュニケーション問題


Netscape が犯した誤りは二つあった。彼らは製品マネジメント情報を充分に提供しなかったので、コミュニティには自分たちが達成するべきゴールがわからなかった。Netscape はゴールがどこかについて、継続的な連絡をしようとさえしなかった。技術者とプロダクト・マネージャーを一つの部屋にしていていも、情報の伝達をオープンにするのには役立たなかった。所属しているチームの中だけで話す方が、チーム以外の人たちと話すよりも簡単だったからだ。コミュニティによる効率的な開発にとって公開された文書がどれだけ重要であるかを理解せずに、部内での議論の結果を公開するという手間が省かれた事も少なくなかった。

もう一つの誤りは、製品開発の明確なビジョンが欠落していたことだ。Client Product Development (CPD - Netscape のブラウザとメールソフトウェア部門)で作業をしている人たちの理想は、新しいレイアウト・エンジンを使って Communicator スイートを再構築し、改良する事だった。より良いブラウザとメールリーダを作るのが目標だったのだ[1]

Netscape の基本方針


しかし、もっと重要な事があった。Netscape が生き残るためには資金を稼ぐ必要があったのだ。会社の一角にある Netcenter division management は、ブラウザに関する独自のアイディアを持っていた。かつてはウェブで最も有名なサイトだった Netcenter の財産は、ユーザが Yahoo や MSN のような他のポータルサイトに移行していくにつれて減少していた。Netscape は減る一方のトラフィックに収入を求める事をあきらめ、自分自身を差別化する事に活路を見いだすしかないように思えた。Netcenter のアイディアは、ブラウザとの緊密な連係だった。Netcenter はブラウザで金を稼ぐ方法を二つ考えた。一つは、ポータルサイトとブラウザをデザインでもコンテンツでも緊密にリンクさせる。もう一つは、ブラウザをビジネスパートナーから提供された機能にリンクさせる。

Netcenter は様々な要求を CPD に送ってきた。その中には、Netcenter ウェブサイトのコピーとなるような、ブラウザの「テーマ」も含まれていた。この 新しいテーマのブラウザ を使えば、ユーザは自分のモニタが故障したんじゃないか、と考える権利がもらえる、というわけだ。おまけに、ブラウザの UI に追加された Netcenter への多数のリンク とパートナーへの多数のリンク、 それに人目は引くがほとんど役に立たないパートナーコンテンツが追加されたサイドバーパネルが、ユーザの注目をウェブコンテンツと争う、という仕掛けだ。

最終的に Mozilla.org は、Netscape のビジネス関連の機能を、Netscape Instant Messenger の開発などが行われていた Netscape の非公開の CVS サーバに追いやることになった。Netscape 6 Preview Release 1 で酷評され、議論の的になった "Modern" テーマも、最後には もっとスタイリッシュ ではあるが相変わらずネイティブではないテーマに置き換えられた。

Mozilla の UI 機能不全


Netscape 製品に対するユーザインターフェース・デザインのほとんどは、Netcenter の要求を満たすべく作業する Netscape のスタッフによって行われていたので、Mozilla のユーザインターフェースは被害を被っていた。Netscape が独自のニーズを満たす製品を構築できるような、クリーンなコアになるどころではなく、Mozilla スイートが健全な状態になった事は一度もなかったのだ。Mozilla スイートは 構成が不格好な UI で一杯だったが、それは Netscape のプライベートなソース・リポジトリ、「コマーシャル・ツリー」にあるオーバレイを載せるためだけに存在していた。

機能不全をさらに悪化させていたのは、プロジェクトがその時点で百人以上のエンジニアによって開発されており、彼らは CPD の様々な部門に分かれ、お互いの連係が不十分なこともある、という事だった。Netscape は、それまでの数年で急速に成長した企業で、エンジニア雇用の基準も一定ではなかった。そのため、仕事を達成するには他人の手助けが必要だと思われるようなエンジニアが、機能のデザインと実装において過大な自治権を持っていた。ユーザ・エクスペリエンスに対する配慮は希薄であり、その結果、アプリケーションは急速に肥大化したのだ。

変化を求める戦い


ブラウザとツールキットのグループに属するエンジニアたちは、この状況に満足していたわけではなかった。僕は、後に "Classic テーマ" として知られることになるものの作業を始めていた。これは、システム設定を考慮した外観を持ち、後に Firefox のテーマの基礎となった。グラフィックデザインの才能がほとんどなかったので、僕は Netscape 4 のアイコンを使用した。Mozilla のディストリビューション・リリースのテーマにはこれが採用されたが、Netscape は結局、Netscape 6 に "New Modern" テーマを選んだ。僕たちはこの選択に強く抗議したけど、うまくはいかなかった。レビュアーの目からすると、Netscape 6 の新奇な外見は、堪忍袋の緒が切れる原因になっただろう。ポップカルチャーのレビューサイトである Suck.com は、テーマ化されたインターフェースを批判する 記事 の中で、Netscape 6 をテーマによる失敗の代表例として上げている。

Netscape 6 の失敗にもかかわらず、エンジニアたちはまだ開発の継続に熱心だった。今や、Netscape のパートナーに関わるカスタマイズ[2](エンジニアたちはこれを「売春バー」と呼んだ)は、コマーシャルツリーに入れられるので、エンジニアたちはオープンソースリリースを改善することに力を注いだ。Mozilla を理想のスイートに作り上げたいと夢みながら。Netscape ブランドの製品は、たいていの場合、無視された。

僕も含めた多くの貢献者たちは、ユーザインターフェースのさらなる改良を推し進めたが、この動きは会社内部の人々から広い範囲にわたって反対された。僕は、「ユーザインターフェース・モジュールオーナー」だった (これは、Mozilla の専門用語で、その頃にはかなり珍しい存在だった。Mozilla が僕にこの役目を与えたのは、オリジナルの Modern テーマという災厄の後、プロジェクトの自立性を明示しようという試みだった)。 一度ならず僕は、モジュールオーナーとして実力行使しようとしたが、うまくいかなかった。機能のデザインでは、管理機構の弱さに後押しされた先任権が、論理よりも優先されたのだ。ある人の助言だが、会社(敬礼!)に雇われている人々にオープンソースの手段は通用しない。僕は自分の信念に従って、質の低いパッチのレビューを断った。僕はほとんど首になるところだった。だが、もっと悲惨な事になった人たちもいた。欲求不満と失望は増大する一方だった。僕はモチベーションを失った。Netscape の複雑な締め付けが Mozilla 製品にも浸透していて、Netscape 社員としての僕は、「オーナーシップ」を Netscape の気まぐれのために使うことが期待されているのだ。僕は操り人形になろうとしていた。

僕は思考停止した。質の低いパッチを取り扱うときに、全てを犠牲にしてでも勝たなければならない戦いとは考えなくなった。Netscape と Mozilla はリリースを続けていた。アプリケーションの安定性とパフォーマンスは向上していったが、ユーザインターフェースは怪奇なままだった。

新たな始まり


2001年半ばのある夜、僕は David Hyatt と深夜のデニーズに行った。Dave は磁力のような情熱を持ったタイプの人間だ。彼と話し合っているとアイディアが次々に沸き上がってくるので、興奮の虜にならざるを得ない。僕たちは Mozilla の腐敗について語り、Netscape を非難し、独立を宣言できない Mozilla の無力を非難した。ユーザインターフェースをもう一度最初からやり直した方がいいんじゃないか、という意味のことを Dave は言った。フロントエンドのコードの多くは肥大化してダメなので、新しい視点から始めた方がいいと。僕たちは、C# と .NET の使用について語り合い、そして Manticore が生まれた。アイディアとプロトタイプによくある事だが、作業が明確になるにつれて、面白さは急速にしぼんで退屈に変わった。始まってから数週間で Manticore は死んだ。だが、Dave は再挑戦した。最初は Camino で、そしてついに Firefox で。

これらのブラウザに関する努力は、Mozilla アプリケーションスイートにおける腐敗に対する反応だった。Netscape が AOL 内での支持を失うに連れて、CPD に対する Netcenter の影響は薄くなっていき、コミュニティの力が増大しはじめた。しかし、Netscape がエンジニアリング計画の多くを放棄した後も、UI は改善しなかった。この時点でユーザインターフェースにおける急速な改善を阻んでいたのは、劣ったエンジニアがチェックインする自由を持っていた時代にコードの品質を保とうとして確立されたプロセスそのものだった。

ブラウザの UI には組織だったビジョンがなく、変更を行う権限はあまりにも幅広く分配されていた。UI に変更や追加を行いたいのであれば、レビューが二つあれば良かった。その結果として生じた混乱を改善する明確な計画はなかった。ビジョンがなかったのだ。

Firefox は違っていた。0.6 の後、僕は 1.0 に至る 計画書 を提示した。二、三の削減と健全性のチェックが行われ、中核となるフロントエンドのエンジニアたちの意欲的な作業と基礎となる Gecko の開発が一年半続いた後、Firefox 1.0 はリリースされた。

その間に、Mozilla は 非営利の foundation を設立し、 長年望んでいた独立を手に入れた。同じ日に、Netscape に残っていたクライアント・エンジニアたちは 大虐殺 としか表現しようのない 大量解雇の中で失業した

Firefox とその開発モデルには、多くの反感があったし、それは今でも残っている。開発モデルの作成当時、少数が常に多数よりも賢明と言えるか、強力な中央統制のもとに小さな開発チームを置くことのメリット、Mozilla のオーナーシップポリシーを遵守する必要性[3]、などの意見が声高に叫ばれた。実際の所、これらの意見は Firefox チーム以外の人々を Firefox のソースコードに近づけない、という有益な結果になったのだが。僕たちは過去の UI の非効率性を批判した。僕たちの見解は、不必要なまでに辛辣で偏ったものだった。僕たちは Netscape での経験とそれに続く無秩序によってひどく傷ついていた。多くの人が理解できていたとは思えない。簡単に伝えられるような物事ではなかったのだ。

多くの人にとって、僕たちは上下関係を破壊しているように思えただろう。僕たちは、今までの仕事には価値がないと不満を言っていたのだ。コミュニティによる開発の原則に反している、と言われた事もある。これは真実ではない。実際にほとんどのオープンソースプロジェクトは少人数によって管理されているからだ。多くは良く練られたリリースプランを持ち、貢献者の寄与に対する強いコントロールを維持している。ただし、僕たちの場合は、管理が非常に独善的だった、という欠点があった。PR については、いい仕事をしたとは言えない。

証明


僕たちは決心をし、製品を 1.0 リリースに持っていった。それは長く、困難で、全てを破壊する道のりだった。これについては、いずれ僕自身がもっと書くかもしれない。でも、現時点では、問題を抱えたスタートや途中の様々な批判にもかかわらず、このモデルがうまくいった、という事だけを言っておきたい。Mozilla や Netscape よりもうまくいったんだ。Firefox 1.0 のダウンロード数は、初日だけで百万以上、十日で一千万、そして一年あまりで一億を超え、後継の Firefox 1.5 がリリースされた。

Firefox は今や技術ブランドの輝く星の一つだ。BrandChannel 読者の投票では 世界ブランドの第8位で、eBay と Sony よりも上位にランクされた。Internet Explorer に対抗してマーケットシェアを下げなかった最初のブラウザであり、国によって違うが 10〜25% のシェアを獲得している。Firefox は今も成長を続けている。Firefox と対になるメールソフトの Thunderbird は、総合的な機能を持ったメールアプリケーションとして成功している。Netscape 6 の暗黒時代にエンジニアチームが見た夢が、ようやくかなったのだ。

今ここで


僕がこれを書いているのは、Firefox の現状についての歴史的な観点を提供したかったからだ。Firefox 1.0 以来、Firefox ブラウザの開発に関していろんな事が言われてきた。本当は、物語は Firefox 1.0 よりももっと昔から始まるんだ。何年もさかのぼり、大陸をまたぎ、登場人物は何千人もになる。それはファンタスティックな物語だ。定番の主題は全部入っている ―― 強欲、激情、動揺、失恋。でも大部分は、自分が本当に信じられるものを作ろうとして努力する献身的な人たちの話だ。人生の送り方にかかわらず、誰でもかかわれるような話。だから Mozilla はこれほどパワフルで、Firefox にとどまらず長続きしているんだ。

僕にとって、この物語は、人生で最も信じたものの実現と、自分の夢がどんなに簡単かつ独断的に奪い取られるかを発見した話だ。でも最後には、ちょっとした忍耐と昔ながらのハードワークがあれば何だってできる、という事も理解した。

何年もかけて、Mozilla はついに交差点になる力を獲得した。そこでは、人々が集まり、インターネットについての思いと、どこに向かうのかについてを共有することができる。人が違えば考え方も違い、それは別々なプロジェクトとして結実している。Camino、SeaMonkey、Thunderbird、Sunbird、Chatzilla、Bugzilla、などなど。これらのプロジェクト全体で、Mozilla というエコシステムを形成しているんだ。プロジェクト間でアプローチが違っているかもしれないが、その成果は必ず役に立つ。あるプロジェクトがアイディアを別のプロジェクトに提供したり、またはその逆もあるだろう。誰かのニーズを満たし、貢献とアイディアを持っているプロジェクトは、他の全てのプロジェクトにとって有益なのだ。多くのインスタンスに適用できる汎用ツールは、現在の要求だけではなく将来の要求も満たせるようなバックボーンになる。

Firefox は大成功をおさめたので、いろいろな方面から注目を集めている。新しい貢献者たちは、プロジェクトを発見し、手助けする新しい方法を見つけている。プロジェクトを活性化して、革新の流れを維持するのには、こうした事が不可欠なんだ。そこで重要なのは、同じ区画を何回も歩き回った僕たちが、以前には何があったか、うまく行った事とうまく行かなかった事は何か、を彼らと共有する事だ。僕たちが戦った闘争、僕たちが支払った対価。このプロジェクトは偶然成功したんじゃない。五年以上に渡って、世界中の何千人もの人々が費やした労力の総和が、この成功なのだ。

参加した時代や意欲の多寡を問わず、貢献者であれば誰でも、この Mozilla の物語を忘れないで欲しい。

2006年2月4日

脚注


  1. ブラウザとメールクライアントを同時に開発するのは混乱の元だ、という人もいる。でも僕は、この二つが必ずしも相互に排他的とは思わないし、片方で行われた改良がもう片方にいい影響を与えることも多々あると思う。

  2. How to Monetize your browser”, “The IE Advantage

  3. Module Owners

  4. Moving Target(訳注:この脚注に対応する参照は本文中には見当らない)

テーマ

関連テーマ 一覧


月別リンク

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(4件)

内 容 ニックネーム/日時
良い話だ。感動したよ。
IE7が正式リリースされてもFirefoxユーザーは減らんで欲しいよ。
IE7を見てるとFirefoxのインスパイア(死語?)に思えてならんのは俺だけだろうか?
Torisugary
2006/02/14 02:07
Torisugary さん、コメントどうもです。

> 良い話だ。感動したよ。
原文の感動をそのままお伝えできていればいいんですが。

> IE7が正式リリースされてもFirefoxユーザーは減らんで欲しいよ。
> IE7を見てるとFirefoxのインスパイア(死語?)に思えてならんのは俺だけだろうか?
Firefox の後を追っかけているようにしか見えませんからね。
ただ、拡張機能システムまでは真似できないでしょうから、
Firefox を捨てて IE7 に走る人は少ないのでは、と予想しています。
池田
2006/02/16 16:58
会社は未だにNetscape4.7xがメインです。
やむを得ず入れたNetscape6の重さに「だめだぁコリャ」などと愚痴ってた事もありました。色々とあったんですね。
この翻訳を読んで、一般に知られている歴史と当事者が語る歴史の差に愕きを隠せないです。部分的には色々と聞こえていた部分もありますが、全容とはいかないまでも充分な内容です。翻訳作業、お疲れ様でした。
aomorikuma
2006/03/06 12:19
いろいろ交流できればと思って、コメントしました。
ほかの方のブログって楽しいものですよね・・
がんばって下さい・・。
また、時間のあるときに訪問します!!
☆ジェット♪♪
URL
2007/09/03 18:07

コメントする help

ニックネーム
URL(任意)
本 文
Firefox 開発の軌跡 Firefox Hacks 翻訳日記/BIGLOBEウェブリブログ
文字サイズ:       閉じる