2009年5月28日木曜日

コンテキストシナリオを書いたら

About Face 3 読書ノートの12。

コンテキストシナリオがどうやら書けたら次にどうするか。

これからデザインするモノが何であるか明確にするために、シナリオの中の目的語(オブジェクト)、行為、コンテキストに注目して、まずはデータ要件と機能要件を抽出するんですね。

こんな例が書かれています。

アポ(コンテキスト)から人間(オブジェクト)に電話をかける(行為)。


オブジェクトがデータ要件の、行為が機能要件の、それぞれ雛形になるんですね。コンテキストはデータや機能のグルーピングの単位やある種の制約条件になるでしょうね。

これって、システム設計の話で、ユースケースを書いて、ユースケースから概念モデル(クラス)図を書くのとまったく同じ手口ですね。

ま、いってみればユースケースとは機能要件の定義、概念モデルとはデータ要件の定義なわけで、だからコンテキストシナリオを書いたら、シナリオに基づいてユースケースと概念モデルを書く、って言っちゃってもいいんじゃないでしょうか。

ユースケースの入門書なんかでは、はじめっからいきなりユースケースを書くみたいなかんじなんですけど(いや、実際の仕事でも、ヒアリングもそこそこにほとんど思いつきだけでユースケースを書いてきたような!)、言われてみれば、いきなり書き始められるわけがないんですよね。神の啓示を受けて何かにとり憑かれたようにいっきに書き上げる、自動書記じゃないんだから、そんなのないわけです。

そう。ユーザーの質的な調査に基づいてゴールとニーズの典型をつかむためにペルソナを作り、シナリオを書く。しかるのちに、そのゴールとニーズに応えるツールやシステムの輪郭を明確にするためにユースケースと概念モデルを書く。そうこなくっちゃいけない。

ちなみにユースケースについては、About Face 3 の中で次のように言及されています。ちょっといいことが書いてあるんで長くなりますが引用します。

シナリオとユースケースは、ともにユーザーとシステムのインタラクションを記述するための方法である。しかし、この2つが果たす機能は大きく異なっている。ゴールダイレクテッドシナリオは、特定のユーザー(ペルソナ)の視点から製品の振る舞いを反復的に定義する手段として使われる。振る舞いには、システムの機能だけではなく、機能の優先順位や、ユーザーからは何が見えるのか、システムとどのようなインタラクションをするのかという意味での機能の表現形態も含まれる。
それに対し、ユースケースは、低水準でのユーザーの操作とそれに対するシステムの応答に重点を置いた、入出力のレベルでのシステムの機能要件を網羅的に記述するテクニックである。


まさに、ですね。しかし、この文章、ユースケースはシナリオの代わりにはならないよ、シナリオのほうがいいよって文脈で出てくるんですけど、コンテキストシナリオから機能要件を抽出したら、それを書き留める方法としてユースケース図が使えるってニュアンスで捉えたいところですね。

で、機能要件をユースケース図にまとめて、データ要件を概念モデル図にでもまとめたら、それらをうまくハンドリングするためのインターフェースの設計に入っていくわけです。

でも、ここで、「ちょっと待った」ってかんじがするんです。

当然ながら、プロジェクトはインタラクションデザインだけで出来上がっているわけではなくて。ここまできたら、システムを構成するドメイン(=相互に関連の深い概念モデルやユースケースの集まり)を見極め、反復的な開発プロセスを回し始めたっていいでしょう。はじめからそれなりに動作するシステムをすこしずつ拡張していって完成形に近づけていくってやり方で。

実は、About Face 3って、デザインのプロセスの内部は反復的なんだけど、開発との関係においては、結構、ウォーターフローモデルを前提にしてるところがあるんですよね。後でいろいろ考え直したりはしてるみたいなんですけど。

あとがきにこんなことが書いてあります。

かつての私たちは、コーディングが始まる前にデザインの作業をすべて終わらせるべきだと考えていた。しかし、開発日程の厳しさや、提案したデザインの現実可能性を証明する必要性(こちらの方が大切)などを考えると、これは現実的ではないということを学んだ。

(中略)

しかし、製品のある側面について構築を始めても、他の側面についてはまだデザインしているという形にすれば、実質的な形で仕事の順序を守ることは可能だということだ。


これは、でも、たんに複数チームを並列的にワークさせて合理的に時間を使うってな話で、アジャイル開発の発想ではないですね。

やっぱり、インタラクションデザインも含めて開発イテレーションを回して、実際に動くモノを目の当たりにしながら、それこそ、イテレーションごとにユーザーのフィードバックなんかも得ながら少しずつ拡張するようにして作り上げていくほうが、インタラクションデザインにとってもいいような気がするんですけどね。どうなんでしょう。

2009年5月8日金曜日

ビビアンのコンテキストシナリオ

About Face 3 読書ノートの11。

さて、About Face 3 によれば、コンテキストシナリオこそ、「デザインの開始位置」なのです。

以下引用。

コンテキストシナリオの範囲は、広くて比較的浅いものにする。製品やインタラクションのディティールを書き込んではならない。それよりも、ユーザーの視点から見て、高い水準の動きに重点を置く。最初に大きな図を描き、ユーザーの用件を系統的に突き止めていけるようにすることが大切だ。適切なインタラクションやインターフェイスをデザインできるのは、それらがはっきりしてからである。

引用終わり。

いやあ、びしびし語りかけてきますね。

つまり、まずコンテキストとゴールを明らかにして、そのゴールを実現するために、これからデザインしようとするシステム/デバイスがいったいどんなふうに使われるのか、そこらあたりを大ざっぱに書いてみるってかんじでしょうか。

137ページに例が載ってます。120~240字でまとめられた8つのパラグラフからなる、全部で約1200字ほどの文章。題して「ビビアンのコンテキストシナリオ」。

これを見れば、具体的にどんなスタイルで、どれくらいの粒度で書けばいいのか、だいたいつかめます。

それから、文章を構成している要素を分解してみると、

・コンテキスト
・ゴール
・ゴールを実現する上での課題
・課題を解決するために果たすシステム/デバイスの役割

だいたい以上の4つのポイントを押さえるようにして書かれているみたいです。

ちょっと紹介してみたいと思います。

シナリオに入る前に、まずペルソナの定義から。シナリオの主人公の名前はビビアンです。

不動産屋に勤めているビビアンには、夫がいて、学校に通う娘がいる。

ビビアンのライフゴールは、妻として母として家庭生活をけっして疎かにすることなく、その一方で、ばりばりと契約をまとめる敏腕エージェントとして活躍すること。

不動産屋の勝負は、数多くのクライアントを、いかに効率よく、それぞれの希望に添う物件に案内できるか。しかも、”え、ひょっとして専任でついてくれてるの?”と思わせるほどのクイックかつ的確なレスポンスで。

そんなビビアンを少しでも楽にしてあげられるシステム/デバイスとは?ってことでコンテキストシナリオが書かれます。

まず、システム/デバイスにまったく触れずにシナリオの要点をまとめてみるとこんなかんじになります。

(1)朝、娘を学校に送り出すまでの世話を焼きながら、クライアントの突然の求めに応じてその日の午後にアポを入れる。

(2)オフィスにはその日の外回りに必要な書類をとるためだけに顔を出す。(面倒な活動報告などもなし。)

(3)これから案内する物件に向かう途中、クライアントに関連する情報に目を通しておく。一方で目的地までの正確な経路もちゃんと確認。正確な到着時間を知らせるためにクライアントに電話を入れる。

(4)クライアントに物件を案内している最中、娘から緊急連絡が入る。(接客中に緊急連絡を入れられるのは家族だけ。)どうやらバスに乗り損ねて帰るに帰れないらしい。自分は今手が離せないないので、夫に連絡した。夫が迎えに行けることがわかってほっと一安心。

こうやってかいつまんでみると、以上はそのまま、システム/デバイスが使用されるシーン、コンテクストの描写になってますよね。なおかつ、これ、全部そうだといいな、ってことなんで、システム/デバイスがビビアンにもたらすエンドゴールのイメージにもなっていると思います。

エンドゴールのイメージってことは、(1)~(4)ともに、実は、そうであるために解決したい課題があるわけです。で、それを、これからデザインするシステム/デバイスがどうさばいてくれたらいいのか、そのあたりのことをさらに書き加えてみると、例示されているとおりの文章になっていくでしょう。

ちなみに彼女を彼女のゴールに導くお手伝いをしてくれるシステム/デバイスとは、「PDAタイプの電話」、いわゆるスマートフォンです。

たとえば、上記の(3)にあたる部分は、例では 第5,第6パラグラフとして次のように書かれています。

以下引用です。

5.時間が過ぎるのは早く、彼女は少し遅れている。フランクに見せる物件のもとに向かっていると、電話が約束の時間まであと15分だということを警告してくる。彼女が電話を開けると、アポだけではなく、電子メール、メモ、電話メッセージ、フランクの番号への発信記録など、フランク関連のあらゆるドキュメントのリストが表示される。ビビアンが発信ボタンを押すと、電話はフランクとのアポが間もなくであることを知っているので、自動的にフランクに電話をかける。彼女は、20分で着くと連絡する。

6.ビビアンは物件の住所こそ知っているが、正確にどこなのかについては少し自信がないので、アポに記入したアドレスを引っ張り出して軽くたたく。すると、電話は現在位置と目的地の関係を示す小さな地図と彼女に対する指示をダウンロードしてくる。

引用終わり。

これで、ゴールに立ちはだかる課題と、課題を解決するためにシステム/デバイスがどう役立ってくれるかのイメージがはっきりしてきますよね。

ところで、課題をどう解決するかっていうのは、システム/デバイスをどう実装して実現するかというのとは違います。あくまでも、こんなこといいな、できたらいいな、の、のび太レベル。About Face 3 ではこれを「魔法のふりをする」あるいは「魔法のインターフェースがあるふりをする」といっています。

たとえば、このコンテキストシナリオで描かれる魔法の「PDAタイプの電話」はこんなかんじです。
(いや、実際、こんなのありそうですけれども。)

・手軽にメールチェックができて、メールからシームレスに電話もかけられる
・相手と電話(スピーカーフォン)で話ながら、スケジュールを確認できて新しいアポを登録できる
・登録されたアポはオフィスで共有できる
・アポの時間が近づくとリマインダー通知が行われ、PDA内部では当該のアポ関連の情報が"活性化"する
・現在位置を目的地をプロットした地図が表示できる
・留守電モードであっても、"秘密のコード"を知っている人からは通話モードで連絡が入る
・インタントメッセージの送受信ができる

しかし、こういう一連の機能をどう実装するのかなんてこの時点ではまったく心配していないし、具体的にどんなインタラクションで操作するのかについても非常に無責任にすらすらっと書いちゃう。「アポに記入したアドレスを引っ張り出して軽くたたく」なんて。

コンテキストシナリオの眼目は、どう作るか、ではなく、何を作るのか、をはっきりさせること。"実現方法"は、コンテキストシナリオを固めた後に、コンテキストシナリオに基づいて考えていけばいいことじゃん、と。だから、ここが「デザインの開始位置」になるわけです。

そう考えてみると、この本に書かれているわけではないですが、上でやってみたように、コンテキストシナリオで明らかにしたい4つのポイントを意識しつつ、まずは、システム/デバイスにまったく触れずに、コンテキストとゴールを明らかにするためだけにシナリオを書いてみるのがいいんじゃないかと思うんですよね。ここまではユーザー調査の結果をペルソナにまとめる作業の成果から、わりと論理的に導けるはずです。仮にペルソナが想像上の「暫定ペルソナ」だったとしてもね。

で、その後に、ゴールの前に横たわるいくつかの課題と、それを解決していくシステム/デバイスのイメージを書き込んでいってみると。ここは、ちょっとクリエイティブに、思いっきり「魔法のふり」をしてみながら。

その「魔法」は、デザイン/設計の工程が進むにつれてボコボコにされる運命をきっと辿りますが、それでも最後まで参照される成果物として生き延びていきます。

そこに描かれた「魔法」たちが要請されたニーズを、別のかたち(実現方法)ではあれ、きちんと満たしているかどうか? それが、その後作られることになるワイヤーフレームや画面モックの評価の基準になるわけですから。

ワイヤーフレームや画面モックを目の当たりにして、あれ、はたしてこれでよかったんだっけ?なんて不安になったら、それらが魔法の代わりとしてコンテキストシナリオにずっぽりハマるかどうか検証してみるとよろしい。

そう、これがないからさ、前のエントリーに書いたような話になるんじゃないかなーなんて、思うんですよね。どうでしょうね。