技術文書の顔

昨年の話題の一つに「もしドラ」が売れまくったという事件があります。ドラッカーの古典的マネジメント本「マネジメント」を高校野球のマネージャーが読んだらどうなる、という一種出落ち的な本なのですが、中身を読んでみるとあら不思議、以外にまじめな本です。
こんな本を読んでもドラッカーを読んだことにはならないとか、小説としてできはいまいち以下とか、いろいろ言われる本書ですが、未読の方はドラッカーの「マネジメント」と並べて読むことをおすすめします。
技術文書がどうあるべきか考えさせられますから。

もしドラ」と書籍の構造

もしドラ」が売れた背景には、「マネジメント」の読みにくさがあるのではないかと思われます。「マネジメント」そのものは哲学書や法律のような難解な言い回しの本ではないのですが、いかんせん、あまりにもぶつ切りの感があります。もちろん、それには理由があります。この本は体系に沿って書かれているのです。「マネジメント」の目次を読むと、この本はマネジメントの「使命」「方法」「戦略」について説明しており、それぞれのカテゴリはさらに細分化されて説明されています。これは学術書らしい書き方ではありますが、すんなりと頭に入る書き方ではありません。
学術書、技術書と言った書籍には大なり小なり構造があります。学術書の場合、構造を持たないというのは致命的でしょう。技術書もリファレンス・マニュアルと言ったものにはきちんとした構造が与えられています。そういった書籍の構造には守るべきルールがあって、それは記述する対象の体系と同じ構造を持つと言うことです。
書籍が構造を持つという話は、なにも学術書や技術書に限った話ではありません。いわゆる報告書と言ったものでも同じです。報告書の多くが持つ定型性を嫌う人はたくさんいますが、情報を正確に伝えるための枠組みとしての書式には、それなりに意味があることを頭の隅に置いておくべきです。
また、文学の分野でも書籍は構造を持つことがあります。漢詩から始まった起承転結のリズムは日本人の肌に染みついており、多くの書籍が同様の構造を持っています。また、大ヒットした「涼宮ハルヒの憂鬱」はトップダウンで書いたとしか思えない整然とした構造に基づいて話が進んでおり、もったいつけた文体にもかかわらずすらすらと読み進めることのできる明快さを支えています。
さて、ハルヒの構造はリズミカルなテンポでの読書を支えていますが、「マネジメント」はそうなっていません。どちらかというと取っつきにくいです。それは、書籍としての「マネジメント」を支える構造がマネジメントという分野を研究するための学術体系であって、読みやすさを与えるための構造ではないからです。おそらく書いたドラッカー本人は膨大な参考資料をもとに、頭の中で整理しきった概念に従ってすらすらと書いたと思われますが、何も知らない人が読んでマネジメントの全貌を見渡すには酷な構成となっています。マネジメントの体系を理解できるまで、なかなか全体を見渡せないのではないでしょうか。
一方で「もしドラ」はマネジメントという分野の体系を無視して書かれています。この本を貫くのはみなみという名前の少女がドラッカーの「マネジメント」に出会い、友人のために野球部のマネジメントに役立てようとするストーリーです。このストーリーは「ラノベ」などと揶揄される割には比較的良くできており、頭の中にすらすらと入ってきます。そしてそのストーリーに沿う形で「マネジメント」の中で語られる事の要点が紹介されます。
おもしろいのはその要点の紹介の仕方であり、たいていは

  1. 要点の紹介
  2. 現在ある問題の提示
  3. 要点を適用するための手法
  4. それにより事態が改善された様子

といったサクセスストーリーが、きちんと提示されており、仮想的なケーススタディとして機能することで要点の理解を深め、忘却防止に役立っています。なお、この枠組みに従わない要点として冒頭に語られる「マネージャの資質」がありますが、こちらは物語の根幹となる重要な要点となっており、非常に印象深く心に残ります。
こう考えてみると、「もしドラ」は「マネジメント」という書籍の入門書として成功しているだけではなく、技術の入門書の一つのあり方を強く示しています。

技術文書を作る複数の視点

今私がかじりついているNXP社製マイコンLPC1768のユーザーズ・マニュアルUM10360はPDFで840ページあります*1。この本をマイコン初心者にぽんと渡すと9割9分挫折するでしょう。あるいは理解仕切る努力家や天才もいるかもしれませんが、それにしてもより効率の良い方法があるのではないかと思うに違いありません。
UM10360の章構造はFig 1のブロックダイアグラム、つまりマイコンの内部構造に従ったものになっています。対象であるマイコンの体系に従って書かれているわけです。この本の読者はFig 1が何を表すか最初から理解できると想定されています。そして各章の中には各ブロックの内部構造が描かれ、その内部構造、たいていの場合にはレジスタに沿って解説が書かれています。

ここに現実との大きなギャップが浮かび上がってきます。
レジスタの説明は、あくまでレジスタの内部構造、つまりビットフィールドの説明でしかありません。個別のビットフィールドに機能はありますが、それがプログラムの流れの中でどのように振る舞うか十分に書かれていない場合が多くあるのです。ある機能があるとして、それは特定のモードで使っていいのか、使わなければならないのか、使ってはならないのかなどが網羅的に書かれている場合は稀です。
また、LPC1768のようなSoCマイコンは既存のCPUコアやメモリ、ペリフェラルと言ったIPをバスを軸としてぺたぺた貼り合わせたものです。従って、それぞれのペリフェラルは異なる思想で開発されており、全体として見渡すとちぐはぐさが否めません*2
こういった難しさは昔からあったのですが、何しろ最近のマイコンは桁違いに規模が大きいため、マニュアルの全体を理解するのは一仕事です。
マニュアルを頭からおしりまで全部読むという正攻法を避ける方法の一つに、クックブックとよばれるドキュメントがあります。これはサンプルプログラムを細切れにして解説したような文書で、「XXXをするには」という節タイトルの下にその方法を説明するというものです。大まかに理屈をわかっている人には便利です。
しかし、初学者や全体の構成がわかっていない人には、なんと言ってもストーリーのある形式の本が一番わかりやすいのです。入門書といわれる書籍でこの形式を採っていないのは詐欺とも言える鉄板構成です。

わかりやすいけど書くのは大変

ストーリー形式の技術書籍は、明確な出発点とゴール、そして中間点を示します。これらに対して問題を明確にし、アプローチを定めて小さな問題を一つずつ片付けていくことから、非常に理解しやすいのが特徴です。しかし、この形式には大きな問題があります。
というのは、ストーリー形式の技術文書はとてつもなく執筆者の負荷が大きいのです。昔と違ってプログラミングを学ぼうとすると、それがたとえ一分野としても、覚えなければいけないことがたくさんあります。それを、必要十分な量に絞った上で、かつ網羅的に、しかもストーリーを構成して書かなければならないと言うことは、筆者自身がスペシャリストであると同時にジェネラリストであることを求めます。そうして、この分野の進歩の早さは、腰を据えて本を書くことを許してくれません。仮にそれが許されたとしても、脱稿前に全面的な見直しと改訂が必要になることは火を見るより明らかです。

WEBでは提供できない形式

この手の文書をWEB上の個人サイトやブログに求めるには無理があります。ごくまれに個人で膨大な文章を書き上げる人もいらっしゃいますが、基本的に個人サイトやブログにある情報はきわめて断片的です。それらの多くは自分が興味を持ったTIPSに終始しており、体系的でもなければ、思考の過程を追跡できるものでもありません。
私はこういった分野は出版社の独壇場だと思っています。組み込み系の書籍の著者の多くは本職のライターではありません。編集者の指導をうけて二人三脚で作り上げていく以外、読者が必要としているわかりやすくて将来への指針となるような書籍は作れないのではないかと思っています。
一方で、多少とも文章を書ける技術者が、おもしろそうなネタを断片的にどんどんWEBに公開している現在、WEBに無い情報を書籍に掲載しようとすると、非常な困難に直面することは容易に想像できます。また、書籍のためにネタの公開を伏せると言ったことは、文章を自分で書こうとするほど情報共有に積極的な技術者にとっては、苦痛以外の何物でもありません。
その点でも、技術者に適切な方向を示す意味で、やはり編集者の存在意義は以前より重いのではないかと思っています。
今回は何となく尻切れトンボ。

さすがにこのセットには笑うわ。

*1:Rev.2 Aug/2010

*2:たとえばLPC1768のI2SとUARTにおけるDMAの使い方の違い