前から書こうと思っていた、ALPを支える技術の感想です。二ヶ月くらい遅れですが(^^;

まず本題の前にこのシリーズの感想から。 なかなか面白かった。 主義主張には同意しかねる部分は多いけれど(特にTizenやWindows Mobileが駄目だったからただリリースしても駄目だった、という結論)、結局どちらが正しいかを知る方法は無いので、多様な意見という事なのでしょう。

このシリーズで面白いな、と思ったのは、第三期では内部の人が意外と意義とか面白さを持ってやっていたように見える所。 これは結構意外でした。 もっと「俺は全然駄目だと思ってたけど仕方なかったんだ」みたいな内容になるのかと思っていたので、中は中でいろいろあったんだろうなぁ、と。

外から見ると一期も二期も三期もなくずっとぐずぐずやってて何も出ない、という印象だったのだけど、結構違いはあるんですね。 実際たけしさんは5年くらいやってたんでしょうから、いろいろあったんでしょうな。

自分はこの会社がALPを始める前に辞めているのでたまにプレスを冷やかしで読む程度の知識しかありません。 ただALPを発表した頃の携帯業界の状況は、自分がやめた頃からまだそんなに時間が経ってなかった事もあって、だいたい分かっていたと思います。 なので第一期と、その延長としての第二期の話は目に浮かぶよう、という印象。 逆に第三期は私が知っている日本の携帯業界とは大分違いそうですね。 まぁiPhoneとAndroidが出た後なんだから全く別物なのは当然でしょうが。

このALPを支える技術は、なかなか貴重な話にも思う。 この話を読むと、何回やり直してもこりゃ駄目だな、と言う思いが強い。

ガラケーの頃の隆盛からスマホの時代になった時に、日本の携帯業界が全然駄目だったのはなんでなのか、 という話はちょこちょこ見かけるけれど、 この文書で語られている側面は全然見かけない。 だが、これこそが割と本質というか、致命的だった所なんじゃないかなぁ。

もうちょっとちゃんとした研究を内部の人がやって、後世に残した方が良いと思うのだが。 少なくともwebOSの記事くらいのは誰かがオフィシャルに書いた方が良い気がする。

本当はこの問題がどういう物なのか、そして業界をどう直すべきだったのか、 みたいな話は国の産業とか競争力とかを真面目に考えるならとても重要な話に思う。 ただ我らは国がどうこう、という事にはそれほど関心は無いので、そういうのは他の人に任せてもう少し自分たちの目線で考えてみたい。

何回やり直しても勝てる気が全くしない原因は何か

2006年の時点で次の世代の携帯プラットフォームが必要なのは誰の目にも明らかだった。 そして3年くらいうは猶予もあり、金も十分にあった。 この条件で勝てないのなら、何やっても勝てないだろう。 だが、どうも勝てそうも無い。

今回は負けって事はもう明らかで過去の事実なので良いけれど、 次同じような立場になった時に同じ事を繰り返さない為に、 何が良くなかったのか、というのは考えておきたい。

たぶん勝つ方法は3つくらいあったと思う。 iPhoneを作る事と、Androidを作る事と、webOSを作る事。

そして業界的にはiPhoneを作りたかったのだと思うが、 自分の目にはあれは再現出来る何かでは全く無い、奇跡の組み合わせみたいなもんだと思っている。 実際あれ以降、Appleを含めてあれだけの奇跡を起こせた人は世界中に一社も無い。

Androidを作るというのは可能だったかもしれないが、 自分には当時の日本からああいう物を作る軌跡は見えない。 web側から来た人にはあまりピンと来ないかもしれないが、 Androidのオープンさは当時の組み込み業界からすると狂ってるレベルだった。 そしてそれこそが開発者の熱を生んだのだと思っている。 あれはやっぱり、webの側から来ないと作れなかった。

ALPが本来なれたかもしれない物といえば、やっぱりwebOSだろう、と自分は思ってしまう。 あれを作れていれば、あとは運を天に任せて勝負、と考えられたと思うのだ。 あれでは結局駄目だった、という人も居るだろうが、自分はあれが作れていたなら、 何度か歴史を巻き戻せば何回かは勝つ事もあっただろう、とは思う。 それはALPとは決定的に違う物だ。

webOSのドキュメンタリーと言えば、下の記事だろう。 Pre to postmortem: the inside story of the death of Palm and webOS

これを見ると、MercerのPrimaまではALPと大差無い方向だった事が分かる。 向こうはJavaベースだというのが違いだが、それは別により優れていた、という訳でも無かろう。 むしろ記事の様子を見る限り、駄目だった理由の一角を担っていそうだ。

やはりトップが何かビジョンを持って決めて、それが時代と相まってうまく行く、 という事は普通は無いんじゃないか。 だって何が必要かなんて、前もっては良く分からないよ。 MMUが必要だったのは分かってるし、アプリがダウンローダブルである必要があるのも分かってたし、 メーカーとキャリア以外の人もある程度の人はアプリを作れる必要がある事は分かってたけど(といってもキャリアの認めていない一般の人が作れるなんて事は全く考えてなかったが)。せいぜいその程度だ。

そんな中で最初にトップの決める物なんて、だいたいろくでも無くて、 みんな似たような駄目な所に陥るんじゃないか。

iPhoneは違ったし、Androidもまた別の形で違ったけれど、 iPhoneは例外と思うしAndroidにはなれない。 やはり、この陥る事は前提としてどうにかする、というのが当時の日本の携帯業界としての、現実的な方策なんじゃないかなぁ。

webOSが違ったのは、この文書を見る限り、チームや会社の駄目な方向性に逆らって、 SimonとGrignonがWebKitでUI作れば良くね?と言って勝手に始める所だと思う。 これがあるか無いかが結局は全てなんじゃないか。

結局上の人は何が必要な事かは良く分からない。 現場で何が駄目かをいろいろ見た人が、 本当に必要な物は何かを「あとから」気づく。 そういう物だと思う。

だから会社としてまず駄目な方向に進むのは仕方なくて、 そこで積んだ洞察からどう反逆者が反旗を翻すか、 というのがこの手の新しいプラットフォームを作るのに必要なんじゃないか。

そして、確かに当時の自分たちの会社には、 そういうのを始めそうな人も、始まりそうな空気も全く無かった。 今もきっと無いんじゃないか。 そしてそれこそが、本当はシニアのデベロッパという物がやるべき事なんじゃないかなぁ、 とシニアになった自分は思う。 自分になら出来る、とは言わないが。

Greg Simonが組織に逆らって作り始める事、そして2008年のリリース前のまさにそのタイミングでbake-offsとかやる度量が組織の側にも必要なんんじゃないか。 この2つは当時のALPの会社には全く無かった物だと思う。 これが変えるべき所なんじゃないかなぁ。

たぶんALPもGreg Simonが居たらwebOS作って、トップを説得する事は出来た気がする。 トップは分からず屋という感じでも無かったし、そこまで遠くも無かった。 むしろトップはそういうのを待っていた気はする。 だが、Greg Simonだったらたぶんとっとと会社を出てもっとマシな所に行ってしまっていた気がする。 そういう人たちを惹き付ける場では無かったよなぁ。 そここそが致命的な問題だったのかもしれない。 やはり我らシニアのプログラマは、Greg Simonでありたいものだ。

ライブラリとか開発プロセスとかでチームがちょっと生産的になりました、 みたいな話より、この辺の話の方が重要だと自分は思う。 皆もどう考えてるのか教えてくれよ。

余った金の使い方

そもそもあの会社は半分受託の会社だったので、 新しいプラットフォームを作る、という経験は無かった。 だから新しい物を完成させる為のやり方には多くの問題があったと思う。
さきの文書でも「受託開発メインでやってきた会社しても、そこを尖らせた UIを作る気概はあまりありませんでした。」と同じ趣旨の事を言っている一文がある。

何を作るべきかを考えるべき時に、とりあえず他の環境と揃えようとしたり、 とりあえずDoCoMoに決めてもらおうとしたり、 とりあえずイスラエルのベンチャーの決めた物を作ろうとしたり、 と、主体的な判断を自分から捨てているのは象徴的に思う。

結構金は余ってて、受託とは関係ない事はいろいろやってたのだけど、 それらが全くALPにはつながっていなかったと思う。 余裕や金や人が無いのでは無くて、うまく使う方法が良く分かってなかった気がする。 ただ、どううまく使えば良いのだろう?

遊ばせておいた人選には問題があった気がする。 遊んでいたのは総じて高齢のエンジニアが多かったが、 それは全くwebの時代もオープンソースの時代も分かってない人ばかりだった。 あれではAndroidもwebOSも生まれようがない。 iPhoneは生まれうるかもしれないが。

ただ金と暇だけ与えて、なんでもいいから自由にやれ、というだけでは、 何の役にも立たない、という気はする。 だが、ずっと何を作るのかが外からやってきて、 それを交渉して適度な所に持っていく、という事を繰り返すだけでは、 新しい物を作ろう、という時には何の経験も無い状態でやる必要がある、 という、今回のアンチパターンの再来となる。

もうちょっと実案件と自由にやらせる事のはざま、みたいなのが必要なんじゃないかね。 変な肩書もたせた高齢の現場には全然居ない特権エンジニア様を遊ばせるのでは無くて、 現場である程度活躍して、暇を与えて、と交互にやるのが良いのでは無いか。 ただそれだと目先のツールとかライブラリ作って終わりかなぁ。 それでも無駄に浪費するよりは良い気がするが。

タイミング的な問題もある。2005年あたりにいくら何をやらせても、必要な物は出来なかった。 2008年にやらないと駄目だ。 ただその為の準備というか経験値貯めをその前にやっておく必要はありそうなので、 2007年くらいに何かをやらないと駄目だったのだろうなぁ。

2005年くらいは金も人も余ってたのだよね。だからALPとか始めたのだろうが。 理想的にはそこからiPhone作り始めて2007年頃に完成させる事だが、まぁそれは無理だろう。

どうするのがいいんだろうねぇ。 Greg Simonは育つ物でも無い気がするので、 そういう人をひきつけて留めるのが大切な気もする。 金と人が余った時に、そういう人を惹き付ける環境にする、それは一つやるべき事だったのかもしれない。

自分の話に着地させると、Novaが駄目だ、となった時にwebOSを二週間で作れるシニアなエンジニアになりたい。