なぜエンジニアは醜い製品を作るのか?エンジニアリングやソフトウェア開発プロセスのどんな特質が、実際にユーザーが使うのが不可能なユーザーインターフェースを生むのか。
短い回答:エンジニアリングの仕事でいちばん面白いのは、ソリューション分野の可能性(コンピューターにさせられるクールなこと全部)に熱中することだ。エンジニアはパワーや柔軟性を制限する選択(デザイン)を好まない。エンジニアは不必要な複雑性を排除することより潜在的機能を追加することを尊重する。エンジニアはデザインの問題をエンジニアリングで乗り切ろうとする。
新しい製品を考えるとき、このソフトウェアは何をすべきかを理解することから始める。言い換えると、問題に対するソリューションから始め、問題そのものが正しく構成されていることを前提とするが、往々にしてそうではない。
そこに内在するのがテクノロジーには何ができるかという理解だ。これはエンジニアが夢中になる部分であり、新奇な技術的ソリューションに関しては特にそうだ。このテクノロジーに何をさせられるだろうか? 実際それができるのか?特に、そのテクノロジーが中途半端に理解されていたり、現在開発中であったりすると、エンジニアは終りなき可能性の探究に魅了される。
最終製品が十分解明されたテクノロジーを使うかどうかに関わらず、アプリを作る際には必ず様々な課題が持ち上がり、それを探究する様々な道は近道であることもあり袋小路かもしれない。ソフトウェアを作ることは、実は非常に難しい。
エンジニアにとって、これは楽しい部分だ。エンジニアは誰でも更地の開発が大好きだ。それは、トレードオフや制約や乱雑な既存コードを気にすることなく地形を探査できるからだ。そのプロセスは一種の冒険であり、可能性と潜在力のテクノロジー空間を探索できる。これは実に素晴らしいことであり、エンジニアリングを面白くする大きな部分を占めている。
人々のために選択することは彼らを侮辱しているのではなく、彼らの生活からゴミを取り除いているのだ。
小さなアイデアをいくつも作ることから始め、新たな方法でそれを集めて次々と強力なコンセプトを開発していく。このためにエンジニアは、様々な機能のツマミやボタンやしかけを作り、それが〈できる〉ことを容易に探究できるようにする ― 〈すべき〉ことではなく。たった今あるクールな機能だけでなく、できる能力のすべてを仲間うちに見せることで、社会的な報いを受けられる。
可能性のエクスタシーは、エレガントな製品を作ることと直接相反する。製品とは基本的に、取捨選択して何かを明瞭に見せることであり、それは非常に複雑なことだからだ。これは木を見て森を見ずどころではない。両者の理想と大志が直接相反している。
「ちゃんと動く」何かと、部品の詰まった箱を渡されることの違いは極端であり、自らの道具を与えられたエンジニアは、常に部品の側に間違える。概してエンジニアはソフトウェアを柔軟性の尺度で見て、消費者にあらゆる可能なパワーを与えようとする。そのパワーはユーザーに多くのプレッシャーを与える。人々のために選択することは彼らを侮辱しているのではなく、彼らの生活からゴミを取り除いているのだ。
使い勝手のよい製品を作るために大切なのは、アイデアを集め、それを試し、いじり回して何がうまくいくかを見つけることだ。これはエンジニアを興奮させる部分だ。しかし第2の部分は、様々な意味で、もっと難しい。放置して、選択をして、(ユーザー視点で)必要のない興味のない機能を削ることだ。エンジニアから出てくる機能の多くは絞り込まれておらず、だから乱雑でややこしくて明確な目的がない。
避けられない問題、それは製品で重要なのはテクノロジーではないということだ。製品とは現実の人々が人生をより良く、より面白く生活していくのを助けるためにある。テクノロジーは人々をそこへ連れて行くために必要だが、製品を作るためには十分ではない。テクノロジーは単なる配管であり、物事を可能にする枠組みにすぎない ― 人々が気にかけるようなものではない。
[原文へ]
(翻訳:Nob Takahashi / facebook)