2010年06月14日
ジェラルド・M・ワインバーグ『パーフェクトソフトウエア』(日経BP社)
日経BPの高畠さんから本書を献本いただいたとき、背筋が伸びるのを感じた。献本をいただき、このような緊張を覚えることは初めてである。
それは昨秋、本書の著者であるジェラルド・M・ワインバーグが、自身が重い胸腺癌を患っていることを明かしているからだ。氏の公式サイトには5月22日付けで "I’M NOW CANCER-FREE" という記述があり、病状は快方に向かっているようで一安心だが、ワインバーグ先生も高齢であり予断を許さない(これは余談だが、筆者の老親と同年代である)。こういうことを書くのは縁起でもないと言われそうだが、本書がワインバーグ先生の最後の著書になるかもしれないという考えが頭をよぎった。
本書はソフトウェアのテストについての本である。本書にしても、ワインバーグ先生の楽しい語り口は健在である。他の本に増して物語調の会話劇の部分が多いが、これは先生が近年小説を多く書いていることが影響しているのか。それが全部成功しているとは思わないし、例えば本書を『コンサルタントの秘密』と並ぶ名著と言うつもりはないが、読んで得るものが多かったのは間違いない。
ワタシ自身プログラミングを生業とするソフトウェア技術者なのだが、恥ずかしながらテストは自分にとって鬼門である。ちょうど吉岡弘隆さんが「テストを書くこととテストをすることの違い」、「テストは誰が書くのか」というテストについての文章を書いているが、こうした文章、そしてもちろん本書を読むと、ワタシなど自分の分かってなさを痛感するばかり。
もちろんプログラムを書くことがどういうことかは分かっている(プログラミングもしないくせにシステムエンジニアを名乗る人もいるらしいが)。デバッグがどういうことかも分かっている(それをやらないと出荷できない)。しかし、自分がテストについて「分かっている」という自信は、プログラミングやデバッグに比べ遥かにないのだ。
ワインバーグ先生は、人間が不完全で、不合理であり、ソフトウェアの品質が定量的、絶対的なものではなく、人間の感情や政治に左右されるという他の本でも繰り返される認識の上にたち、テストについて我々が犯しがちな間違いを掘り下げていく。
本書では、以下の六つの恐怖に対する自己防衛行動を挙げているが、ワタシ自身開発者としてテスターに見せてしまっているものだ。
- 受け入れられないことは抑制する
- 理屈に合わないことは合理化する
- 自分の負の資質を他人に投影する
- 責任を逃れるために非難の矛先を置き換える
- 自己認識した欠陥に対して過補償する
- 自制心を失っていくのを感じると強迫的になる
本書は「ハウツー」についての本ではなく、「なぜ(根拠)」を探る本である。いささかおしゃべりが冗長であったり、たとえ話がうまく機能していないところもあるが、楽する近道など存在せず、テストは常にプロセスであり、そのためにマネージメントがしっかりしなければならないことをちゃんと伝えている。ワタシにしても、本書で終わらずもっとテストに関する本を読まなければいけないな。
最後に余談だが、第13章に表計算のうるう年に関するバグの話があり、ジョエル・スポルスキーが同じ話を書いているのを読んだことあるぞと思ったら、ちゃんと彼の名前の名前が言及されていた。が、その文章の具体的な名前が書かれてないのはよくないね。「はじめてのBillGレビューのこと」である。