《《=[前の記事に] 《=[前ページ]       [次ページ]=》 [次の記事に]=》》


XPの独善的解釈

 

オープンソースビジネス部  西中 芳幸

(nisinaka@sra.co.jp
 
XPの解説記事を書くべく,まずは Kent Beckの"Extreme Programming Explained"(Addison-Wesley, 2000, ISBN 0-201-61641-6)を読んでみました.と言っても,大急ぎで斜めに読んだだけなので,Kent Beckの考えを忠実に理解できたかどうかははなはだ疑問です.最近ではXPに関する解説記事も雑誌等に掲載されているようですし,この際解説記事はやめることにして,私がこれまでに行ってきたプロジェクトに照らし合わせて,私なりの解釈をお伝えすることにしましょう. ちなみに"Extreme Programming Explained" の邦訳は「XPエクストリームプログラミング」(ピアソン・エデュケーション,長瀬嘉秀監訳,ISBN 4-89471-275-X)として刊行されています.

XPって何?

まず"XP(eXtreme Programming)"という言葉を初めて耳にする人のために,XPはソフトウェアの開発手法です.要するにソフトウェア開発プロジェクトの開始から終了までのプロセスを「手法」として規定しています.

XPという言葉自体は最近流行り始めた言葉ですが,内容そのものはそれほど斬新なわけではありません.むしろ日常的に行われていること,行うべきであることを,XPという枠組みで明文化したものと言えるでしょう.Kent Beck自身も"Extreme Programming Explained"の中で"Most of the practices in XP are as old as programming.(XPにおける実践項目のほとんどが,プログラミングの歴史と同じくらい古いものである)"と述べています."Practice(実践項目)"については,後述します.

プログラマは人間だ

XPが当たり前の開発手法ならば,これほどまでに取り上げられるのは何故なのでしょうか?そ
 
の理由のひとつとして,XPが「人間性」を重視した開発手法であることが挙げられます.

プログラマは人間です.人間である以上,好き嫌いがあり,嫌なことはやりたくありません.誰しもテストの重要性は承知していますが,テストケースを洗い出し,テスト仕様書を作成し,テストプログラムを書き,テスト結果のレポートを作成する… できればこんな作業はしたくありません.でも,誰しもメソッドや関数を書いたら,それが正しいかどうか確認するために,まずは実際に数行のテストプログラムを書いて動かしてみますよね.で,期待通りに動くと嬉しい,楽しい.じゃぁ,それをやりましょう.プログラミングをしながら,テストプログラムも書いちゃいましょう.期待通りに動くことが簡単に確認できるように,テストは自動化しましょう.ついでにメソッドの使い方が分かるような例題プログラムにしちゃいましょう.人間の本質に逆らわない,それがXPの原則のひとつになっています.

(ちなみに私が携わっている「じゅん」というクラスライブラリには,クラスごとに上記のような目的での例題プログラムが含まれています.特にJava版である「じゅん for Java」では,それらを実行するための環境が用意されており,計らずもそのクラス名がJun×××TestExamplesという命名規則で統一されています.テストの自動化も考慮して,各テストプログラムはbooleanの値を返すようにしてあるのですが,残念ながらまだ全自動化には至っていません)

また,プロジェクトのチームも人間の集まりです.XPでは,設計ドキュメントの充実よりもコミュニケーションの重要性を説いています.そしてつまらないミーティングを少しでも円滑にするために,ミーティングの場には「食べ物」を用意することが推奨されています.(特にFrigor Noir


《《=[前の記事に] 《=[前ページ]       [次ページ]=》 [次の記事に]=》》