eXtreme Programming実践レポート―XPプロジェクトを実現した手法と軌跡

eXtreme Programming実践レポート―XPプロジェクトを実現した手法と軌跡 (OOP Foundations)

初めて XP という文字をネットで目にしたときは、「Windows XP のことか?」と
思ったものだ。開発手法という文脈では、XP は eXtreme Programmg の略である。


本書によれば、XP のゴールとは、

  1. ユーザーが望むものを、楽しくそしてしっかりと作り上げること

XPの特徴は、

  1. チームが何をするかではなく何を提供するか
  2. やる気、人と人の関わりといった人間自身に光を当てたこと
  3. 鉛筆・紙・ホワイトボードと会話といったごくありきたりの道具でできる Light weight な方法

XPの魅力は、

  1. 自分のプログラムがはじめて動いたときの感動や楽しさ
  2. チームで一丸となって変化に対応し解決していくプロジェクトの楽しさ
  3. ユーザが欲しいものを手に入れることができたときの喜び

とのことである。結構な話である。


これを具体的に行うための「13のプラクティス」がある。

  1. 全員同席
  2. 計画ゲーム
  3. ユーザテスト
  4. 短期リリース
  5. シンプル設計
  6. ペアプログラミング
  7. テスト駆動開発
  8. 設計改善(リファクタリング
  9. 常時結合
  10. コード共同所有
  11. コーディング規約
  12. メタファ
  13. 最適ペース


ペアプログラミング」は初めて聞いたときには、
「ええー、プログラミングなんて一人で考えるのさえたいへんなのに、
他の人と一緒になんて気が散ってできないよ」と思ったのだが、
よくよく考えてみると、複数人で行っているプロジェクトの成果を
共有するにはいい方法かもしれない。新人と組めば、新人の
教育にはもってこいだ。


テスト駆動開発」は、耳が痛い。僕は、あまり単体テスト
組織的にやったことがなかったからだ。テストケースが
テストフレームワーク(JUnit 等)として実装されて、
プログラム的に実行できるなら、テストに手間もかからないだろう。
テストフレームワークを作ってから、コーディングに入る
という「テストファースト」の考え方は、慣れないうちは
苦労かもしれないが、慣れたら非常にスムーズに開発できる
ようになるのではないか?


"Embrace Change" という XP の中心思想は素敵だ。
ウォータフォール型開発にどうしてもなじめなかった
僕としては、救いの神のような気がする。