エクストリームプログラミング
2013年7月11日
エクストリームプログラミング(XP)は、主にケント・ベックによって開発されたソフトウェア開発手法です。XPは最初期のアジャイル手法の一つであり、実際、XPは1990年代後半から2000年代初頭にかけて、スクラムが主流になるまで、支配的なアジャイル手法でした。多くの人々(私も含めて)は、XPがアジャイル手法に注目を集めるきっかけとなった主要な触媒であり、アジャイル開発を始めるための基礎としてスクラムよりも優れていると考えています。
ケントは、1980年代後半から1990年代初頭にかけて、Smalltalkプロジェクトへのコンサルティングを通じてXPを開発しました。XPとして知られるようになった一連の実践は、C3プロジェクト(私がケントと一緒に働き、それについて学んだ場所)で初めてまとめて使用されました。「エクストリームプログラミング」という名前は、後にこのアプローチが最初にWikiWikiWebで非公式に説明され、その後一連の書籍で説明されるようになったものです。さまざまなチームがWikiWikiWebの説明を取り上げ、XPを自ら実装することで、その方法論を複製し、元の拠点以外でも使用できることを示しました。
ケントは、広範で抽象的な価値観から原則、具体的な実践へと進むアイデアの進展によってXPを説明しています。この進展は、他の多くの状況で適用するのに役立つと思います。XPは、継続的インテグレーション、リファクタリング、テスト駆動開発、アジャイル計画など、ソフトウェア開発で広く使用されるようになった多くの実践を普及させました。私は特に、技術的な実践と管理的な実践の組み合わせが好きです。これにより、アジャイルの習熟度のデリバリーゾーンに到達するのに適しています[1]。
ほとんどのXP実践者と同様に、チームがXPをやっているかどうかでチームを判断することはあまり役に立たないと思いますが、ほとんどのThoughtworksプロジェクトは、主にXPの影響を受けたスタイルで運営されていると言えるでしょう。
さらに読む
エクストリームプログラミングの決定的な説明は、ケントの白い本です。(XPの初期の実践者の多くが初版を使用してアプローチを学んだことに注意してください。かなり多くの違いがあります。)
白い本はXPの最良の定義ですが、最近では、ジェームズ・ショアのThe Art of Agile DevelopmentをXPアプローチを学ぶためのガイドとして推奨します。ショアは、XPに関するケントの著作よりも広い範囲を扱っていますが、彼の本はXPの主要な特徴にしっかりと基づいています。
注釈
1: スクラムは意図的に管理の実践のみを含んでおり、その結果、FlaccidScrumになりやすいという対比