Venkat Subramaniam, Andy Hunt『アジャイルプラクティス 達人プログラマに学ぶ現場開発者の習慣』

アジャイルプラクティス 達人プログラマに学ぶ現場開発者の習慣

アジャイルプラクティス 達人プログラマに学ぶ現場開発者の習慣

Pragmatic Bookshelfの1冊なんだけど、原書は読んでも買ってもいなかったので躊躇なく日本語版を買ったよ。角谷さん木下さんが監訳をしているというそれだけでオーム社の本気が伝わってくる本です。なんとか年内に読んだ。
内容はみんなもう知ってると思うけど、アジャイルな開発者の振舞いや習慣について解説した本です。いまとなっては「アジャイル」という言葉はその出自を無視して一人歩きをするようになってしまったので、不安になった人は本書を読んでもう一度確認しなおせば良いと思う。
本書はAndyが共著者であることから『達人プログラマー』の続編と言われることもあるらしい。たしかにそういう側面はあるのだが、一読した印象では本書の位置付けはそこではなく「気分」を伝えることにあるらしい。実際、各章では最後に「こんな気分」という節が挿入されて、著者らが追及するこんなふうになていたらいいという状態が描写されてます。どっちかいうとPragmatic Programmerよりも『Ship It!』に近い感じ。『達人』の続編だと思ってあれくらい具体的な指示を期待していると肩すかしを喰らいます。
そのへんは、まあ啓蒙書だと思って読めばいいのだが、本書では啓蒙書らしく全体に渡って悪魔と天使が出てきて悪魔の囁きをしりぞけつつ天使の助言に耳を傾ける、という記述をしています。が、この悪魔が極端すぎて現実的でないところが弱冠気にかかる。たとえばこんな感じ:

「どんどん継承階層を深くしようぜ。別のクラスの機能が欲しけりゃ、迷わず継承! 新しいクラスが問題を引き起こすかも? 気にすんな。呼び出し側でなんとかできるって。そんなの向こうの問題であって、こっちの問題じゃねえもん」(p.129)

私の中の悪魔はこうは言わない。この例だとこんな感じに迫ってくる:

「ここで継承するなんてひどい設計だと思うだろ? 無理もないよ。でも今お前はとにかくこのコードを動かさなきゃいけないんだよ。新しいクラスが問題を引き起こすかも知れないけど、事情を話してなんとか対応してもらうしかないよ」

あるいはユニットテストについて、本書の悪魔はこういう:

ユニットテストなんてやってる時間も余裕もないだろ。そんなの書いてたってプロジェクト遅らせるだけだっての。お前は腕利きのプログラマなんだぜ。そんなお前にユニットテストなんて時間の無駄さ。ただでさえ切羽詰ってるんだぜ」(p.81)

けれど私の悪魔はこう:

ユニットテストが有用なことはわかってるよ。いろいろ助かってるしな。でも今はここをちょっと修正するだけなんだよ。それで全部丸くおさまるからそこだけちゃちゃっとやっちまえよ。不安だったらあとで追っかけてテスト書いとけばいいんだよ」

要するに本書の悪魔は本当は存在しない仮想敵みたいになってて、現実味があまりない。もちろん説明のためにあえて極端なこと言わせてるんだろうけど。ただ、そんなときでも天使の助言は共通だ。だから誰もが自分の中の悪魔を想像して、その上で天使の言うことを聞いて日々を過ごして行くよう努力しなきゃいけない。
はっきり言って天使の助言はわかりきったことばかりだ。曰く「自動化されたユニットテストを習慣にしなさい」またあるとき曰く「いついかなる時でもプロジェクトをリリース可能な状態にしておくのです」などなど。わかってるよ! とか叫びたくなるし所詮はキレイごとだよって現実の悪魔に隙をつかれそうになる。でも、わかりきったことだからこそ感覚が麻痺しないように常に意識し続けることが重要なわけで、本書が目標にする「気分」によって天使の助言を忘れないようになれることを切に願う。

あともうひとつ。この手の本で翻訳の日本語の適切さを疑わなくていいというのが、どんなに素晴らしいことかというのがよーく実感できました。他の技術書の翻訳では、流石に白いものをクロというような訳はそんなに多くないとしても、白が黄色くらいになっちゃってる例は枚挙に暇がない。本書の場合はたまたま監訳者が二人とも顔見知りで本書の内容にめちゃ精通しているのを知っているという事情もあって、とても安心して読むことが出来ました。