S.McConnel著, アスキー出版局 (Microsoft Press)
[1998/07/07]
原書発売から足掛け3年、ついに出た日本語版。
McConnel はもちろん「コードコンプリート」の著者。
今回は「開発期間」に焦点を当てて、基本方針、数々のTIPS、
ケーススタディ(読み物)盛り沢山な700ページ。
この手のケーススタディを読むのが大好きな私は勢いで買ったのだけど、
普通の人が読むには長過ぎるし値段も高すぎる。
ここは一つ「自分は選ばれたスーパーエンジニアかつ スーパーマネージャーなのだ」という自覚(私の場合は錯覚)を 持ちながら読みましょう。
1章と2章をちゃんと読めば、あとは 拾い読みで構わない、と著者も書いているから安心です。
さて、類書には
マコーネルの「デバッギング・デベロップメントプロセス」や
マッカーシーの「ソフトウェア開発のダイナミズム」が
あるのですが、「ラピッド・デベロップメント」はもっと
体系的に、あらゆる文献やデータをまとめた本です。
つまり、マグワイアや
マッカーシー、さらには
「闘うプログラマー」(Showstopper! =
NT を開発したカトラーたちのドキュメント。私はむかし立ち読みで読破した)
をどういう視点で読めばいいのか、
という情報も提供されているわけです。
さて、マッカーシーの物語は「偉大なソフトウェアを期限内に開発すること」 がテーマだったのだけど、この本もテーマはだいたい同じです。 しかし、マッカーシーは宗教家だったのかも知れません。 彼の主張は血と汗とアートの自己啓発セミナーみたいになってしまって、 いまやマッカーシーさんは TeamworX というワークショップの 主宰者なのですが、 マコーネルはあくまでも科学者&技術者として、同じ問いに 真面目に答えようとします。
そう、真面目過ぎる、というのが「ラピッド・デベロップメント」の
面白さであり、欠点かも知れません。
しかし、面白くない現実をきちんと直視して合理的に対処していくことで、
本当に面白い仕事をしていこう、という「オトナの本」であるとも言えます。
この本の紹介するストラテジーの多くが「計画すること」の大切さを 説いています。
そう、すべてを計画すること。
ソフトウェアの開発を混沌に導いているのは計画がないからである。
もちろん、リスクも試行錯誤もある。だとしたら、リスクや試行錯誤を 計画に織り込むような、そんな計画も可能なのではないか。 「ソフトウェアの開発期間」そのものの定義が困難なのだとしたら、 開発期間そのものの定義を段階的に行う ような、そんな計画も可能なのだ。
「ラピッド・デベロップメント」は、整理された基本思想から
出発して、断片的にあちこちで語られていたストラテジーを
体系的に空間上にマッピングし、そのトレードオフを明確にする。
その一方で、ソフトウェア開発における「迷信」や「幻想」を
打破するための議論やハードデータの提示も怠らない。
これらをじっくり読みたければ前半をじっくり読み、
チャート式に読みたければ後半を拾い読みし、必要に応じて
前半の各章に戻って読めるようになっている。
この本の面白い点を個人的にもうひとつ挙げると、
各ストラテジーの解説の中で、
熟練者は何をすべきか、未経験者に何をさせてはいけないか、
といった情報が、比較的明確に書かれている。
これだけでも、なんか役立ちそうな気がするよね。。