XPと言ってもXMLパーサのことではなく、もちろんWindowsやMS-Officeのことなんかでは全然ない。近頃開発関係者の間で話題になっているらしい、エクストリーム・プログラミング(Extreme Programming)のことである。この本では「究極の」プログラミングと訳されているが、辞書によると「extreme」は「極端な」「過激な」という意味の方が強いようでもある。
ともあれ、この本を読む限り、確かにXPはなかなかに過激なプログラミングスタイルの提案であるようだ。古くから培われ、今も大方のコンセンサスを得ている「要求分析と文書化を重視し、手戻りを極力避ける」という指針に真っ向から対立し、「コードを中心とし、どんどん書いてどんどん変更する」という指針を打ち出しているのだ。ただその一方で、こうしたノウハウは新しいものではなく、むしろかなり古い知恵を究極まで押し進めたものであるとも言っている。なるほど、これは面白い。
私が理解した限りでは、XPの最も肝要な部分は、「過去に書いたものをどんどん捨て、どんどん変更する」ことと、「常に実際にプログラムを動かし、多くのテストによって動作を確認しながら開発を進める」ことであるようだ。これは、分析と設計の段階での完成度を重視し、実際にコーディングまで行ったものにはなるべく変更が起きないようにするという、旧来の指針とは全く逆の発想である。これはどうやら、プロジェクトの初期段階でユーザの要求を細部まで明確化することは非常に困難であり、しかもそれは時とともに変化しがちなものであるから、初期段階で分析を完成することは不可能(あるいは無駄)であるという経験則に立脚した考えのようだ。そう言われてみれば、確かにそうかなと思うところはある。
もう一つXPで特徴的なのは、文書よりも直接対話とコードそのものによるコミュニケーションを重視するという指針である。もちろん記録としての文書化が不要になるとは思えないが、開発過程において「この場合にこうなっちゃうよ」と文章で書くよりも、それを示すコードを書いて実行して見せるべし、と言われれば、なるほどと頷くしかない。また、XPでは実際のコーディングは二人一組のペアが一台のマシンを使って行うことを推奨している。これもかなり過激な発想だと思える。通常、プログラミングは自分一人が神のように(細部だけでも)全てを決定し創り出すことが出来るところが大きな快感だという向きがあるし、実際にそうしているところを他人に見られるのは非常に恥ずかしいと感じることが多いと思われるからだ。しかし、XPにおいては全てのコードは共同所有され、短いサイクルでチームの他のメンバの目に触れることになる。仮にそうでなかったとしても、チーム開発であるからには自分の書いたコードが他のメンバの目に触れないというわけには行かない。他人の目に触れることを前提に書かれたコードはそうでない場合よりも大抵の場合良いものになるし、コードを複数人数でレビューすることは、ミスの早期発見やコード全体の質的向上につながる。だったら、最初から複数人数でコードを書いた方が合理的かつ効率的に質の高いコードが出来上がるのじゃないか、というのがこの「ペアプログラミング」の考え方なのだろうと私は理解している。実際に自分がそう出来るかという問題はとりあえず横へ置いて、確かにそれはそうかもしれないと、やはりこれもまた頷くしかない。
そんなわけで、面白くもあり、大いに納得させられもする指針が目白押しのXPだが、個人的にやや疑問に思うのは、メンバ各員がかなり高いスキルと意欲、そして人間としてのコミュニケーション能力を持っていないとこの指針はうまく働かないように思えるところだ。考えてみれば、分析と設計、そして文書化を重視する旧来の指針は、なるべく早い段階でカッチリした枠組みを作り、「あとは誰が書いても同じ」状態にすることによって、プログラマ各人のスキルに頼るというリスクを避けることを大きな目標としているのではないかと思う。これに対してXPではプログラマ各人の自主性を極限まで尊重し、その相互作用による質的向上を期待するという考え方になっている。「それはちょっと考えが甘いんじゃ…」という気がしないでもないのだが、そもそもXPは10人程度までの小規模なチームにおける開発スタイルの指針だということだし、これは文字通りの「少数精鋭」を想定しているのかな、とも思ったりする。「少数精鋭チームにおいて(のみ)最も効果的な開発スタイル」というものがあっても、それは別におかしくはないだろうし。
一つ、この本に対して個人的に大いに不満なのは、どうにも翻訳の質が低いことだ。
この本の文章は、最近のコンピュータ関連書籍における流行に倣ってか、非常に気さくな調子で書かれている。そして、そういう場合にありがちなこととして、ユーモアを交えた含みのある表現が多用されている。それが、直訳に近い安易な翻訳で日本語の文章になっているので、その「含み」がどこを指しているのか、何を表しているのかがぼやけてしまって、非常に意味を汲み取りにくくなってしまっている。これは「含み」のことだけではなく、文章のつながりやリズムも日本語として不適切な仕上がりになっているところが多く、やはり英語をそのまんま訳したんだろうな、と思わずにはいられない。もしかすると、原書の文章からして意味がぼけていてリズムの悪いものだったという可能性もあるが、もしそうだったとしたら翻訳がそれを更に悪化させていると思えるし、そうでなかったとしたらせっかくの「気の利いた文章」を翻訳が台無しにしていると思わざるをえない。
監訳者のあとがきによると、XPに関する他の本も訳しているとのことなので、XP自体にはかなり興味を引かれただけに、その本の出来がかなり心配である。