とあるプログラマーの技術ブログ
books

【読書記録】アジャイルソフトウェア開発の奥義 (1)

管理人
10:21 pm

ボブおじさんことロバート・C・マーチンによる名著の第2版。長らく積ん読状態だったが、少しずつ読み進めながら感想などつらつらと書いていこうと思う。

アジャイルソフトウェアとタイトルについているが、実際にはオブジェクト指向設計に関する話が大半を占めている。サブタイトルの『オブジェクト指向開発の真髄と匠の技』の方がズバリこの本を表しているように思う。
第1版も本棚に大事に並べてあるので裏表紙を確認してみたところ第1刷が2004年の7月、僕の所有本は第2刷で2004年8月となっていた。この凶器にもなりえそうな分厚い本が1ヶ月そこらで重刷になるのだから、当時のオブジェクト指向やアジャイル開発の盛り上がりっぷりも推し量れる。

僕自身はまだまだ駆け出しのエンジニアに毛が生えた程度だったが、オブジェクト指向に陶酔していて、オブジェクト指向の○○という会社に技術コンサルタントとして転職したのもその頃だった。当時の僕にとってこの本はまさに聖書といえるものだった。本当にたくさんのことを学ばせてもらった。
さて、それから15年以上経過して、改めて第2版を読んでみたときにどんな新しい発見があるのか、非常に楽しみにしている。

前置きは、ここまで。

第1章 アジャイルプラクティス

かの有名なアジャイルアライアンス宣言で示された4つの価値12の原則が紹介されている。12の原則は、20年経っても色褪せることなく、アジャイルなやり方でソフトウェアを開発して顧客へ価値を届けていくために重要なものである。
ここではその中から『高度な技術と優れた設計への配慮は、アジャイル性を高める』という原則を取り上げたい。以下に一部抜粋する。

開発スピードを保つ鍵は「品質」である。プロジェクトの進行を早くさせたければ、ソフトウェアを可能な限り無駄のないしっかりとしたものにしていかなければならない。そのために、チームメンバーは、常に高品質なコードを書くようにベストをつくすべきである。

第1章, p.10

t_wadaさんの有名な講演『スピードと質』を思い出すが、クリーンなコードを書くからこそ「速い」のだということが、この当時から言われていたのだなぁ。テストコードを省略したり、乱雑なコードを書くことで短期的にはスピードを出せても、そのわずかなリードはあっという間に覆される。納期のプレッシャーによってクソコードを書いてしまって、後でしっぺ返しをくらった経験は誰しもあるだろう。この原則は真実であると、経験的にわかっているはずだ。(それでもまた負けそうになるのが人間。その弱さを克服するツールとしてTDDがあると思うのだけど、脱線はやめておこう)。

第2章 エクストリームプログラミングの概要

2004年当時、アジャイルと言えばXPだった記憶がある。僕が初めて体験したアジャイルプロセスもXPだ。XPのプラクティスは、その名の通り極端な(Extreme)ものと考えられていた。2週間単位でリリースする? ペアになってプログラミング? テストを先に書く? そんなことできるのか、本当に効果があるのか、といった批判も少なからずあった。実際に全部を採り入れることは難しかったので、できるプラクティスから少しづつチャレンジする必要があった。

それが、2021年の現在では、XPに限らず当たり前に行われているのだから面白い。ペアどころか、モブでプログラミングするまでになっているのだから!

リファクタリングのプラクティスから一部を引用して2章の感想を締めくくろう。

リファクタリングは頻繁に行うべきものである。1日の終りでも、イテレーションの最後でも、リリースの最後でも、ましてやプロジェクトの最後でもなく、1時間おきか30分おき程度でするべきだ。頻繁にリファクタリングすることによって、コードをいつでもクリーンでシンプル、かつ、表現性豊かに保てる。

第2章, p.21

うーん、そのとおり!(できてないけど)

Books
%d人のブロガーが「いいね」をつけました。