闘うプログラマー

闘うプログラマー[新装版]

闘うプログラマー[新装版]

今年7月に出た新装版を読んだ。

私は、高校に入ったときに、たまたま触ったPC(FM-7ってやつ)でコンピュータ・プログラミングの世界を知り、ゲームを作ったり、グラフィックを操ったりできる楽しみを覚えた。間もなく中古のPCを買ってきて、BASICプログラミングに明け暮れた。授業中は紙にコードを書いてた。当時、高校生にとっては高かったMS QUICK-Cコンパイラもわざわざ購入し、MS-DOS上でC言語と各種ライブラリを活用して、ぐっと世界が広がったのを記憶している。このときの教科書にしていた、QUICK-C付属のプログラミングガイド、リファレンスマニュアルは、今でも捨てられずに持っている。その後、大学でゲーム作って売ったりしてたものの、そのままメーカーに就職し、手堅いコード書いてる。幸いなのは、学生時代のプログラミング知識をすぐに認めてもらって、新人のころからずっと仕事でOSを触らせてもらっていること。いろんな本を読んで見識広めたり、組織の中でのいろんなマネジメントの課題に向き合って仕事の関心は広がることも多いが、メインの開発業務でOSを扱ってることで、最新のソフトウェア・テクノロジーを肌で感じられる環境にはいる。日々進化するソフトウェアを追いかけ、その世界で生きている感覚を保っていられる。

思い切り話がそれているが、そんな経歴に少しでもリンクする人間には、トリハダものの本なのである。

脚色など一切せず、ただ淡々と、歴史的ソフトウェア「WindowsNT」の開発プロジェクトを「そのまま」描いている。
知る限り、「プログラマーとは?」を、最も生々しく語った本だろう。

本全体の70%以上は、WindowsNTの開発に関わった人のキャリアや、考え方、プライベートを淡々と描いている。これは、プログラマという職業が、数理のセンスや教育課程だけで成り立つものではなく、日ごろの生活も含めて、どのように成り立つかを語っている。ソフトウェアプロジェクト、特に、NTのようにゼロから巨大なものを創り上げる際には、非常に重要な要素だ。Linuxなどのオープンソースプロジェクトの成長を知るとわかるのだが、ソフトウェアは、あくまでも人が作っている。言ってしまえば、機械の制御文を書いてるわけだが、人が作っているから、予測が難しい。人が作ってるから、間違い(バグ)も作られる。この大規模プロジェクトも、成功の可否はを語るには、それを作った「人」を描くことが重要だ。

そして、プロジェクトの進行もリアルに描かれている。
この本を読んでても、本当に終盤になるまで、OSの形すら見えてこない。リソースは食うう、性能が出ない、そして、バグが出まくる。伸びに伸びる日程や、ショーでの発表や評価版リリースなどのマイルストーンごとに訪れる修羅場の表現は、痛々しいぐらい。終盤の『第10章ショーストッパー』では、文面が「バグ」という単語で埋め尽くされている。デスマーチを体験したことのあるプログラマなら、暗い気持ちになるぐらいの記述だ。

そんな修羅場でありながら、なぜプログラマーはプログラムを書くのか。そんな疑問を感じる方も多いかも知れない。
リリース直前に、それまで混沌としていたものが、どんどん繋がり始める。すべての機能が動き出し、プログラマー全員が緊張感を持って見守る中、テストをクリアしていく。そして、リリースを迎え、一気にフィードバックが帰ってくる。この瞬間はなんともいえない。本書においても、この瞬間がきっちり織り込まれている。その後のWindowsの基幹になったNTプロジェクトの「瞬間」は、まさに歴史的なものであったと思う。そこを文字にして伝えた本書は貴重かもしれない。

おまけ

どうでも良い話ですが、解説のページでWindows9x系がNTコアっぽいこと書いてるけど、これって間違えてるのでは?