アジャイル開発者の誇り

以前少し紹介した「アジャイルソフトウェア開発の奥義」を買ったので、少しずつ読んでいる。おもしろすぎ。


アジャイル開発者は、可能な限り適切かつクリーンに設計を保つことに身をささげている。
これは出まかせや一時的な公約などではない。
という一節を読んで、少し泣けた。

今まで、僕は、他の人のソースコードを見たり、プログラミングに対する考え方について話しを聞いたときに、「なんか違うんだよなあ」と不満を感じることがあった。こういう本を読んでおけば、そう感じたときに、何が違うのかきっちり説明できそうな気がする。

話しがそれるが、困ったことに、アジャイル開発をウォーターフォール開発の反対とだけ理解して、下のような開発組織をアジャイル開発と言っている人を見たことがある。

10人くらいのチームでソフトウェアを開発している。そこでは、それぞれの開発者が「反ウォーターフォール開発」を謳って、各自が自由気ままにコードを書いている。コードの中のクラス同士は密接にからみ合っており、機能拡張のたびに、ソースコードに「匠の技」が追加される。「リファクタリング」という言葉が、開発者によって軽々しく使用されていて、ソースコードの修正がいつ終わるともなく続く。一方で、テスト駆動やレビューなどは一切実践されない。また、各開発者は、デザインパターンの知識は持っているようだが、もっと基本的なこと、例えば、各コンポーネントの依存関係に関するセンスが欠落している。そして設計は循環参照だらけになっている。

これがアジャイルと考えられたとしたら、非常に悲しいことだ。上のような組織は、むしろアジャイル開発と逆の行為。そして、アジャイル開発者の覚悟とソースコードをクリーンに保つための献身的な姿勢を、侮辱する行為だと思う。

アジャイルソフトウェア開発の奥義

アジャイルソフトウェア開発の奥義