今日は、ほぼ一日中雪だったので、かなり本を読む時間をとれました。
- アジャイルプラクティス 達人プログラマに学ぶ現場開発者の習慣/Venkat Subramaniam
- ¥2,520
- Amazon.co.jp
この本を訳された角谷さん、木下さんとは結構長くお知り合いにさせていただいています。
いいお仕事されてます。お疲れさまでした。
「アジャイル」にとって必要なことを、いろんな側面で丁寧にイメージしやすい例を交えて、説明されています。まだ若いエンジニアには、アジャイルという言葉に限定されることなく、ソフトウェア開発で必要な「勘所」を漏らすことなく知ることができる、良書だと思います。
で、わたしがした「深読み」とは。
この本に書かれている、特に「開発工程」でのプラクティスのほとんどは、かなり昔から言われていた『ソフトウェア開発の掟』のようなことです。わたしも自分が現役プログラマだったときに、先輩に言われたことだったり、自分の失敗から得た教訓だったり、また「古典」と言われる書籍にも書いてあることだったり。
例えば、バージョン管理ソフトにコミットするときは、絶対にテストを通しておくとか、コンパイルの警告はエラーと同等に扱うなど、アジャイルではなくても身に覚えのあるこれらの教訓は、アジャイルという言葉が登場する前から開発現場の多くのひとたちは、自らの失敗からの教訓として伝えてきたことだと思います。
しかし、この本の凄さは、ある意味「言い尽くされたソフトウェア開発の常識」に対し、たったひとことも「昔から言われていることだが....。」なんて枕詞を使わないところです。
それはなぜか?
それがアジャイルだから。
わたしはここに、もう1つのアジャイルの価値を見た気がします。
どんなに昔から言われていることでも、価値のあるものは新鮮である。
アジャイルの代名詞的な表現として「変化を抱擁する」という言葉があります。全ては変化の中にあり、価値は変わっていく。それを受け入れながらソフトウェアを進化させることに価値がある。
それを逆説的に解釈するとすれば「価値のあるものであれば、その時間的経過に関係なく、価値を受け入れる」ということも、アジャイルなのではないでしょうか。
時間的経過や形式・掟ではなく、そこにある「価値」を大切にすること。
このような考え方をもとに、言い尽くされたようなことであっても、今の価値として表現するために、この本は最新の技術を例にとって様々なプラクティスを説明しています。
その説明方法も、具体的なソフトウェアの名称を挙げ、そのメニュー選択方法などの記載などもされています。それにより、現代のソフトウェア開発現場でプログラミングに従事しているエンジニアに、身近なことととして受け止められるようにしていると思います。古典が古典として表現されていては、自分のこととして受け入れづらいからではないでしょうか。
しかしこのような表記は、普通に考えれば、この本が数年経過すれば陳腐化してしまう要因になりかねないものだと受け取れます。これをわたしは、著者の意図的な記載なのではないか?と思いました。
どんな名著であっても、いつかは古典となってしまうのならば、どうか誰か次世代の賢者よ、この思いを別の本としてまた新鮮な形で世にだしてくれ、という著者のメッセージ。
わたしの好きな食べ物で表現してみます。
鯖の刺身は昔から「美味しい」ことは知られています。でも、獲れたてを食べないとあたります。
というあたりが、わたしの“深読み”です。
こんな考え方は、ベテランも見習うべきですね。いろんな意味で。