驚きと喜びをもたらすアプリケーションを開発することは、明確に話したり定量化するのが難しい靄の中のゴールのように思われる。しかし、InfoQに投稿された最新のプレゼンテーションの中で、DeliciousライブラリやTap Tap Revenge、Obama氏の2008年のiPhoneアプリケーションなどに取り組んだソフトウェア開発者であるMike Lee氏は、よりよいアプリケーションを構築するためのアルゴリズムを提案した。
アプリケーションが素晴らしいという仮定ではなく、アプリケーションは最悪だという仮定からLee氏はスタートする。このスタート地点から、エンジニアはなぜ完璧ではないのかという理由を特定し、最悪具合を減らすための計画を立てる。Lee氏は一連のケーススタディを示し、よいインターフェースと悪いインターフェースの違いを調べて、アプリケーションに出入りすることを難しくしている腹立たしい要素を特定している。腹立たしい機能としては次のようなものがある。
- 単純にロゴを表示するスプラッシュ画面
- 明白なメニュー要素をユーザに示すチュートリアルのようなポップアップ
- 知らないモードを有効化する際の中間画面
ユーザはアプリケーションの中に直接入りたいのであり、必要な時にヘルプやチュートリアルに移動するのだとLee氏は強調した。
バグは日常よくあることであり、小さなミスが破滅的な結果につながることもある。Leeは、ここで2つのケーススタディを示し、あなた以外の皆があなたのカードを見ることができるインディアンポーカーにたとえた。
他の参加者の失敗があなたに明白なように、あなたの失敗は、他の参加者に明白なのだ。したがって、あなたの仕事内容に関して、少なくとも一人に見てもらうべきだ。あなたがどんなに優秀で経験を積んでいようが、失敗はするものなのだ。
バグを修正する段になった時に、Lee氏は次のように語っている。
今日、出荷して、明日に修正を行おうというのは、ひどく悪い考えだ。なぜなら、あなたのアプリケーションを誰かに試してもらう機会はたった一度しかないからだ。もっとも明白な解決策は、しばしば間違っており、通常は不十分なのだ。
ユーザをいらいらさせるその他の要素としては、ユーザ体験の中で頻繁に登場する実装の詳細部分だ。ソフトウェアエンジニアの仕事は、これらの実装の詳細を隠すことである。Lee氏が取り上げたその他の分野としては、プロジェクトの完了時期を決めること、ユーザからのフィードバックを扱うこと、マーケットの分割をさけて、すべての人むけに設計する方法などだ。
腹立たしい要素がアプリケーションから取り除かれると、次にアプルケーションを改善して、際立たせる。こびりつくような印象をあたえる。チャンスは一回しかないのだから、バージョン3.0を出荷する。
最終的にLee氏が強調しているのはソフトウェアの品質なのである。アプリケーション開発者は安く、コストの低い製品をつくることではなく、仕事の品質で競争する必要があるのだ。そうでなければ、あなたは敗れることになるだろう。この活力があり、人気のあるプレゼンテーションを見てみよう。このプレゼンテーションは、元々QCon London 2011 Conferenceで行われたものである。