JoAnn T. Hackos博士のワークショップ

仕事が超忙しいので、1月にリーダーからDITA Festa 2013に誘われたときはどうしたものか悩みました.でもDITA Festaは数年前に一回行ったきりでしたので今回思い切って参加させてもらうことにしました.今年は2月7日~8日で会場は箱崎IBM本社でした.
 
まずDITA Festaに先立って、DITAコンソーシアムの会員向けに今回来日されたComtec社のJoAnn T. Hackos博士の特別ワークショップが2月6日にありました.実は一番感動的だったのがこのワークショップでした.何故かと言うとDITAの導入コンサルティングに深い経験をもつ博士から、他では聞くことのできない実践的なお話を聞くことができたからです.今回これを簡単に紹介します.
 
Hackos博士が話してくれたのは、DITAの導入に至るまでの次の過程のお話です.主に製品があってそれに付随するようなマニュアル文書を念頭にしています.したがってユーザーとは製品を使うお客様です.DITAのトピックを作るところまで行くためには次のようなステップがあります.
 
1.ユーザーのタスクの分析をする
2.重要な内容の絞り込みを行う
3."Annotated Topic List(ATL)"を作る
4.トピックを開発する
 
タスクの分析は次のような観点で行うのが大切とされています.
 
・ユーザーはその製品で何をしようとしているのか?
・ユーザーの本当の目的(goal)は何か?
・ユーザーはどのようにしたらそれに習熟できるのか?
・私たちはどのようにユーザーの目的に沿った情報を提供できるのか?
 
また自分たちが作る文書が誰を対象としているのかを分析するのも必要です.
 
・ユーザーのプロフィール(profile)を調べます.
  それはエンドユーザーなのか?システムアドミニストレータなのか?技術者なのか?ソフトウェア開発者なのか?
・これにそってoutputする文書の目的を明確にします.
・ユーザーが成功裡に目的に到達できるようにするため行わなければならないタスクを収集します.
 
このようなタスクをリストアップする上で、直接ユーザーにインタビューして話を聞きます.もし直接ユーザーに会うことが出来ない場合、製品サポートやサービス、トレーニング部門などユーザーとつながりを持つ部門にインタビューします.
このようにしてユーザーの行うタスクの一覧表を作ります.
 
1.タスクとはユーザーが行う個々の作業です.例えば製品がソフトウエアの場合「~をPCにインストールする」など.
2.これをグルーピングしてExcelの列に書き出します.
3.タスクを実行する上で必要なコンセプト(concept:概念)を横の列に書き出します.
4.タスクを実行する上で必要なリファレンス(reference:参照事項)を横の列に書き出します.
 
これを元に、ATL(Annotated Task List)へとまとめます.ATLはおよそ次のような列をもつExcel表です.
 
1.グループ(例えば「はじめに」、「基本操作編」、「応用操作編」など)
2.トピックのタイトル
3.ファイル名(~.dita、~.xml
4.トピックの情報タイプ(reference、concept、taskのいずれに該当するか?)
5.トピックの担当者
6.出力先メディア(Web、印刷マニュアル、ヘルプ、PDAなど)
7.製品系列(製品/シリーズにより掲載するか否か)
 
最終的にこのATLからDITAMAPを作成します.ここからは個々のトピックを作ってゆく作業になります.
 
このATLに至る分析手法は非常に大事だなと思いました.
 
例えばDTPからDITAに移行しようとするお客様は、まず「XMLなんぞや?」から始めねばなりません.ゼロからの出発なので、このような「ユーザーの目的はなにか?」というような根底的な分析から入ってゆくことも逆に抵抗はないでしょう.でもDITAの前にすでに一定XMLを利用されているお客様は既存資産を利用するという課題があります.ですから必ずしもこのようなレベルまでさかのぼって分析を行うことには驚かれるかもしれません.しかしHackos博士のお話を聞いていて、DITAを導入するのには、既存の引き写しではなく、(文書に載せる)情報の再構築なしには成功しないのでは?と感ぜざるを得ませんでした.
 
また聞いていて考えたのですが、このような分析をExcelで行うのは限界があると思いました.実際ATLの行数は数万になる場合があるそうです.DITAの本家本元のIBMではトピックの数は100万にも及ぶそうです.(Excel2010の行数は最大1,048,576行だそうです.)
 
ですので、チームを作って分析作業を行ってゆく際、そのチーム内でATLのExcelシートを共有するという使い方は非現実的です.やはりサーバーにデータベースを立てて、それを元にして作業してゆくことが求められるのではないかと思います.こうすればクェリーで担当者別にトピックを抽出したり、エキスポート機能を使えば特定の製品でDITAMAPの雛形を作ったりすることも可能になります.
 
何事もやってみることが一番です.ただHackos博士のお話を聞いただけではいまいちなので、試しにAccessでこのATLの雛形を作ってみました.元にしたのはこの前買った「Scala実践プログラミング」という本の目次です.以下は作ってみたATLテーブルです.
 
イメージ 1
 
やってみてわかるのはInformation typeの分類に迷うということです.taskやreferenceはわかるのですが、あとはconceptでいいのか?ちょっと迷います.
いったん作ってしまえばAccessなので、担当者でトピックを抽出することなんかはクェリーで一発です.
 
イメージ 2
 
Hackos博士のお話のなかでは、このATLにはExcelシート上で製品別の列を作って、製品毎にトピックが必要か否かをマーキングしてゆくものもありました.これはAccess上で考えると、ATLとは別に「製品のテーブル」を作って、すべてのトピックを列挙したATLテーブルから必要なものをグループ毎に抜き出して行を作ってゆくような操作になるのではないかな?と思います.こうすれば新しい製品を出す場合でも類似の製品のテーブルを元にして次々に新製品用のテーブルを作ってゆける訳です.
 
このような分析業務を行うのはIA(Information Architect)の仕事です.Accessを使うとこのような分析の仕事にも意外と応用できそうです.