職業プログラマーの必読書

CODE COMPLETE 第2版 上 完全なプログラミングを目指して

CODE COMPLETE 第2版 上 完全なプログラミングを目指して

CODE COMPLETE 第2版 下 完全なプログラミングを目指して

CODE COMPLETE 第2版 下 完全なプログラミングを目指して

Code Complete 2nd Edition(Dv-Professional)

Code Complete 2nd Edition(Dv-Professional)

非常に評判の高いプログラミングのガイドブック。単にプログラミング言語の使い方という話ではなくて、開発プロセス、設計、テストも含めた職業プログラマー(SE)としての考え方、テクニック、心得が書かれています。ただし、話題の中心はソフトウェア開発で最も重要な構築(コーディング、デバッグ)に重点が置かれています。*1
残念ながら、日本のウォーターフォール型の開発プロジェクトでは、全体の工数の内で、コーディング、単体試験フェーズに対して極端に短い時間しか与えられないことが多く、重点の置き方がまったく違う*2のですが、本来構築フェーズで考えるべきことは非常にたくさんあり、最終的なシステムの品質に大きな影響があるということを知るべきでしょう。特に、上巻の前半部分はコーディングをしない上流SEの方にも是非読んでもらいたい内容だと思います。
6年前の本なので最新の軽量言語や開発技術、フレームワーククラウドなどの新しいプラットフォームに対する考慮が入っていないというところはありますが、基本的な内容なので大きく時代遅れになっているという部分は少ないと思います。近年のアジャイル開発万能論に対する反動からか、一般的な業務システムプログラマの視点からは、事前設計重視や建築のメタファーなど多少フォーマルなプロセスに傾倒しているところは個人的に多少気になりましたが、逆に日本の一般的な開発習慣からは受け入れられやすいでしょう。また、どちらかというとC++プログラマーとしての視点が中心のような気がします。
残念ながら日本語版は上下そろえると非常に高価なので、私は原書版しか所有していません。現在円高なので英語版なら3分の1の値段で購入できます。原書はMicrosoft Pressから出版されていますが、.NETなどMicrosoft系の開発環境に固有の本ではありません。また、.NETやJavaなどの具体的な環境におけるhow-to書ではありません。

*1:この本では構築は全体の工数の30%から80%を占めると書かれている。私の経験から得た感覚では日本のプロジェクトだと構築にこんなに工数をかけないことが多い。サービス残業プログラマーの低い単価による可能性もありますが。

*2:逆にあちらの国では要件定義なしでいきなりコードを書かせたがる上司の話があるなど、日本とは正反対の事情がうかがい知れてちょっと興味深い。