« なぜITアーキテクトは流行らないのか | メイン | Bit Scape 粒による風景の表現 »

ドメインモデリングよりもユーザーインターフェースを

 S/N Ratioで紹介されていた「ソフトウェアアーキテクトが知っておくべき10のこと」が、いい感じです。佐藤さんの紹介をそのままに。

  • 人がプラットフォーム (People are the platform)
  • すべてのソリューションは時代遅れ (All solutions are obsolete)
  • データは永遠だ (Data is forever)
  • 柔軟性が複雑性を生む (Flexibility breeds complexity)
  • 期待通り動くものはない (Nothing works as expected)
  • ドキュメントは普遍的なソースコード (Documentation is the universal source code)
  • ビジネスを知るべし (Know the business)
  • ビジョンを維持せよ (Maintain the vision)
  • ソフトウェアアーキテクトもコーディングすべし (Software architects should also be coders)
  • 経験に代わるものはない (There is no substitute for experience)

 「これはいいなぁ」と思ったのは、People are the platformの中で8ページ目に書かれていること。

Don't put domain modeling and service design on a pedestal and  turn up your nose at UI and web work. For most web and rich apps  today, considering the tools, frameworks, and experiences at our  disposal, domain modeling and data management are not the hard or  time-consuming aspects of a project, the UI is. There's been a shift  of R&D bottleneck away from devs and toward IA and designers on one  end, and systems infrastructure guys on the other end. - Sean Neville

ドメインモデリングやサービス設計にコダワリ過ぎてはいけない。むしろUIやWebを重視した方がいい。今ドキ、ウェブサイトやリッチアプリ向けにいろんなツールやフレームワークがあるし、ノウハウもある。ドメインモデリングやデータマネジメントなんてのは、プロジェクト全体からみると、たいして難しくも時間がかかることでもない。けど、ユーザーインターフェースは違う。R&Dのボトルネックが開発者たちから、IA(インフォメーション・アーキテクト)やデザイナ、それからインフラのやつらに移っているんだ。

(この人の英語がテキトー過ぎて、少し意味が違うかも。気づいた方はコメントください)

 put ~ on a pedestalというのは「信奉する、崇拝する」という意味なので、わかりやすく言うと(?)「ドメインモデリング厨はいかん」という意味。Adobeの人が言うことだから、というを差し引いても「ドメインモデリングを信奉するよりも、UIを大切にせよ」というのは刺激的な言葉。ですが、僕はこれに賛成します。ドメインモデリングにコダワリすぎるぐらいなら、UIをどうするか考えた方が良い。


 僕は、ドメインモデリングが「神の視点」で、ユーザーインターフェースは「ユーザーの視点」だと思っています。

 ドメインモデリングというのは対象とするドメイン(問題領域)を俯瞰し、そのドメイン全体をモデル化して表現しようとする試みです。つまり"神の視点から世界を見ている"ようなものだと思います。モデルは絶対であり、そのモデルを中心としてロジックやUIが形作られています。ユーザーは、その世界の中でモデルの1つとして振る舞うことを要求されます。
 

 一方でユーザーインターフェースというのは、ユーザーが対象としたい情報の扱い方を示したモノです。単なる画面のデザインにとどまらず、「ユーザーが、どんな情報を、どういう形で、どういうタイミングで知りたいのか」を表現したもの。つまり、"ユーザーに情報そのものを体験させる"こと。

 たとえばiPhoneのビュワーの秀逸さは、"送る"というインタラクションに対して驚くほど自然にスクロールが行われること。そこにはスクロールバーという道具は存在しません。「対象物を見るために指で動かす」という、とても自然な行為に対してビューワもスクロールバーも存在しないかのようなユーザーインターフェースを提供しています。近くにiPhoneユーザーがいる方は、ぜひ試してみてください。


 そもそもソフトウェアが世界を表現するなんてことは無理で、所詮、劣化コピーに過ぎない。それはドメインモデリングもユーザーインターフェースも同じこと。だから、何を抽出して取り出すのかというのが重要になります。

 神の視点にいるヒトは、モデルがまるでリアルを表現しているように錯覚しがちです(僕も、そう思っていた時期がある)。でも、リアルの世界をモデル化するなんて単純なコトじゃない。そうやってモデル化された世界は、ユーザーに制限を与えるようにしか働かない。モデルはモデルであって、リアルではない。だから、ユーザーは制限があるモデルの法規に従うために、道具としてのソフトウェアを使うようになる。

 もちろん、ユーザーインターフェースも劣化コピーに過ぎない。だけど、取り出すものがユーザーの意識の中に溶け込めれば、劣化コピーであってもすごく自然に扱えるようになる。たとえばWordやExcelのインターフェースは、文字や数字を扱うために出来ています。こうした概念はAppleが目指したWYSIWYG(What You See Is What You Get/あなたが見るものはあなたが得るもの)に近いです。


 ただし、ユーザーインターフェースは、1つの画面に集中しすぎると、まさに一面的な視野しか提供していないため、総体としてのモデルの整合性失われがちであるとも思います。要件定義をしていれば分かるように、ヒトはそれほど論理的ではありません。コンテキストに応じて柔軟であるがゆえに、一面的なデザインを先行させすぎると大量の矛盾が発生するのです。いわゆる画面重視のデザインプロセスが破綻するのは、こうした理由からです。


 それでも、僕はユーザーインターフェースというのが先にあるべきだと感じています。まだまだ未成熟な点も多いため、体系化を進めるためにはドメインモデリングのような視点をうまく取り込んでいく必要があるでしょう。そのうち、本当の意味で「ユーザーインターフェース指向なデザイン手法」というのを試してみたいです。

トラックバック

このエントリーのトラックバックURL:
http://www.arclamp.jp/mt33/mt-tracback.cgi/2623

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2009年03月02日 02:45に投稿されたエントリーのページです。

ひとつ前の投稿は「なぜITアーキテクトは流行らないのか」です。

次の投稿は「Bit Scape 粒による風景の表現」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Creative Commons License
このブログは、次のライセンスで保護されています。 クリエイティブ・コモンズ・ライセンス.
Powered by
Movable Type