エクストリームプログラミング(XP)
ソフトウェア開発手法の一つ。技術的な卓越性と、人と人との良好な関係の両方が成功に不可欠だとする考え方に立つ。
起源
- 1996年、Kent Beckがクライスラー社の給与計算プロジェクト「Chrysler Comprehensive Compensation System(C3)」のリーダーに就任。当時プロジェクトは給与計算を一件も処理できていない状態だった。
- システムはSmalltalkとGemStoneで構築。Beckは開発手法を洗練させ、1997年にはシステムが稼働し約1万人分の給与処理を開始した。
- 1999年10月、Beckは “Extreme Programming Explained” を出版し、XPを方法論として体系化。
- プロジェクト自体は、より大きな範囲の給与計算を扱う方向で継続する予定だったが、1999年に新規開発が停止した(2000年のDaimler-Benzによる買収に伴いプロジェクトが終了したとする記述もある)。
3人の創始者
1996年頃のXP創始者として、Kent Beck・Ward Cunningham・Ron Jeffriesの3人が位置づけられている。Ward CunninghamとBeckは以前からの頻繁な協力者で、開発手法の提案・実装を共同で進めた。XPの概念は、Cunninghamが発明したWiki「WikiWikiWeb」上での議論を通じて広まっていった。
5つの価値
- コミュニケーション — チーム内での共有認識構築
- シンプリシティ — “You aren’t gonna need it"(YAGNI)
- フィードバック — システム・顧客・チームからの多面的な反応
- 勇気 — リファクタリングや陳腐化したコードの削除を実行する勇気
- 尊重(Respect) — チームメンバー間の相互尊重(第2版で追加された価値)
12のプラクティス(4分類)
- 細かいスケールでのフィードバック:ペアプログラミング、計画ゲーム、テスト駆動開発
- 継続的プロセス:継続的インテグレーション、リファクタリング、小規模リリース
- 共有理解:コーディング標準、集団的コード所有権、シンプル設計
- プログラマの福利:持続可能なペース
技術的負債(Technical Debt)との関わり
Ward Cunninghamは自身が考案した技術的負債のメタファーについて、「リファクタリング可能な程度にきれいなコードであること」がXPの中核だと述べており、両者は密接に結びついている概念。