最近の話題を振り返って…

私達がこのブログを始めた時考えていたのはオープンな対話をする、ということで、Windows 7エンジニアリングに関して世界中の方々と双方向の会話を実現したいと考えていました。私達はこの短い間に起こったことについては喜ばずにはいられません。私達がどのように製品を開発しているかについての議論を開始したところ、皆さんにとって正に重要なトピックに対してのコメントと投稿でのやり取りが始まりました。数字をいくつかあげると、私は個人的に400通のメールを受け取り(いくつかには返信をさせていただきました)、約500人の異なる読者から900個の英語でのメッセージをいただきました(10個以上のコメントをしてくださる方もいます)。ページビュー+読者と言う観点では後者の数字の約10倍の人が参加されています。

このブログの読者のうちの何人かの方からは、私達がどのように機能を選択しているのか、日々のビルドプロセス、国際化、等、Windowsをいかに開発しているのかについて、さらに詳細を教えてほしいというご要望をいただいています。一方で、たくさんの皆さんがそれらの情報については十分に持っているので、機能の詳細について知りたいという別のご要望もいただいています。そこで、このポストでは既に話題になったいくつかの機能についての詳細機能およびその機能を選択するにいたった考え方を合わせてお話したいと思います。

私たちは頂いたレスポンスをうれしく感じています。Windows 7についての機能に関して質問を投げかけ合うためのフォーラムが作られているようです。そこで、私たちが何を始めようとしているのか、Windows 7がどのように作られようとしているのか、製品を作るにあたってどのように選択を行っているのか、について出来るだけお応えする事によりそれらのご質問にお答えしたいと思います。新製品の機能を列挙した長いリストを作って、「どうぞフィードバックをお寄せください」とブログに投稿するのは簡単なことです。こういうことは過去にも行われており、そうすることは人々を喜ばせ、製品づくりに関与したという風に皆さんに感じていただくためには、確かに簡単な方法なので(実を言うと私にとっては)魅力的なのです。しかし、全員を満足させるという点ついてそのようなフォーラムを作るという手法はいくつかの問題があります。まず、この手法は「リアクティブ」、つまりそれは皆様に単なる第一印象をお知らせくださいとお願いしているだけです。共通のコンテキストを持たずしては、お互いのモチベーション、優先度等について私達は共通の理解を得ることができないでしょう。これは時期が早過ぎ、私達が効果的に「マーケティング」できず、機能についての十分なストーリーを語ることができないようなケースで顕著です。二番目に、(自由に書かれたテキストでの)逸話のようなフィードバックは、実際には行動に結びつけられるようなデータではなく、このブログのような対話や議論を反映できません。このやり方で決定を下そうとすると、決定や優先度について同意できない「半分」の人々にとってはおもしろくない結果になります。そして三番目に、フィードバックをすることはそれをした人にとってはその方向に何かのアクションがあるはずだという期待感をあおってしまう傾向があります。これらがWindows 7をどのように開発しているのかについて様々なことをお話することにした理由です。

何人かの人は機能のリストを公開してそれに対してランク付け・投票というプロセスをすべきだ、という提案をされていました。実際、皆さんご自身のウェブサイトでこのようなことをされている人もいます。ありがとうございます – それらはとても面白いサイトであり、私たちはそれらのウェブサイトを拝見しています。しかし、皆さんの同意が頂けるかと思いますが、これらのセルフセレクトグループ(志願)のフィードバックは、意図的に代表としてセレクトされたグループ(選ばれた人達)のフィードバックとは違ってきます。Saturday Night Liveの古いエピソード, “Larry the Lobster”を思い出しました。Larry をストーブから救うか電話で投票できる話です。これは非科学的な投票です。しかし、非科学的な投票だとしても、これは動物保護に基づく動物の権利の話なのか、あるいは食べ物嗜好についての話なのかさえ分かりません。特定の機能について投票するというようなことは娯楽の範囲を超えていると私は考えています。私たちは同じコンテキストの中で問題を考えているかどうかについてエネルギーを費やしていかなければいけません。私たちはこれらのカスタマーのサンプルがブロードベースのカスタマーか、特定のターゲット“セグメント”のどちらかの代表になってほしいとも思っています。

このブログを立ち上げた主な目的は、何が重要で、私たちの相対的なコンテキストとは何かといった議論に対してお互いに耳を傾け合うためのフォーラムを作る事でした。そのために、ここにあるのは対話であると考え – 決して質問に対する回答、リクエストに対するレスポンス、指摘とそれへの反論、アナウンスやコメントというものではありません。私としてはこのブログに参加されている方々のダイナミックな活力を、次にどのような記事を書くかということの参考にしています。したがってこのブログはそれぞれの明確なゴールを持つビジネスミーティングもしくは一部の人間だけ話すようなトレーニングクラスのようなわけではなく、みなさんで集まって会って話す交流の場のようなものです。

この調子で引き続き、少し前に浮かび上がったいくつかの問題点についてお話ししたほうがいいと思います。皆さんはそれらについて見解を求めておられると思います。それぞれは個別のポストに値するほどのものでありますが、ここでいくつかの新機能の要望に対して私の意見を述べたいと思います。まず、パフォーマンスもしくはWindows 全体のエクスペリエンスについてお話をしていた際に浮かび上がったトピックについて触れてみたいと思います。これは、“コメント”に対しての回答とインプットになってしまうので、指摘と指摘への反論になり得ますが、さらなる議論に進める前に、できれば一度“コンテキスト”の議論を振り返りながら、深い議論ができればと考えています。

プロファイルベースのセットアップ

機能のアイデアとして多くの方からセットアップのときにWindowsを特定のシナリオ(用途)に合うようにできることについて提案いただきました。そのうちの一部の方はゲーム、カジュアルな用途、仕事のため、ウェブ閲覧、電子メール、“ライトウェイトの用途”などのシナリオを提案されています。それらの提案には、もし私たちがそれら特定のシナリオ用にWindowsを調整すればもっと (速度や容量的に) よいパフォーマンスを発揮できるはずであるとの含みがありますが、実際にはそれほどうまくはいかないでしょう。この機能を検討するにはいくつもの方法がありますが、スタートメニューの内容を(企業において管理者がよくやられているように) 変更したり、あるいはいくつかの基本的レベルのコンポーネント(ディスク ブロック サイズや TCP/IP フレーム サイズなど) のパフォーマンスのチューンアップであったり、ユーザー インターフェースに磨きをかけるレベルのもの(“eye candy”と呼ばれる) などがあります。私たちはシナリオや役割ベースのセットアップがWindows Server 2008 の非常にポピュラーな機能であると理解しています。しかしサーバー環境ではそれらの各役割は個別の(異なる設定の)ハードウェアや非常に大きなマシン上の特定のVMであったり、明確に区別できるもの( ファイル サーバー、プリント サーバー、ウェブ サーバーなどの) であったりします。

ところがデスクトップ PC (もしくはラップトップ) の場合はサーバーとは違い一台のPCに対して役割が特定できません。唯一まれなケースはPCがPOS端末のように単一用途である場合です。Product Planning の Mike がブログに書いたように、実際には私たちが特定のソフトウェアのみを実行するPCを見ることは殆どなく、私たちがこれまで行なった調査では、ほぼ全てのPCで他の人が実行しないようなソフトウェアが少なくとも一つ実行されています。したがってPCを特定用途に分類するといったことはするべきではありません。現在は PC を使用している際に役割が決まっていることもありますが、OS のゴールはワークロードの変化に際して十分に調整を行なうことです。Windows Vista における一つの例として新しい low-priority I/O APIs を使って、Indexer を低プライオリティにすることが挙げられます。”これを常に無効にしている” という人がいることを私は知っていますが、実際には前もってコストをかけることで、実行中のコストはとても少なくなります。そしてこれについては、Desktop Search 4.0 (ダウンロード用にリリースされています) と Windows 7 においても大きな改善が行われています。汎用のOSはワークロードに合わせて調整するべきです。私たちもすべてが完璧ではないことは承知しており、多くの (特にゲーマーの) 皆さんがパフォーマンス改善の可能性を一つ一つ探していることも知っています。しかし私たちはコアシステム サービスの”裏をかこう”とすることによって生じる複雑さと壊れやすさが、しばしば広範囲のお客様のところで確認されているように、パフォーマンス改善を妨げることも分かっています。ほんの少しだけ都市伝説を解決する余地があるかもしれません。- たとえば皆様がこれらにより達成できた系統的な結果を共有して、私たちがコメントでそれらを検証するというアイデアはいかがでしょうか。

もうひとつの挑戦がまさにこれらの分類を定義する事です。Office 95、Office 97のために私が一生懸命行ったことがこれです。私はセットアップ・ウィザードで簡単に、皆さんがどのくらいWord、Excel、PowerPointやAccessを使用するか、そして皆さんの職業(弁護士、会計士、教師)を分類できると考えました。それを利用して、どのアプリケーションをインストールするかを選ぶだけではなく、アプリケーションのどの機能をインストールするかを決定しようとしました。私たちは一貫して、二つの問題に出くわしました。まずに、人々を分類分けするための記述や質問を作る際のユーザビリティテストの時点で問題が現れました。それは選択の範囲が与えられると人々は、それらのすべての真ん中を選んだり、どれもふさわしくないと感じてしまったりするという古典的な問題でした。(人々は通常レッテルを張られるのが好きではありません)。そして私たちが常に直面していた二つ目の問題は、複数のユーザーが同じPCを使用している場合や、利用する時と場合によって役割を変えたり利用方法を変えたりすると言った問題でした。実は私たちの企業のお客様も、同じことを経験されていたという事がわかりました。そしてそれは”すべてをインストールする”ということになり、そして製品のすべての機能をインストールする時代が始まりました。すべてをインストールした後に、トレーニングなどで利用シナリオを狭めていったのです。

最後のチャレンジは、まさにこれをユーザーにいつどのように提供するかということでした。Out of box experience(箱を開けた後の体験) - OOBEの手順は、PCの箱を開けたときや、DVDからセットアップを行ったときに通過する手順です。そしてパフォーマンスの最適化をするための場所としてOOBEを検証するということが課題になります。このステップでパフォーマンス問題を解決することは、確かに挑戦であり、同時にOut-Of-Box Experience のための“コンテキスト”に続いていきます。

Out of Box Experience - “OOBE”

OOBEは、まさにユーザーが新しいPCでWindowsを最初に経験する場所です。Windows PCに対して競合製品のレビューで多く見られたように、たいていの人が持っているゴールは、“カッターで開封してから、いかに早くWebを見ることが出来るのか”ということになっています。 Windows 7に関して私たちは、OEMパートナーと密接に作業を行い最も合理化された使いやすさを提供すべく努力しています。もちろんOEMパートナーには新しいPCのセットアップの一部として、非常に多くの柔軟性や差別化の機会を提供させていただいております。また私たちが注意しなければいけない事はこの時の“コアOS”部分がPCを使って楽しむための必要最低限なものであるかどうかです。

この目的はさらに (購入時の) PC利用・使用の目的を測定するプロファイリングやウィザードを導入するということになっていきます。しかし、これはOEMパートナーがこのようなプロファイルされた情報を基に差別化されたOOBEエクスペリエンスを提供できないという訳ではありません。これは“コアOS”のインストール時にすべてのお客様に強いるものではありません。

PCファンである多くの皆さんは、様々なパッケージマネージャーの中の一つを使いLinux PCをセットアップされた事があると思います。(おそらくインストレールの成功まで何回もやられた事でしょう) これらのインストールを見て分かるとおり (特に最近はエンドユーザー向けにフォーカスしたものになっています)、不十分なシステムを構成する回数は、 (あなたが必要としている) 完全なシステムを構成する回数を上回っています。たとえWindows Installerのような、ソフトウェア依存関係マネージャーを使用したとしても、多くの構成要素が多くの他の要素に依存しており、最終的に、この依存関係を管理し、正しくする事はとても難しい事です。結果として、多くのソフトウェアがマシン上に存在している事はお客様にとっては有益です。もちろんそれはそのシステムをインストールするのが容易であれば、ということです。インストールとはフットプリントをバランスする事、接続のアーキテクチャ、システム信頼性などと同様に製品開発の一部です。

そこで、Out of boxエクスペリエンスに対する私たちの考えは、お客様に速やかに新しいPCを使用してもらい、最も興味のないであろうという点をこれ以上複雑にしたくないということがコンテキストになります。皆さんはこんな経験がありませんか?車のディーラーに行った時、車についての説明DVDを見終わり、そして車のガイドツアーが終わるまで鍵を渡してくれない事。もし皆さんが私に似ているのであれば、「鍵をくれませんか、早く試乗させてください!」、と叫ぶでしょう。かなり多くのPC購入者が同類であり、そして私たちの世界中で実施した調査結果も同じ結果を示しています。

また、私たちは、様々な理由により実行中のシステムの調節 (パフォーマンス、footprint, 画面の広さ等) をしたいというようなエキスパートユーザーがいる事を認識しています。これは皆さまよりすでにお聞きしている項目ですが、私たちは”Windows 機能の有効化と無効化”と呼んでいます。

Windows の機能

お客様が購入されたWindowsの全機能をインストールして、もしお客様が機能の一部を取り除きたいと思った場合何ができるでしょうか? お客様は一度も使う事がない幾つかの機能を削除したいと思うかもしれません。なぜなら、そのような機能を間違って使ってしまうかもしれませんし、また、使わないと分かっているようなコードを持ち歩きたいと思わないからです。お客様はPCを(たとえばキャッシュレジスターやPOS端末)として役割定義をしているかもしれません、その場合には特定の機能が入ってない事が必要かもしれません。それには多くの理由があります。多くのリリースのWindowsでは、Windowsの一部である様々な機能をインストールまたはアンインストール出来ました。Windows Vistaでは、この機能をさらに強固なものにしました。ある機能をアンインストールしても、再度利用しようとした場合オリジナルDVDを必要とせずに復元して利用できるようにしました。また、アンインストール可能な機能をWindows Vistaでは増やしました。

Windows 7ではこのリストにさらに多くのWindows 7の機能を入れて欲しいとの要望をたくさん頂いています。これは私たちがWindows 7で真剣に検討していることであり、Internet Explorer 8.0ベータ2の “選択とコントロール” のデザインゴールと一致していると思います。

Linuxディストリビューションは、ある機能を簡単に削除できるのですが、それをすると簡単に他の機能を壊してしまうことがあります。その結果、これらの“依存関係”をお客様に伝える複雑さと最終的に全ての機能が何か他の機能に繋がっているような感覚をお客様が感じてしまわれることもあります。私たちは同じチャレンジに直面しているのです。重複した機能があるいくつかのOSのインストールではこのようなパッケージングはとても有効です。(それぞれいくつかの、ファイルブラウザ、ウェブブラウザ、オフィススイート、GUI の中から一つを選択するからです) コアWindows OSは、若干の機能の重複がありますが、このタイプの設定はありません。むしろ、私たちはカスタマーが望む多くのコンポーネントを追加できるプラットフォームを出荷しています。

Windowsコンポーネントの削除、リプレース、またはアクセスさせないようにしたいお客様のためにいくつかのツールがあります:

  • 既定のプログラムの設定 -Set Your Default Programs -SYDP( ( またはプログラムのアクセスとコンピュータの既定の設定 - Set Program Access and Defaults-SPAD ).   Vista ではこれらの機能によって既定のプログラム/ハンドラーをファイルタイプやプロトコルによって設定することができます。このツールは Windows XP SP1 で取り入れられました。 Vistaで SYDP は拡張され、私たちは全てのマイクロソフトのソフトウェアが適切に登録され、このメカニズムを使用することを期待しています。そのため、もし既定のメールプログラム、既定のGIFファイルのハンドラー、またはWebブラウザーを選択したいならば、このユーザーインターフェイスを使えます。WindowsはすべてのファイルタイプについてSYDPが管理する既定値を優先に使います。
  • スタートメニューのカスタマイズ及びグループポリシー . 長い間、企業の管理者はスタートメニュー(プログラムマネージャーの時代からも)をカスタマイズすることで、指定したプログラムのみを表示させる “役割ベース” のPCを作ってきました。最近ではインターネットカフェでもよくみかけます。SPAD機能はこれを更に拡張していて、インストールされた電子メールプログラム、ウェブブラウザ、メディアプレーヤー、インスタントメッセンジャーとバーチャルマシンのランタイムへのアクセスを削除するためのエンドユーザー向けのツールを提供します。
  • コードの削除.  時々、お客様はただコードすなわちプログラムを削除したいと思われることがあります。多くの人々がSSD等の容量の少ないディスクに収まるように多くのWindowsのコードを削除してきました。私は確かにいくつかのWindowsの最少インストールをみてきました。Windowsからコードを削除するためには、(Vistaの)“Windows 機能の有効化と無効化”ユーザーインターフェイスが使えます。現在Vista Premiumパッケージのツールには80を超す機能が存在しています。

多くの人々はこのような追加/削除できるWindowsの機能が増える事を望んでおり、このサイトでも様々な機能を追加/削除できるようにしてほしいという提案をいただきました。 これはWindows プラットフォームでは複雑です。なぜなら多くの開発者がWindowsプラットフォームの様々なコンポーネントに依存し、それらのコンポーネントが存在すると仮定して開発されるからです。たとえば、Windows アドレス帳を使うMedia Player、先進的なプリント スプーリングを使う個人向け金融パッケージ、または先進的なネットワーク機能に依存する最新のブラウザーであるかもしれません。これらはソフトウェアのエンドユーザーの視点からは見えないシステムAPIの一般的な使用例です。

タブレットPCのコンポーネントの例の用に、いくつかの例は非常にわかりやすく、私たちは今後この方向性を増やしていこうと考えております。私は非常に小さいラップトップPCを持っており、そのPCにはフルタブレット機能がついています。しかし私にとってタブレット機能のインクを利用するには最適なサイズではありませんでした。(私は12.1インチ以上のスクリーンを好みますが、このPCは10インチスクリーンでした). タブレットのコードはメモリーを消費し、 もしも私がこの1GBメモリーのマシンからタブレットのコンポーネントを取り除けば、そのマシンのパフォーマンスは良くなります。これは私が今できることです。皆さんからは、フォトギャラリー、ムービーメーカー、Windows Mail, Windows Calendarなどについても同様にしてほしいというご意見をいただきました。これらは私たちがWindows 7の開発で貴重なフィードバックとなりました。

重要な点は、皆さんが取り除いた機能の大多数は、実はほとんどリソースを消費しないということです(皆さんがそれらの機能を使用しないならば)。たとえPCの目に見える機能を減らすことができたとしても、PCのパフォーマンスを良くすることはできないでしょう。一つの例として、メール(またはニュース)のアカウントを構成しなければ、Windows Mailがパフォーマンスを悪くすることはあり得ません。もちろん、SPADによってこのプログラムへのアクセス制限する事も、好きなメールプログラムへのデフォルト プロトコル ハンドラーの変更も可能です。もう一つの例として、皆さんは関連付けを変更し、もしあなたが望むならば二度とフォトギャラリーを立ち上げさせなくする事も可能です。それはこれらの機能によってメモリーが使われないことを意味します。

今回はこれまでに出てきた項目の詳細と、いかに私たちがこれらの議論から学ばせていただいているか、という話の続きをしました。それぞれの項目のいくつかについては私たちと皆さんは同じ考えに近づいていることを望んでいます。

今回は記録的に長いポストになりましたが、それほど多くはないようにいたします。J

--Steven