【40】パフォーマンスがまず大事

クレイグ・ラッセル

 広々として居心地がよく、製造コストが安くて 98% リサイクル可能で、燃費もいい車があったとします。欲しいですか? そりゃあ、誰でも欲しいでしょう。しかし、1 つだけ問題があります。トップスピードが時速 1Okm なのです。それでもこの車を買う気になりますか? この例からも、パフォーマンスが他の基準と同じくらい重要なことがわかるだろうと思います。

 しかし、多くのデザイナーは、パフォーマンスの優先順位をきわめて後ろの方に置きます。たぶん、コンピューターは人間と比べれば非常に速く計算できるので、システムのスピードが許容範囲以下になることなどないだろうと思うのでしょう。仮に今のシステムがそれほど速くなくても、ムーアの法則によって問題は解消するというのでしょうか。しかし、ハードウェアのスピードは、システムのすべてではありません。

 パフォーマンスは、システムがユーザーの入力に応答するためにかかる時間だと単純に考えられていることがあります。しかし、システム設計者は、アナリストや設計を実装するプログラマーのパフォーマンス、ユーザーとのインタラクションのパフォーマンス、インタラクションとは関係のないコンポーネントのパフォーマンスを含め、パフォーマンスのさまざまな側面を考えなければなりません。

 システムを構築する人々のパフォーマンスは、生産性と呼ばれます。これは、プロジェクトのコストと日程に直接影響を与えるので、非常に重要な要素です。プロジェクトの日程を遅らせ、予算を超過させるチームには、問題がたくさんあります。ツールやビルド済みのコンポーネントを使えば、システムのビルドの速度を大幅に上げ、すぐに効果をあげることができます。

 ユーザーとのインタラクションのパフォーマンスは、ユーザーにとってシステムが許せるものになるかどうかを決める鍵です。システム設計のさまざまな要素がこのパフォーマンスに影響を与えます。その中でももっともわかりやすいのは応答時間ですが、それだけではありません。インターフェイスのわかりやすさ、目的を達するために必要な操作の回数などの要素も、このパフォーマンスに直接影響を与えます。

 優れたシステム仕様は、応答時間そのものだけでなく、作業時間も規定します。作業時間とは、特定の仕事を終わらせるまでに必要な時間のことで、人がシステムの操作のために使っている時間を含みます。詳しく言うと、システムの応答時間に加えて、オペレーターが考える時間、オペレーターがデータを入力するためにかかる時間といったシステムの管理下にない時間が含まれます。しかし、これらの時間を含めて考えれば、マン・マシン・インターフェイスをきちんとデザインしようという発想が生まれます。情報がどのように表現されるか、処理を終わらせるために何回の操作が必要かといったことに注意を払えば、オペレーターの操作に関わるパフォーマンスを上げられます。

 インタラクションとは関係のないコンポーネントのパフォーマンスも、システムの成功のためには同じように重要です。たとえば、「夜間」に実行されるバッチ処理が終了までに 24 時間以上かかるようなら、そのシステムは使い物になりません。障害修復用コンポーネントのパフォーマンスも、非常に重要です。システムの一部が完全に破壊されたときに、稼働できる状態を回復して通常業務を再開するためにかかる時間をどれだけ短くできるかが、これによって決まるのです。

 システムを成功させるために実装、運用について考えるときには、かならずパフォーマンスに十分な注意を払わなければなりません。