Appleは、新製品に関する情報を必要最少限しか公開しないことで有名だが、それはハードウェアが完全な形になるまでそこで動くソフトウェアを作らないという意味ではない。また、ハードウェアやソフトウェアが孤立して別々に作られているわけでもない。ではどうやって、物理的デバイスの情報や触れる機会が限られる中で、製品アイデアを考えたりプロトタイピングを行うのだろうか?大まかな流れはこんな感じだ。
原則として、Appleは初期段階のプロトタイピングについて、最少限の時間とリソースで実行すべきであり、物理的あるいはソフトウェアのプロトタイプが極めて限られた環境でも可能であると考えている。そのアプローチでは、デバイスやアプリのできるだけ多くの側面を模倣することによって、プロジェクトに実際のリソースを割当てる前に、どうすれば最良のものを作れるかを学びとる。
例えば、まだ存在すらしていないApple Watchのためにアプリを作るなら、まず一連の静止画と、Keynote等のアプリで基本的アニメーションを使って作った仮の対話システムからスタートし、プログラミングはまだ一切関わらない。次に、ターゲットとなるハードウェアのラフなモデルと組み合わる。存在しないウォッチの場合、それはiPhone上でシミュレートされた時計サイズの四角形かもしれない。
この初期段階で鍵となるのは、たとえアプリの構造やプログラミング、およびそれが動くハードウェアの大部分が偽物であっても、それを使った体験はできる限りリアルにすることだ ― そのために、デバイスが使われるであろう環境でそれを使い、実際にそれを使うことになる人たちの助けを借りる。現実世界の環境にできるだけ近づけることで、製品デザインに影響を与えるハードウェアとソフトウェアに必要な変更について、一切の物理的プロトタイプも1行のコードも作ることなく、学習することができる。
ここでプロセスに入ってくるのが再帰性だ。今行っていることは、既にソフトウェアとハードウェア両方のデザインに影響を与えているが、いずれも実際にはまだ存在していない。この方法でアプローチすることによってプロセスの費用は抑えられ、さらに重要なことに、柔軟性が著しく増すためにプロセスのどの段階でも、打ち切ったり劇的な変更を加えたりすることが容易になる。念入りにかつ専門的に模倣された対話システムを使うことによって、本物のプログラミングや制作よりも敏速に動くことができる。
社内でも、社外のサードパーティーデベロッパーにとっても、新製品が発売される時点で、Appleが高品質なソフトウェア体験を準備万端整えておくことは決定的に重要であるが、こうしたプラットフォームのために開発している人たち全員に、最終製品を使うぜいたくが許されているわけではない。
サイクルは3つの要素からなり、一巡しては新たに繰り返される。まず偽のアプリまたは製品を作り、それを本物のユーザーでテストしてフィードバックを集め、そのフィードバックを次のバージョンに反映させる。しかし決め手となるのは、大がかりなコーディングや機能的ハードウェアやネットワーク機器の製作は、プロセスを進める上で実際に必要になるまで行わないことだ。ハードウェアはソフトウェアによるシミュレーションが可能であり、手動プロセスを隠して自動化されたふりをするなどの創造的回避策によって、正式なプログラミングレイヤーの開発を置き換えることができる。
Appleの強味であり、ライバルと一線を画しているのは、ソフトウェアとハードウェアの体験を密に組み合わせる能力だ。特に印象的なのが、目かくし状態を含むプロセスの中でどうそれを実現しているかであり、それはiOS、Mac、そして今やwatchOSを含めたプラットフォームで動作し、それを補完するアプリやガジェットからなる成長するエコシステムを支えるデベロッパーたちにとって、特に重要な意味を持つだろう。
[原文へ]
(翻訳:Nob Takahashi / facebook)