見出し画像

アップルに学ぶイノベーションを生み出すソフトウェアの作り方

スティーブ・ジョブズのリーダーシップの元数々のイノベーションを起こしてきたアップル。アップルといえば美しくデザインされたハードウェアに目が行きがちであるが、そのエレガントなユーザー体験を支えるのはソフトウェアであり、それこそがアップルの競争力の源泉である。そのソフトウェア開発がどのように行われて来たのか、アップルの秘密主義ゆえにこれまでなかなか外部の人間が知ることはできなかったのだが、ジョブズの下で直接iPhoneのソフトウェア開発をリードした人物のインタビューがa16zのポッドキャスト&YouTube(コンテンツは同じ)にあったのでここに紹介しながら解説してみたい。

a16z Podcast: Inside Apple Software Design
YouTube: Inside the Apple Facgtory: Software Design in the Age of Steve Jobs

1.シンプルであること、それにフォーカスすること

2001年に始まったウェブブラウザ開発の話(11:00)。当時アップルはブラウザを持っていなかったのだが、ブラウザはアップルのUXにとって重要なものになるとの考えからジョブズは開発を指示する。当時開発に充てられたエンジニアは二人のみ。限られたリソースの中でいかに競争力のあるブラウザを作るか?手探りで既にあったオープンソースのコードを使って開発を始めるのだが、そこでジョブズが指示したのはたった一つのことであった。

「とにかく速いこと」

ブラウザと一口に言っても、様々な機能を実装しなければならないし、考えなければいけないことは山のようにあるが、このシンプルな指示が与えられたことで全てのコードレビューはスピードを基準に行われた。スピードが速くなれば実装。スピードが遅くなるのであればやり直し。

前回のブログでも書いたAirbnbのプリンシプルの一つでもあるが、一番重要なことにフォーカスすることの大切さである。

初代iPhoneのキーボード開発の話も非常に面白い。(33:00)

当時のスマホといえばBlackberry、Palmなどハードのキーボードがデバイスの表面積の40%を占めていたのだが、ジョブズはこれを否定した。キーボードは使うときだけあればよい。なのでハードウェアのキーボードは搭載しないで、その分画面を大きくするべきと。

これを受けた開発チームはソフトキーボードの開発に取り掛かるが、これが2005年秋になってもまったく目処が立たない(ジョブズがiPhoneを発表したのは2007年1月)。キーボードがプロダクトの出荷可否に関わる重要な機能であることを鑑み、ソフトウェア開発のトップがある日チーム全員を集めてこう言った。

「すべての開発一旦取り止め。今日からあなたたちは全員キーボードエンジニアです。」

この日から20人あまりのチーム全員がキーボードの開発に取り掛かることになる。本当に重要なことに全てのリソースを集中させたわけだ。

2.トップダウン+ボトムアップの開発体制

ジョブズの強力なリーダーシップはよく知られるところであり、プロダクトのかなり細かいところまで彼自身が口出しするエピソードも語られることがあるが、アップルの開発体制のユニークなところはこのトップダウンによるリーダーシップとチームのボトムアップの貢献の組み合わせであるという。(15:30)

ジョブズは「とにかく速いこと」「ハードウェアキーボードを取り払うこと」といったビジョンを示し、それをクリアにチームに伝える。ではそれをどう実現するのかというのはチームに委ねられているのである。

私自身がソニーにいた時もそうであったが、エンジニアというのは自身のクリエイティビティを存分に発揮できる環境を与えられてこそいいものを作る。だがそれは野放しにすればいいということとは違う。トップからクリアなビジョンが示されることでどこに向かうのかという方向が定まり、それに向けてチームがそれぞれのクリエイティビティを発揮しながら一丸となって進むのである。

先のキーボードの話、全員がキーボードエンジニアとなってからチームメンバーはそれぞれのやり方で問題解決にあたる。こういうやり方で、という指示はない。それぞれが自分の考えたやり方でプロトタイプを作り、それをチーム内でデモをし合いながら議論して、最終的に一番使いやすかったものが採用される。インタビューの中では「friendly competition」という言い方をしているが、まさにチームがお互いに切磋琢磨しながら一つの目標に向かってプロダクトを作り上げていく体制は、日本の大企業のソフトウェア開発でよくありがちな仕様書だけ作ってあとは丸投げというやり方とは全く対極にあると言っていいだろう。

3.チームをいたずらに大きくしないこと

ブラウザの開発に2人、iPhoneの開発に20人(うちソフトウェアエンジニアは6–8人、それにデザイナー、マネージャーを入れたトータル)という体制はアップルのような大きな会社では恐ろしく小さいチームだ。iPhoneほどのプロダクトであればもっとリソースを投入すべきと考えがちだが、チームを小さくしておくことには理由があるという。

初代iPhoneがデビューした時、当時よく言われたのがなぜコピー&ペーストの機能がないのかということだった。結局この機能が実装されるのはその2世代後のアップデートを待つことになる。20人といわず、もっと人数を投入していれば最初から実装できたのではないかと思うだろう。だが開発チームは最初からコピー&ペーストの機能は入れないと決めて全く手をつけなかったそうだ。(49:10)

インタビューでは「Setting the constrains and keeping them」と言っているが、小さいチームという制約があればこそフォーカスすべきプライオリティが明らかになり、それに集中できるということである。初代iPhoneではテキスト入力の際に拡大鏡が出てきてカーソルを合わせるという機能までは実装されていたので、そこからコピペの機能まで拡張するのは簡単にも思えるのだが、それさえもしなかった。とにかく最初のフォーカスはソフトキーボードでのインプット。次の世代ではフォーカスはサードパーティー向けのAPIだったので、結局コピペの機能はその後、都合1年以上遅れることとなったのである。

小さいチームでやることのもう一つの重要なポイントはコミュニケーション。全員ミーティングをやると言っても20人なら一部屋に収まる。お互いにやっていることを全員で共有できるのでスピード感を持って開発に当たることができるが、これがチームが大きくなってしまうとそうはいかなくなる。あえてチームを小さいままに留め、重要なことだけにフォーカスしてやるというのはスタートアップのやり方だが、大きくなったアップルでもこれを実践していたということだ。

4.リベラルアーツの重要性

ジョブズが大学でカリグラフィーの授業にインスパイアされた話は有名だが、ソフトウェアを開発するにあたってこうしたリベラルアーツの素養が重要であるという話をしている。(1:17:50)

ソフトウェアの開発に必要なのはコンピューターサイエンスの知識だけではない。プロダクトの開発にはもちろんテクニカルな知識も必要ではあるが、本当にユーザーの心を捉える、また喜んでもらえるプロダクトを作るには社会的なことや人間の行動・心理などリベラルアーツの世界の素養が必要とされるのである。プロダクトに必要な機能をデザイン・定義したり、あるいはどの機能を実装するのか、割り切るのかといった判断はテクニカルなものではなく、本当にユーザーのことを考えてされてものでなければならない。そこがジョブズが他のテクノロジー企業のトップと違ったところでもあり、またソフトウェア開発チームのリーダーにもそれが求められていたのである。

おまけ:アップルの徹底した秘密主義に関する逸話

キーボードの問題を解決するにあたってAuto-correctの機能が実装されたわけだが、この機能には辞書が必要になる。ジョブズがiPhoneを発表した時、チームはiPhoneの名前をこのステージで初めて聞くことになり、翌日に慌ててiPhoneの単語を辞書に追加したそうだ。

こちらがそのステージのビデオ。3つの革命的な商品を発表すると言ってiPhoneを紹介するくだりは伝説的と言ってもいいプレゼンである。


この記事が気に入ったらサポートをしてみませんか?