80
Help us understand the problem. What are the problem?

posted at

updated at

Firefox OSの軌跡

Original article:https://medium.com/@bfrancis/the-story-of-firefox-os-cb5bf796e8fb written by Ben Francis.

モバイル市場は長らくAndroidとiOSの独擅場ですが、その牙城を崩すために、数多くの企業やコミュニティが挑戦を繰り返してきました。
Windows Phone、BlackBerry OS、Sailfish OS、Harmony OS、Tizen、etcetc…

中でも特に注目されていたモバイルOSのひとつが、Mozillaが開発していたFirefox OSです。

以下は、その始まりから終わりまでの一部始終を描いた物語、The Story of Firefox OSの日本語訳です。
著者のBen Francis( Twitter / GitHub / Medium / LinkedIn / Webサイト ) はMozillaの開発者であり、Firefox OSに最初から最後まで携わっていた、まさに中の人です。

The Story of Firefox OS

Mozillaの会長であり、トカゲ世話役主任でもあるMitchell Bakerが、ストーリーテリングの重要性についてチームのディナーで話していたことをよく覚えています。
オープンソースソフトウェアのコミュニティでは、ストーリーを語ることで経験を共有し、学びの糧にすることができるのだと、彼女は語っていました。

私はBen、Mozillianであり、Boot to Geckoプロジェクトに5年間フルタイムで携わってきました。
そして今、私には語るべきことがあります。

私はエンジニアとしてプロジェクトに参加していたため、高度な意思決定、財務やビジネスパートナーシップといった上位レイヤについては、全容は把握していません。
しかし、私は長い間、そう、共同創設者の誰よりも長い間、このプロジェクトに関わってきました。
そのためエンジニアリング、デザイン、製品といった各レベルにおいて、多くの知見を得ることができました。

そういうわけで、2011年にBoot to Geckoプロジェクトが誕生して空のGitHubリポジトリが作成され、FirefoxOSとして商業的に販売され、そして2016年に全てのコードがコミュニティに譲渡されるまで、私の知っているFirefox OSのストーリーをお話ししたいと思います。

この5年という長き旅路には、オープンWebの力でアプリのエコシステムを打ち破るという一つのビジョンを持った、何百人ものMozillaコミュニティメンバーが共にいました。
オープンソースのブラウザベースのモバイルOSを市場に投入した経験から、我々の成功と失敗、そして教訓を振り返ってみようと思います。

本文はとても長くなったため、最後まで読めない人のために、以下に重要なポイントをまとめてあります。
もちろんですが、これらは私の個人的な主観であることは言うまでもありません。

Summary

Biggest Achievements

成功。

Design

エッジジェスチャーでウィンドウを切り替えるといった革新的機能を備えた、シンプルかつ新鮮なデザインのモバイルOSだった。
完全には実現できなかったものの、ブラウザベースOSを実現するための素晴らしいアイデアが幾つも取り入れられた。

Engineering

完全にゼロからフルオープンなモバイルOSを構築し、2年足らずで市場に投入した。
我々の知る限り、このようなことを成し遂げたチームは他にはありません。
モバイルデバイス上でのWebコンテンツのレンダリングは非常に優秀であり、多くの場合においてネイティブ実装のパフォーマンスを上回るほどだった。
30の実験的なAPIを投入し、Webの限界を押し広げ、Webアプリの新しいトレンドを生み出す元となった。

Product

20種類のデバイスを30以上の国で発売し、Mozillaコミュニティを総動員して発売記念パーティを開催し、洗練されたブランディングとマーケティングキャンペーンを繰り広げ、Webはプラットフォームであるというメッセージを知らしめた。
たとえそれが成功しきれなかったとしても。

Partnerships

モバイル業界から前例のない広い支持を得た。
世界最大のモバイルイベントであるMWCにおいて何度も話題をさらい、競合する企業同士がともにMozillaのミッションに協力するようになった。

Biggest Mistakes

失敗。

Design

当初は既存の模倣から始めましたが、それはシンプルでもなくユニークでもなく、Webに特化したものでもなかった。
後から方向性を変えるつもりでいましたが、それは予想外に難しいことでした。

Engineering

市場投入を急ぐあまり、アプリストアのモデルをまねてパッケージアプリを作ろうとし、解決しようとしていた問題を更に大きくしただけに終わった。
WebをWebたらしめているものから焦点を外した。
Webスタックのサーバ側ではなく、クライアント側のみに注力しすぎた。

Product

オープンだけでは売れないことに気付いた後、最終的には低価格戦略で競争する道を選択したものの、その方向には先がなかった。
発売後は、フラッグシップの存在が無いこと、そして販売の方向性の欠如に悩まされた。

Partnerships

機能の優先順位を決めるにあたり、通信事業者やOEMメーカーをお客様として扱い、エンドユーザのニーズを顧みなかったため、FirefoxOS本来の使命を見失った。
ユーザに直接アップデートを配信するライセンスを獲得することができなかった。

What I Would Do Differently Today

今の自分ならどうするか。

Design

他のOSが持っている機能を全て再現しようとするのではなく、Webコンテンツに焦点を当てたシンプルなブラウザベースのデザインから始める。
時には機能を省くことも重要で、追いつくことに必死にならない。

Engineering

chromeとWebコンテンツを明確に分離し、Webに適していないことは無理にやらせない。
クライアント側で特権を持つJavaScript DOM APIを実行させるのではなく、サーバモデルのようにRESTやWebSocketsを使ったAPIをデバイスに実装する。
提出されたパッケージアプリを展示するアプリストアを作るのではなく、Webアプリへのリンクをコミュニティベースで作成する。

Product

安価なスマートフォンを作ろうとするのではなく、Webコンテンツ、ゲーム、エンターテイメントを狙ったミッドレンジのタブレットを作成する。
新興市場への大規模展開ではなく、先進国市場でニッチを開拓する。

Partnerships

製品ロードマップの方向性はMozillaがリードしていることを主張し、戦略に合わないときは機会を断ることも厭わない。
ソフトウェアのアップデートはエンドユーザに直接配布し、それができないチップセットのベンダーとは手を切る(これは当時は非常に難しかったが、今なら簡単にできる)。

Booting to the Web

2011年7月、"オープンなWebのための、完全でスタンドアロンなOS"を目指したオープンソースプロジェクトBoot to Geckoアナウンスされました

アプリケーション開発がプロプライエタリなベンダに縛られている現状を、Webが駆逐することができるとMozillaは信じています。
モバイルとデスクトップの両方にオープンなWeb技術を導入し、将来のアプリのための基盤にするため、我々はWebの可能性を広げ、競合するスタックを乗り越え、Webの限界を超えていかなければなりません。

主な作業分野は以下のようなものでした。

New web APIs

デバイスやOSの機能をWebコンテンツから使えるようにするプロトタイプAPI。
電話、SMS、カメラ、USB、Bluetooth、NFC、などなど。

Privilege model

それらの新機能やページに安全にアクセスできるようにする特権機能。

Booting

Android互換デバイスの基盤を試作する。

Applications

システムの能力を証明するため、アプリケーションを移植あるいは作成する。

01.png
The first (unofficial) B2G project logo, by Sean Martell

この時点ではスマートフォンやモバイル市場への言及はされておらず、ただ純粋に、Webの限界を超えて自分たちの力を証明したいという思いがありました。

The Co-founders

プロジェクトの共同創設者は、Andreas GalChris JonesBrendan EichMike Shaverの4名です。

02.png
B2G project co-founders (From left to right: Andreas, Chris, Brendan, Mike)

Andreasは、高水準言語のJITコンパイルについて博士論文を執筆し、2008年にMozillaに参加し、Mozilla初めてのJITコンパイラであるTraceMonkeyを実装した、非常に優秀なエンジニアです。
彼はまた最近JavaScriptで実装されたPDFビューアであるPDF.jsを完成させ、JavaScriptの力を世に知らしめました。

Chrisはバークレーでコンピュータサイエンスの博士号を取得し、2009年Mozillaに入社し、Andreasと共同でPDF.jsを開発しました。

BrendanはJavaScriptを発明し、1998年にMozillaを設立しました。
B2Gが発表されたとき、彼はMozillaのCTOであり、そしてプロジェクトのエグゼクティブスポンサーでした。

Mikeは1998年にMozillaが設立されたときからのメンバーで、エンジニアリングやIT戦略のVPを務めていましたが、B2Gプロジェクトが発表された直後にMozillaを去りました。

私がB2Gプロジェクトに入ったのは発表の翌日だったため、発表された時点ではそこにはいませんでした。
私の知るかぎりでは、この発表にはひと悶着ありました。
理由のひとつは、社内でまともに議論される前に公開メーリングリストで発表されたこと、そして上級管理職を含むほとんどの人がこのプロジェクトを把握しておらず、発表されるとも思っていなかったことです。

このプロジェクトは少数精鋭の先端技術プロジェクトのような立場であり、Mozillaの通常運用とは切り離されたスタートアップのように扱われていました。

The Building Blocks

空のリポジトリから始まったプロジェクトは、小さな初期チームによって以下が実装されました。

"Gonk" … LinuxカーネルとAndroid HALをベースにした低レベル基板。
"Gecko" … FirefoxのWebエンジンをベースにしたアプリのランタイムおよびデバイスAPI。
"Gaia" … HTML・CSS・JavaScriptで構成されたスマホのユーザインターフェース。

03.jpeg
B2G Architecture

一部のコードはAndroid Open Sourceプロジェクトから拝借しましたが、このアーキテクチャの特徴は、AndroidにあったJavaレイヤをすべて削除し、Webコンテンツを限りなくベアメタルにGeckoで描画していることです。
これによってB2Gはパフォーマンスにおいて大きなアドバンテージを得ることができ、Webコンテンツをネイティブコード並みに扱うことができるようになりました。

小さいながら成長中のこのチームによって、初めてのワークウィークが2011年12月、台湾のオフィスで行われました。
当時Mozillaの台湾オフィスは、台北のシンボルである台北101の近くにありました。
グランドハイアットホテルで行われた、この初めてのワークウィークでは、プラグインを使用せずにWebページから電話をかけるという史上初の試みが行われました。
基本的な仕様がまとまりつつありました。

04.png
Taipei, December 2011

The Prototype

2012年2月にパリで行われたワークウィークでは、QualcommのMichael Vinesと、UXチームのJosh Carpenterが加わりました。
同月にバルセロナで開催されるMobile World Congressに出展するプロトタイプを作成するため、ぎりぎりまで開発が続けられました。

05.png
Paris, February 2012

我々は、MWCにおいて、SamsungのGalaxy II上で動作するプロトタイプを発表し、最初のB2Gで発表した初期のコンポーネントを、Androidハードウェア上で動作させるという概念実証に成功しました。
これは我々の最初のパートナーであるTelefónicaとの共同発表で明らかにされました。
さらにはAdobe、Qualcomm、Deutsche Telekom社からも追加のサポートが発表されました。
さらに記者会見では、Qualcommのリファレンスハードウェア上で動作するB2Gソフトウェアのデモンストレーションを、Telefónicaが行いました。

06.jpeg
B2G prototype, MWC 2012, Barcelona

この成功は、GoogleとAppleに独占されているモバイルOSから主導権を奪うべく、Androidに対抗できる可能性のあるプラットフォームを探していた多くの電話会社の目に留まりました。

Webのオープン性、イノベーション、チャンスを広げるミッションを持つ非営利団体として、Mozillaは独自のビジョンを持っていました。
自分たちのモバイルアプリケーションが第3のプラットフォームになることを目指すのではなく、オープンなWebがその役割を担うということです。
Webの普遍性と規模こそが、既存のアプリケーションプラットフォームに対抗できる唯一の存在なのです。
そして、Mozillaはその先頭に立っていました。

Partnerships

新たなパートナーの支援を得て、翌年市場に投入できるデバイスを用意して戻ってくることをMozillaは約束しました。

最初のパートナーはTelefónicaで、彼らは既に独自のオープンWebデバイスプロジェクトに取り組んでいました。
当初は、MozillaはGeckoベースのプラットフォームを提供し、Telefónicaは独自のフロントエンドを実装し、デバイス認証や市場投入に関する専門知識を提供する予定でした。
Telefónicaのような巨大な通信事業者との協業はMozillaにとって新天地であり、最初はちょっとした文化的衝突がありました。
いくつかの緊張があり、MozillaとTelefónicaはそれぞれ競合するフロントエンドを開発していました。

07.png
Telefónica and Mozilla alternative B2G front ends

しかし、リソースを集めてひとつのフロントエンドに集約した方が理にかなっていることはすぐにわかり、MozillaとTelefónicaのエンジニアは肩を並べて仕事をするようになりました。
両チームのエンジニアはこのアプローチを積極的に受け入れ、すぐにひとつのチームになりました。

Deutsche Telekomも初期に大きな貢献をしたパートナーです。
携帯電話会社が参加したという事実は、OEMメーカーの関心を集めました。
最初に参加したOEMメーカーは中国のZTEとTCLです。

これらのパートナーシップが非常に重要であった理由は、最初に提携したチップセットメーカーであるQualcommが、ファームウェアやデバイスドライバのライセンスをMozillaに提供してくれず、OEMを通じてしか手に入れられなかったためです。
これはすなわち、OSのビルドやアップデートをユーザに直接配布することが法的に禁じられるということを意味します。
モバイルOSのアップデートの重要性を考えると、これは我々にとって重大な問題となります。

Firefox OS 1.0

その後1年間にわたりMozillaとパートナーは集中開発を続け、製品クオリティのモバイルOSを構築しました。

Design

UXチームに与えられた指令は、最初のリリースではあまり驚くようなことはしないということでした。
AndroidやiOSのようにシンプルにアプリアイコンをグリッドに並べ、UIをどう差別化するかはその後から考えることにしました。
まずは、既存のUIをWeb技術で再現できることを示すことから始めました。

11.png
12.png
13.png
14.png

チームのデザインはかなり洗練されていましたが、ただ後から方針転換することを前提に、既存のものを真似ることから始めたのは、今から考えると失敗でした。

Implementation

技術的には、HTML・CSS・JavaScriptのみを使ってUIを構築し、オープンなWeb技術でスマートフォンを作ることができることを証明しました。

ただし、インターネット接続が不安定なときにも、Gaiaに内蔵されている全てのアプリはオフラインで機能し、電話を掛けたり、写真を撮ったり、音楽を聴けるようにしなければなりません。
当初、この目的のためにAppCacheを使っていました。
これは初めての、Webアプリケーションをオフラインで動作させる挑戦でした。
しかし残念ながら、すぐに多数の制限や問題にぶち当たり、我々の要求を満たすことはできないことがわかりました。

また、スマートフォンのハードウェアと通信するJavaScriptのAPIを多数開発し、それに対して適切な特権モデルも構築する必要がありました。
Webの既存のセキュリティモデルは、信頼できないコードは限られた機能しかないサンドボックスに隔離することで、ブラウザから安全に実行できるようになっています。
しかし、電話を掛けたりテキストメッセージを送ったりするような、より機密性の高い機能へのアクセスをWebコンテンツに提供するには、新しいセキュリティシステムの構築が必要です。

オフラインとセキュリティの両方の要件を満たし、B2Gのバージョン1.0を予定通り出荷するための最もシンプルな解放は、Geckoにパッケージの概念を導入することだと決断しました。
パッケージ化したリソースは、コードが信頼できることを確認できるよう暗号化されており、そしてオフラインで動作するようデバイスにインストールすることができます。

パッケージ化によって目前の問題は解決しましたが、Web上に実際のURLを持たないので本当の意味のWebアプリではありませんし、安全性の証明のために最終的にはMozillaかどこかの機関によって署名されなければなりません。
当時私は、このアプローチは本当のWebアプリではないとして反対しましたが、しかし期間内に出荷できる、より適切なWebソリューションを思いつくことはできませんでした。
2012年7月、バルセロナにあるTelefónicaのオフィスで行われたワークウィークにおいて、何かもっとよい方法を思いつくまでの応急処置として、パッケージアプリを導入することが決定されました。
この決断も、結果としては間違いだったと思います。
大きな技術的負債を抱えるだけはなく、後戻りできない選択肢を歩むことになってしまったからです。

Race to the Finish

とはいえ、これまでの努力は、2013年1月にベルリンで行われたワークウィークでついに結実しました。
チップセットメーカーのQualcomm、通信事業者のTelefónicaとDeutsche Telecom、製造のZTEとTCLの皆と肩を並べて、バージョン1.0を出荷するために働いたのです。

Deutsche Telekomが主催したこのイベントは、B2Gの開発にとって最も思い出深いもののひとつになりました。
フロントエンドチームとバックエンドチームの間で、どちらが先にバグを潰しきれるかの真剣勝負が始まりました。
作業はプロジェクターにリアルタイムで表示され、全員が進捗状況を見ることができました。
200以上のバグが修正されるまでの間、部屋には信じられないほどのエネルギーが満ち溢れていました。

21.jpeg
Berlin work week, January 2013

週の終わりに、Andreas Galがバグゼロを宣言し、そしてここにFirefox OS バージョン1.0が誕生したのです。

ちなみに、フロントエンドチームが勝利しました。

Mobile World Congress 2013

Firefox OSの初めての商用バージョンは、必要なテストと認証が完了したあとの1.0.1でした。
初めての商用デバイスは、2013年2月にバルセロナで開催された世界最大のモバイル会議、Mobile World Congressにおいて発表されました。
ZTE OpenとAlcatel One Touchが作った端末は、TelefónicaとDeutsche Telekomから、ブラジル、コロンビア、ハンガリー、メキシコ、モンテネグロ、ポーランド、セルビア、スペイン、ベネズエラで販売されます。
またLGやHuaweiも端末の出荷を約束してくれました。

22.png
ZTE Open & Alcatel One Touch smartphones

この発表はMVCの前日のプレスカンファレンスで行われました。
250名程度の参加を想定していましたが、なんと700名を超えるプレス、メディア、アナリストが集まりました。

23.jpeg
Firefox OS press conference, MWC 2013, Barcelona(https://www.flickr.com/photos/mozillaeu/albums/72157632841373411/)

前代未聞という18名ものCEOが壇上に上がり、このプロジェクトへの賛同を表明してくれました。
これにはGSMAも驚いたと聞いています。

24.jpeg
CEOs on stage at press conference, MWC 2013, Barcelona(https://www.flickr.com/photos/mozillaeu/albums/72157632841373411/)

この年、Firefox OSは主役だったと言っていいと思います。
カンファレンスでは連日1面を飾り、Gogole Newsでは8万件の報道があり、Twitterではアカデミー賞と並んでトレンド入りしていました。

25.jpeg
MWC magazine, MWC 2013, Barcelona (https://www.flickr.com/photos/mozillaeu/albums/72157632841373411/)

カンファレンスではTelefónicaとDeutsche Telekomのブースに加えて、頭上には巨大な狐の尻尾と、たくさんのデモ機の並ぶ、クールなデザインのブースを設置しました。

26.jpeg
Firefox OS booth, MWC 2013, Barcelona (https://www.flickr.com/photos/mozillaeu/albums/72157632841373411/)

私はこのイベントでデモやインタビューのヘルプをしていましたが、人波が途絶えることがありませんでした。
キャリア、OEM、プレスのたくさんの人たちが、我々の活動に大きな期待を寄せていました。

27.jpeg
An Android mascot, trying to get in on the attention!

booth babes(プロのモデルを雇って商品をアピールすること)が有名なこのイベントにおいてFirefox OSブースが際立っていたのは、ブースを担当していた人のほとんどは部外者ではなく実際にプロジェクトにかかわっていたこと、さらにその多くがボランティアだったことです。
プロジェクトに情熱を注ぐ人たちがプロモーションのために自分の時間を無償で提供してくれたという現実は、カンファレンスの参加者にも驚きの出来事でした。

28.jpeg
Mobile World Congress, Barcelona, February 2013 (https://www.flickr.com/photos/mozillaeu/albums/72157632841373411/)

このようなボランティアによるコミュニティ活動は、デバイスが実際に発売された後も続きました。
スペイン、ポーランド、ベネズエラ、コロンビアなどで行われた発売イベントにも、Mozillaコミュニティの現地メンバーが参加してくれました。

2014年に制作された、発売までのストーリーを伝える素晴らしい動画をこちらに貼っておきます。

Firefox OS The Journey, the story of the v1 launch

Firefox OS 1.x

Firefox OSが市場に投入されました。
しかし我々は、1.0のローンチされる前から早々と次の課題について考えていました。

まずは、1.0のリリースに入らなかったMMSのようなスマートフォンの基本機能を追加することが主な仕事でした。
その後は、アプリ開発者のための開発ツールの拡充や、パートナーからの膨大な要求に焦点が移っていきました。

我々はあっという間に、キャリアやOEMを、お客様として扱うようになってしまいました。

彼らはAndroidデバイスのポートフォリオからコピペしたような、終わりのない要求リストを持って来ました。
彼らは、Firefox OSがAndroidと同じ機能を持つことを望んでいたのです。

私は2013年、サンディエゴにあるQualcommのオフィスの一室に閉じこもり、LGの勤勉な韓国人グループと一緒に、Firefox OSの全てのアプリが、同じハードウェアのAndroidアプリより早く起動するようにしていました。
守秘義務上の理由から、彼らはAndroidアプリの起動がどれくらいかかったのかは教えてくれませんでしたが、Firefox OSより早いか遅いかだけは教えてくれました。
我々は、より早く起動できるようになるまでひたすら作業を続けるしかありませんでした。
2013年10月、Firefox OS 1.1を搭載したLG Firewebは無事に発売されました。

31.jpeg
LG Fireweb with Firefox OS 1.1, October 2013

2013年から2014年にかけて、バージョン1.1・1.2・1.3・1.4がリリースされました。
明らかになったのは、Androidが5年先行している現状では、我々がAndroidの背中をいくら追いかけても決して追いつくことはできないということでした。
Firefox OSが市場で拡大し、シェアを奪い取るために必要だったものは、差別化です。

Differentiation

正攻法ではAndroidやiOSに対抗することができないというのが共通認識でした。
Androidの機能でGoogleに追いつくことはできませんし、デザインでAppleに勝つこともできません。
Mozillaはこれまでも自分より大きな相手と戦ってきましたが、しかし彼らのルールに従っているかぎりは勝つことができません。
自分の土俵で戦わなければなりません。

私の記憶では、Firefox OSをどう差別化するかについて、大まかにふたつの方針があったと思います。

The Web is the Platform

ひとつめは、競合他社に機能的に追いつくことを目指すのではなく、UIについて別のアプローチをとるべきだ、という一派です。
Webの強みを生かした、よりシンプルなUIを目指すべきだというのです。

我々が抱えていた大きな課題のひとつが、マスコミがFirefox OSを他社と比較する際に、アプリストアに存在するアプリの数を基準にすることでした。
Forefox OSは単一のアプリストアを持つことを想定しておらず、Webの全てがプラットフォームである、という思想でした。
しかしながら、パッケージ化することで中央アプリストアを運営するという開発初期の技術的決定のひとつが、ここにきて自分の首を絞めることになったのです。

我々はコンテンツの量を充実させてこの課題を解決するために、Webアプリケーションの一覧を管理するEverything.meというスタートアップと提携しました。
しかし最終的には、ひとつの中央サービスに依存することで、元々解決しようとしていた中央アプリストアの問題を拡大再生産することになってしまいました。

そこで我々は次に、地球上でもっとも大量のデジタルコンテンツが集まっている場所、すなわちWebコンテンツに再び焦点を当て、相互リンクというWebの性質と、ハイパーリンクを介してページからページへと移動する流れに最適化した、革新的なユーザインターフェースを作り出すことにしました。
オープンWebという強みを生かすことで、競合他社とは全く異なる製品を生み出すことができるにちがいありません。

Connecting the Next Billion

もうひとつの方針は規模です。
なにをするにしろ規模が重要であり、そして規模を拡大するためには新興市場をターゲットにするのが最も適切であるという判断です。
新興国こそ、モバイル業界最大の成長分野だからです。

我々は途上国で市場調査・ユーザ調査を行いました。
結果明らかになったのは、世界人口のかなり多くが価格的理由からスマートフォン市場に取り残されているということでした。
必要なものは、インドやバングラデシュの国民でも購入できる手頃な価格のスマートフォンでした。

新興市場を開拓することができれば、Firefox OSの規模を急速に拡大することができるはずです。
少なくとも市場シェアの円グラフにおいて、『その他』のカテゴリから抜け出すことができるでしょう。

The $25 Smartphone

2013年半ば、Li GongがFirefox OSの陣頭に立ちました。
彼はMozillaの中国および台湾事業の運営を担当していましたが、新たにSenior VP of Mobile Devicesという役割も担当することになりました。

32.jpeg
Li Gong, MWC 2014, Barcelona (https://www.cnet.com/news/firefox-os-in-flux-as-mozilla-loses-technology-chief-to-startup/)

彼は、手頃な価格のスマートフォンという思想を強く支持し、25ドルのスマートフォンというコンセプトを提唱しました。

開発チームは128MBのRAMしかないSpreadtrum社のチップセットという超ローエンドなデバイスでFirefoxOSを動作させることに成功しました。
これは、当時のAndroidの最低動作環境をはるかに下回るものでした。

2014年のMWCにおいては25ドルのスマートフォン、IntexやSpiceといったローエンド携帯電話メーカーとの提携を発表し、そして『次の10億人を繋ぐ』というメッセージを掲げました。
このメッセージはMWCにおいて、次に成長する方向性を悩んでいたモバイル業界に広く響き渡りました。

33.jpeg
Proof of concept $25 smartphone, MWC 2014, Barcelona (https://www.flickr.com/photos/mozillaeu/albums/72157641410142585)

手頃な価格のスマートフォンの登場により、Firefox OSはアジア(インド・バングラデシュ)、ラテンアメリカ(エルサルバドル・パナマ・ニカラグア・グアテマラ)、東欧(チェコ)にも進出を果たしました。

34.jpeg
Firefox OS bus, India

残念ながら、この使命はうまくいきませんでした。
まず、25ドルのスマートフォンは最終的に33ドルまで値上がりしてしまいました。
また、Firefox OSそのものは128MBのRAMでも動作しましたが、そのうえでスマホに期待されるであろうマルチタスク処理を行うことはできませんでした。
そして最大の問題が、Firefox OS市場に必要であるWhatsAppがなかったことです。
Web版のWhatsAppを作ってくれるよう説得することはできず、我々がWeb版のWhatsAppを作ることも許してもらえませんでした。
さらに、カメラをはじめとしたハードウェア的な品質の問題もあり、手頃な価格のスマートフォン計画はあまりうまくいきませんでした。

価格競争の問題点は、すぐにチキンレースへと突入し、最終的にスケールメリットを持つものが勝利してしまうということです。
我々の狙いにいちはやく気付いたGoogleは、新興市場をターゲットとした手頃な価格のスマートフォン、Android Oneを投入してきました。
Android Oneはそこまでうまくはいきませんでしたが、価格競争で勝ち目が無いことを我々に知らしめるには十分な役割を果たしました。

途上国の国民でも、可処分所得が少なくても、品質が悪くてもいいというわけではありません。
彼らが求めているのはiPhoneの劣悪なコピーではなく、iPhoneなのです。
iPhoneが手に入らないのならばフィーチャーフォンでいい。
フィーチャーフォンこそ手頃な価格で入手でき、そしてバッテリーの持ちもはるかにいいのです。

Firefox OS 2.0

25ドルのスマートフォンを作る作業のほとんどは、台北オフィスのエンジニアによって1.3tと呼ばれる特別なバージョンで開発されていました。
いっぽう、他のチームは早々に、バージョン2.0をどのようにすべきかについて考えていました。

2013年4月、UXチームはロンドンでサミットを開催し、Firefox OSのユーザ体験を今後どのようにしていくべきかについて議論しました。
Webのユニークな体験とはなにか、そしてその強みを生かしたユーザ経験を如何にして生み出すことができるか、我々はブレインストーミングを行いました。

35.jpeg
UX Summit, London, April 2013

特に注目されたのが、ハイパーリンクを辿ってWebの海を蛇行しながら進むことができるflowです。
Webは明確な境界線を持った単一のアプリではなく、いつのまにかひとつのWebページからまた別のWebページへとサーフィンする、コンテンツの中を流れていく体験なのです。

Haida

数週間後UXチームは、WebアプリとWebサイトの境界を曖昧にし、Webのように流れるユニークなユーザエクスペリエンスを実現するコンセプト(コードネームはHaida)の初期デザインを作り上げました。

このコンセプトには、OS全体にアクセスでき、様々なWebコンテンツにシームレスにアクセス可能なユニバーサルソフトウェアRocketbarと、逆にひとつのページを複数に分割し、直感的なスワイプのジェスチャーで操作できる機能sheetsが含まれていました。
さらに、中央アプリストアからダウンロード・インストールしなければ使えないような一枚岩のアプリではなく、ネットサーフィンしながら必要に応じてブックマーク・使用することができるWebアプリを中心としたコンテンツモデルを盛り込むことになりました。

2013年6月、デザイナーとエンジニアがパリに集まり、Haidaのプロトタイプを作成しました。
急進的なコンセプトの反映を迅速に行い、ユーザテストを行うためのものです。

36.jpeg
Haida Team Meetup, Paris, June 2013

以下の動画は、2013年10月にJosh Carpenterが作成した、Haidaのコンセプトデザインを伝えるものです。

この変更はあまりに大規模すぎたため、複数のフェーズに分けて段階的にリリースされました。
バージョン2.0ではビジュアルを一新し、ウィンドウ間の移動にエッジジェスチャーを導入しました。
バージョン2.1ではブラウザをシステムUIに統合し、ブラウザベースのユニークなユーザエクスペリエンス実現に着手しました。

41.png
Firefox OS 2.x

しかし、バージョン2.2では、この目標への焦点がぶれ始めました。
パートナー企業からは、Androidと同等な機能の実装、パフォーマンスの向上、右から左へ進む言語サポートの追加などが要求され始めました。

Haidaのビジョンを達成することはできず、開発者はバージョン3.0に向けて再び方向性を変更することを検討し始めました。

Firefox OS 3.0

最初期に発売されたデバイスの販売数はパートナー企業の予想を上回るものでしたが、その後の25ドルのスマートフォンは期待外れに終わりました。
当初の勢いを維持するために必要だった明確な差別化ポイントは未だに実装されておらず、販売台数は落ち込み始めていました。
先行きに黄信号が灯り始め、さらに製品の方向性についての意見の相違が、幾人かの主要幹部の退社にまでつながりました。

Li GongはMozillaを去り、自身のスタートアップであるAcadine Technologiesは中国政府の支援を受けた企業から1億ドルの資金調達に成功し、FirefoxOSのforkを作り始めました。
またLiは台北オフィスの社員を大勢引き連れて行ったため、Mozillaとの間に消せない禍根が残りました。
結局のところ資金提供はなされず、Acadine Technologiesも露と消えたため、この分裂は無益に終わりました。

さらにAndreas Galも、Chris JonesをはじめとしたB2Gチームの主要メンバーを引き抜いてSilk Labsに移籍しました。
製品責任者のChris Leeまでも離脱したため、Firefox OSチームのトップが空白の期間が生まれてしまいました。

ちょうどChris BeardがMozillaのCEOに着任したところだったので、新たなリーダーが見つかるまで、彼が一時的にFirefox OSチームの担当もすることになりました。
Chrisは素晴らしいCEOであり、Mozillaと長年関わってきたこともあってMozillaについては深い知識と感覚を持っていました。
しかしFirefox OSにかぎっては、積極的に関わる時間も能力もなかったのです。

3.0 Ideation Process

製品の方向性が固まらないまま、2014年12月にポートランドで開催された全社ミーティングにおいてv3 Ideation Processがキックオフされました。
これは、Firefox OSチームのメンバーと、さらに広いコミュニティから、Firefox OSの新しい方向性に関するアイデアを募るというものでした。

42.jpeg
v3 ideation process, Portland, December 2014

Firefox OSについてしっかりした考え方を持っていた人にとっては、これは一見素晴らしい機会に思えました。
しかし実際には、36ものグループが乱立し、それぞれが好き勝手なアイデアを出し合っているうちに、優れていたアイデアもノイズに紛れてしまいました。
アイデア出しのプロセスに制約がなく、評価のプロセスも不十分でした。
その結果、スマートウォッチから通貨の概念の再構築まで、提案が拡散してしまいました。

結局、明確な方向性を定めることはできず、3.0になるはずだったリリースは、いくつかの機能をまとめた2.5のリリースに格下げされました。

The Pivot

魅力のない2.5のリリースに加え、リーダーシップの欠如にも悩まされていた2015年、Firefox OSは急激に失速し始めていました。

ようやくAri JaaksiがConnected Devicesのリーダーとして採用されました。
Firefox OSチームはConnected Devicesチームと改称され、そしてオーランドで開催された全社ミーティングにおいてPivotが発表されました。

43.jpeg
Ari Jaaksi, Orlando All Hands, December 2015

Mozillaはパートナー企業を通したスマートフォンの製造・出荷をとりやめ、かわりにインターネット接続機器、IoT機器のユーザエクスペリエンスに注力します。
Firefox OSで培った技術を出発点とし、スマートテレビなどのデバイスに提供されますが、特にスマートフォンに注力するということはありません。

Ariの講演の最後には、モチベーションを高める動画が流されました。

誰も気付いていませんでした。
皆、このニュースの意味を理解しようと会話に夢中になっていました。

Ariの話の前提は、Firefox OSは、AndroidおよびiOSに対して敗北したというものでした。
Firefox OSは市場に出るのが遅すぎ、アプリストアも普及しておらず、スマートフォン戦争に乗り遅れたのです。
次の大きな流れである、モノのインターネットに移るときが来たのです。

というのも、我々が目指していたものは、Firefox OSをモバイルプラットフォームの第三の選択肢にすることではなく、オープンWebを競争力のあるアプリケーション開発プラットフォームに押し上げることだと考えていたからです。
プロジェクトが停滞していたことは事実です。
Haidaのアイデアは非常に優れていましたが、しかし我々に欠けていたのは目的でした。

私としては、Firefox OSのフォームファクタとしてはスマートフォンよりタブレットの方が適しているのではないかと前から考えていたため、この新しい方向性を受け入れることにしました。
またスマートテレビの需要も期待されていました。

51.png
Some of the Connected Devices products I proposed

Product Innovation Processが始まりました。
製品のアイデアを生み出すための、ボトムアップ式のプロセスですが、今回はより構造的なものとなっていました。
はい、間違いなくやりすぎました。
Connected Devicesは社内スタートアップのように運営されていました。
チーム全員がlean startupのトレーニングを受け、全員がIoTという新しい分野のプロフェッショナルとなり、新製品のアイデアをProduct Innovation Boardに提案しなければなりませんでした。

The Transition

オーランドでの発表は、Mozilla内部一般では速やかに「Firefox OSは死んだ」と受け取られました。
何年にもわたってFirefox OSに注がれたリソースのおかげで、Mozillaの他のチームにしわ寄せが行っていました。
フラッグシップであるFirefoxチーム、およびサポートチームは継続してリソース不足を訴えており、Firefoxの市場シェアが低下している責任の矛先をFirefox OSに向けてきました。

指摘の一部には正当なものもありましたが、すぐにそれは暴走を始め、Mozillaでうまくいっていないあらゆる理由がFirefox OSのせいであると仕立て上げられてしまいました。
MozillaはFirefox OSに全財産を賭け、そしてそれに失敗した、ということになったのです。
コードベースからB2Gの痕跡をすべて取り除き、リソースをFirefoxに振り分けるよう、Mozilla内部で大きな政治的圧力がかかり始めました。

Connected Devicesチームは縮小され、40名ほどが首を切られました。
ミーティングでは、新しい方向性について既存のB2Gコードベースがどの程度の価値があるのか、どの程度排除できるのかを検討しました。
B2GのコードはFirefoxの開発に悪影響を与えており、その維持にかかるコストを看過できないという理由です。
タブレットやスマートTVなど、一部のConnected DevicesプロジェクトはこれからもB2Gコードを使う予定でしたが、我々はB2Gアーキテクチャを大幅にスリム化する計画に合意しました。
新たなWeb標準を採用したmozAppsパッケージのランタイムを完全に削除し、Geckoに追加された中でもWeb標準になりそうにない30ほどのデバイスAPIを削除することになりました。

52.png
B2G OS Architecture Transition

B2G移行プロジェクトが始まり、Mozillaコミュニティもこのプロセスに参加しました。
これにより、誰かメンテナンスを続けてもいい人がいれば、スマートフォンに特化されていたコードをコミュニティの所有権に移すことができました。
コミュニティはこの挑戦に盛り上がりました。
皮肉なことに、B2G移行プロジェクトは、これまでになかったレベルの参加者を集めることになったのです。

mozAppsランタイムと、30のデバイスAPIのうち10個は速やかに削除されました。
しかし、MozillaコードベースからB2Gの痕跡を跡形もなく消し去るという政治的圧力は高まり続けました。
タブレットやスマートTVのプロジェクトは中止となりました。

Mozillaプロジェクトのモジュールオーナー制度は、Mozillaの会社の体制とは切り離されています。
最後の手段として、当時B2GモジュールのオーナーだったFabrice Desréは、MozillaプロジェクトからB2Gを削除することに異議を唱え、上位層までエスカレートされましたが、最終的には判断を覆すことはできませんでした。

技術的にはコミュニティが所有するB2G OSとしてforkされ命脈は保ちましたが、しかしインフラも止まり、Mozillaのスタッフもいない状態では、コードを維持することはできませんでした。
Firefox OSのピーク時にはMozillaのスタッフが300人フルタイムでプロジェクトに従事していましたが、コミュニティにはそこまで多くのリソースはありません。

B2Gは、事実上終焉を迎えました。

Conclusions

Measuring Success

成功の指標。

私は、Firefox OSが達成できた業績を誇りに思っています。
このプロジェクトは、当初の目標を遥かに超えたところまで辿り着きました。
技術的プロトタイプだけで終わらず、スマートフォンにスマートTVなど、30か国で20種類以上の商用デバイスの出荷に成功しました。
Webプラットフォームのために30の新しいAPIを作り出し、これまでで最も複雑なJavaScriptコードベースを構築するという驚くべき偉業を達成しました。
さらにゼロからモバイルOSを構築し、2年で市場に投入しました。
私の知るかぎり、これだけのことを成し遂げたチームは他にありません。

43.png
Just some of the 20 Firefox OS products that went to market

パートナー企業は教えてくれなかったし、我々も聞かなかったので、実際に個々のFirefox OSデバイスがどれくらい売れたのかはわかりません。
経験からの推測ですが、おそらく500万台程度ではないかと思います。
モバイル代替OSの中では最も多く、私がこれまでかかわったプロジェクトの中で最も成功したプロジェクトであることは間違いありません。
しかしそれでも、年間10億台が出荷されるこの業界においては、市場シェアの0.5%にすら届きません。

私個人にとっては、Firefox OSが第三のモバイルプラットフォームになることは、目的ではありませんでした。
Web技術の限界を広げ、Webをアプリケーション開発のためのプラットフォームにすることが目標でした。
我々は確かにそれに成功し、現在広がりつつあるProgressive Web Appsのトレンドに大きく寄与したと考えています。
私は今も、Webが最終的に勝利を収めると信じています。

しかし、開発チームはいつしか、AndroidとiOSに次ぐ第三のスマートフォンプラットフォームを目指すことだけが目標になっていました。
市場シェアが唯一の指標となりました。
B2Gチームは、わずか4人の開発者から短期間で100人以上まで成長しましたが、急成長したスタートアップが当初の目標を見失うことはよくあることです。

A Matter of Timing

タイミングの悪さ。

よく言われるのは、Firefox OSは市場に出るのが遅すぎたということです。
しかし、深圳の専門家などとの話を通じて、私はそれが真実だとは思えなくなりました。
たとえばもしFirefox OSプロジェクトが今始まったとしたら、問題の温床となっていた、ソフトウェアアップデートを直接配布できず電話会社を通さないといけなかった問題は、今ではもう何の障害でもなくなっています。
モバイルハードウェアのコモディティ化が進んだ結果、Firefox OSを動かすためのハードウェアを見つけることは、今では簡単なことです。
また、Googleへの依存を下げ、差別化を図りたいというOEMの意図もあります。
つまり、Firefox OSは5年遅かったのではなく、むしろ5年早かったのかもしれません。

Webに関わっている者たちは、自分たちのやっていることが最先端だと思い込んでいます。
実際は標準化には長い時間がかかるものです。
新しい機能は、標準化プロセスを経てクロスプラットフォームのソリューションに辿り着く前に、必ずネイティブコードに先に実装されます。

私は、Webは成熟したハードウェアプラットフォームにこそ適していると考えます。
そして、最終的にはデスクトップと同じように、Webでもモバイルが勝利を収めるでしょう。
Web指向のモバイルOSが成功を収める日は、すぐそこまで来ているのかもしれません。

The Right Decision?

オーランドでの発表から一年が経ち、Firefox OS終了に伴う様々な痛み(否定、怒り、転嫁、躁鬱、受容)を受け入れるのに十分な時間が過ぎました。

正直なところ、Firefox OSを完全に中止したことは間違った決断であったと今でも考えています。
このプロジェクトは、長期間リーダーシップが存在せず勢いを失っていたことは間違いありませんが、最終的にはビジネス的な理由でも技術的な理由でもなく、政治的な理由によって中止させられました。

モバイル市場は成熟化してコモディティ化し、それに伴いWeb技術も成熟してきました。
今からでもチャンスはあります。
むしろ今まで以上に良いタイミングであるかもしれません。
プロジェクトが止められた理由は理解できますが、それでもFirefox OSはその可能性を発揮する前に早々と終了してしまいました。
必要だったものは明確で断固とした方向性を伴ったプロジェクトの再起動でしたが、残念ながらそれを得ることはできませんでした。

とはいえ言うだけなら簡単だ、それを行うために必要となる高額な小切手にサインをしなければならないのは私ではないのだから、という批判もあるでしょう。
我々にはチャンスがあったが、それを自ら潰してしまった、と言ってくるかもしれません。
Mozillaは今、主力であるFirefoxに全力を注ぐべきだと。

私には、それは少々内向きにすぎると思います。
Webは今や多くの面でブラウザを超えた存在であり、未来とインターネットが直面している新しい挑戦に、目を向ける時が来ているのです。

Lessons Learned

残念ながら、現在の政情ではB2Gプロジェクトを再起動することは不可能でしょう。
しかし、もし可能であるならば、今度は違った方法でやろうと考えていることが幾つかあります。

Design

他のモバイルOSの機能を全て再現するのではなく、Webコンテンツに焦点を当てた、シンプルなブラウザベースのUIから始める。

Engineering

chromeとWebコンテンツを明確に分離し、Webに適していないことは無理にやらせない。
Webスタックのサーバ側でRESTとWebSocketを使ったデバイスAPIを作成する。
クライアント側で特権を持つJavaScript DOM APIを使用しない。
(WebをWebたらしめているものはJavaScriptではなく、URLである)
提出されたパッケージアプリを展示するアプリストアを作るのではなく、Webアプリへのリンクをコミュニティベースで作成する。

Product

最安値を追求したりはしない。
Webコンテンツ、ゲーム、エンターテイメントにフォーカスしたミッドレンジのタブレット、後にTVスティックを作る。
新興市場で大規模な取り込みを狙うのではなく、まずは先進国でニッチを開拓する。

Partnerships

製品ロードマップの方向性はMozillaがリードしていることを主張し、戦略に合わないときは機会を断ることも厭わない。
ソフトウェアのアップデートはエンドユーザに直接配布し、それができないチップセットのベンダーとは手を切る(これは当時は非常に難しかったが、今なら簡単にできる)。

Footnote

これは私の物語です。
とても長いですが、もし退屈な部分を読み飛ばさずにここまで来てくれたのであれば、私は感動します。

私がこれを書き起こした願いは、Firefox OSが『Mozillaの失敗したモバイルOS』という脚注以上のものとして記憶に残ることです。

Boot to Geckoプロジェクトには、素晴らしい能力を持った多くの人々が、愛情と努力を注ぎ込んできました。
これは私自身も信じられないほど誇りに思っていることであり、きっと他のみんなもそうです。
外部からの期待には応えられなかったかもしれませんが、私にとってみればFirefox OSは成功であり、私のキャリアの中で最大のハイライトであることは間違いありません。

実は、2008年にGoogleが最初のAndroidスマートフォンを出荷したとき私はGoogleにいたのですが、Firefox OSの存在はそれよりはるかに大きかったのです。

44.png
Some of the big brains behind Firefox OS (and me), Whistler, June 2015

私は今でもMozillaの使命を信じており、Mozillaの歴史にはもうすぐエキサイティングな章が追加されると感じていて、さらに皆さんに話したくてうずうずしている新しい技術もあります。
しかしそれらの話は、また別の日にしましょう。

ここでは、2014年に私と妻で作ったビデオで締めくくることにします。
ボブ・ディランの残念なパロディと、Firefox OSの輝かしい旅路を収めたフォトグラフです。
ティム・バーナーズ=リー卿がランチを食べながらFirefox OSを試しているところを見つけられるかな?

コメント欄

「執筆に感謝!歴史に残すべき!」
「ハードウェアの性能が上がり続け、価格は下がり続けている今、Firefox OSにはふたたび存在するチャンスがある。そう、それはWebAssemblyだ。」
「Firefox Phoneを買った。時代の先端を行ってたけど、ハードウェア性能が十分ではなかった。みんな専用アプリを使っていて、本当のモバイルアプリケーションではなかったけど、大きなインパクトを受けた。」
「Alcatel One Touch Fire持ってる。1.3には着信音を任意に変更するという基本機能が無かったから2.2にアップグレードしたけどバグが多くてつらかった。」
「2012-2015年までMozillaで働いてたけど社内政治のことは知らんかった。情報ありがとう。」
「ネイティブコードより早くするのは難しいのでは。モダンで便利なプログラミング環境を提供して開発者の敷居を下げた方がよさそう。」
「オープンなWebを主張しながら誰も使わない独自のAPIを盛り盛りにしてたのはちょっと疑惑の目を向けてた。」
「『このようなことを成し遂げたチームは他にはありません』Palmも超高速でWebOSを立ち上げたよ。フロントエンドとバックエンドの分離も少しだけ導入したのだ。」

感想

かくしてFirefox OSは夢と散りました。

しかし、全てが無駄になり、無に消え去ったわけではありません。
結果としてB2Gは幾つもの派生プロジェクトを生み出しました。

中でももっとも成功したものがKaiOSです。
日本では全く知られていませんが、Nokia 8110 4G通称バナナフォンを生み出し、そしてJioPhoneは1000円という価格で5000万台を売りインドのトップシェアを奪いました
本文で否定した低価格途上国路線で成功したというのはなんかあれですが。

それにしても、Mozillaが先鞭をつけて可能性を広げたはずのこれらネイティブWeb技術をGoogleが悪用しそれに対してMozillaが抵抗しているという現状は、なんとも諸行無常の感がありますね。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
80
Help us understand the problem. What are the problem?