あえて点数を低めに
★★☆☆☆
対象範囲は非常に多岐にわたる内容の本です。その割に内容の薄い本です。
まず、コーディングについてコーディングスタイルやコメントの書き方、エラーの処理についてなど実践的な内容がきます。
具体的かつ詳細に書かれていて、即現場で実践できるくらいに落とし込んで書かれています。
次に、ツールやテスト、性能、セキュリティ、リスク管理などですが、テスト以外に内容は一般的に言われているような概要を、それぞれ 20 ページくらいずつ書いてあり、非常に薄い内容になっています。
ただ、テストについては現場で使えるくらいの内容になっています。
チームワークやソース管理、構成管理、アーキテクチャ、設計などなど、広く浅く外観をなぞるような程度になっています。
点数の低い理由は、内容の薄い章が 2/3 程度あること、また、文章が非常に冗長で約 700 ページですが、半分以下の 300 ページくらいが本文で、残りの 400 ページは作者の余計な独り言になっています。
たとえば「ソフトウェア業界には、変わり者や社会不適合者が生息し、風変わりな集団を形成しています。彼らが、いわゆるコードモンキーです。どんな、、、、」という形の文章が半分以上を占めます。
ただし、書かれている内容に間違いは無いので、ソフトウェア開発について全般を俯瞰する読み物としては今までになかったものだと思います。
時間があって暇な人、速読ができる人は読んでみても良いかもしれません。
個人としてではなくチームとしてあるべき姿が分かる一冊
★★★★★
第一部ぐらいまでを読んでいる間は「Code Completeと内容がカブるなあ」と感じていましたが、後半に進むにつれて方向性が違ってきました。
Code Completeは個人のプログラミング技術に重点を置いている感じですが、こちらは開発チームが持つべき文化やソフトウェア開発という仕事の本質など、会社(「ソフトウェアファクトリ」と作者は呼んでいます)で働く開発者をターゲットにしている印象を強く持ちました。
なお、後半に進むほどアーキテクチャや開発プロセスなどコーディングから離れた「広義のソフトウェア開発」へ話題が移っていく章構成になっています。
以前から「開発者は全員Code Completeを読むべき!」と考えていましたが、こちらも是非読んでほしいです。
この本を読んで、自分たちはどれくらい開発チームとして成熟した文化を持っているのかを考えてほしいと思います。
ちなみに個人的には第16章のコードモンキー(開発者のステレオタイプ分類)が一番ツボでした。また、表紙カバーにオマケがついてあるのも楽しいですね。
コード・コンプリートとどちらを採るか、、、
★★★★☆
エクセレントなコードを書くことのみでなく、ソフトウェア開発全般に関する
基礎知識、ベストプラクティス、著者の洞察や経験、そして特に強調されているのが
開発者としてあるべき姿勢です。
コード・コンプリートと同じ系統の書籍と考えて良いと思いますが、
コード・コンプリートがデータや論文に裏付けされたより教科書的であるのに対し、
こちらはどちらかと言うと著者の経験に基づいたもので、より身近に感じられます。
内容はどれも的確でユーモアと機知に富んでいますが、少し抽象的な部分もあり、
そこらへんはコードコンプリートに軍配が上がります。
(例えば、題名に似合わずコードがほとんど掲載されていない、など)
初心者には良い教師として、中級エンジニアにも日々の自分の作業に対する戒めや、
その作業に対する自分の哲学を磨く一歩となるはずです。
厚いですが、、、初心者や周りのコードモンキー達(本書に出てきます)には
読ませたい書籍です。
開発者なら読むべき
★★★★★
プログラマ限定のようなあらすじだが、
内容的としては開発全般に言えることで、
教科書のような堅苦しい内容ではなく現実離れしてないことがいい
暗黙知が形になった本
★★★★☆
ソフトウェアの開発について、コードの書き方からチーム作業まで書かれており、タイトル通り今まで職人芸だと思われていたことが文書化された本だと思います。
この本には現場のことが書かれています。やるべきことと、やってはいけないことが書かれており、現場の人間が読むと「そうそう」と思ったり、「ごめんなさい、わかってるのだけどできてません」と思ったり:-)すると思います。