XP (エクストリーム プログラミング)

XP

ここでは,XP (eXtreme Programming: エクストリーム プログラミング) に関する情報をご紹介します.
XP 以外のアジャイル開発プロセスについてもここで扱います.
関連する書籍や Web サイトもご紹介します.


凡例:
本頁内 : 頁内へのリンク
別頁 : サイト内の別頁へのリンク
外頁 : 外部サイトへのリンク

XP (エクストリーム プログラミング) について

・2001/04/03

XP (エクストリーム プログラミング) は,RUP (Rational Unified Process) 等と同様,ソフトウェア開発プロセスです.

「ユースケース」というものを使った分析を重視する RUP と異なり,もっとずっとライトなソフトウェア開発手法として,最近脚光を浴びつつあります.

ここでは,XP (エクストリーム プログラミング) に関する情報をご紹介したいと思います.


eXtremers (XP の提唱者達)

・2001/04/03

XP の提唱者は,ケント・ベックやマーチン・ファウラー等です.

XP の概要を知るには,ケント・ベックやマーチン・ファウラーの書いた文献を読むのが一番です.

例えば,ケント・ベックは “Extreme Programming Explained” という題で XP の最初の入門書を書いていますが,これは日本語に訳されています.

・『XPエクストリームプログラミング入門』
監訳:長瀬嘉秀 訳:永田渉・飯塚麻理香 ISBN 4-89471-275-X
ピアソン・エデュケーション

マーチン・ファウラーは『アナリシス パターン』というオブジェクト指向技術の本でも有名な人ですが,XP 関連ではケント・ベックと共著の “Planning XP ” という著作が有ります.ライトな開発プロセスの提唱者として有名な人で,私も彼の話を聞く機会がありましたが,重装備な CASE ツールを使って RUP (Rational Unified Process) のような細かく定義された開発プロセスを行うことは余り好まないそうです.

ケント・ベックは,今月 19 日に初来日して東京で講演を行う予定で,この日に “Planning XP ” の邦訳版も発売に成ります (『XP エクストリーム・プログラミング実行計画 (邦題予定)』).
尚,この日までに「日本XPユーザグループ」 (日本に XP を広める趣旨で最近作られた団体) に入会しておくと,ケント・ベックを囲んだ懇親会にも出席出来ます.

・XPJUG 日本XPユーザグループ <http://www.xpjug.org/>


それから,マーチン・ファウラーの Web サイトでは,彼の著した本に関する話や彼の最新の主張を読むことが出来ます.

・Martin Fowler <http://www.martinfowler.com/> (英語)

これらの一部は日本語に訳されています.特に興味深いものをご紹介しておきます.

・新しいソフトウエア開発手法
<http://www03.u-page.so-net.ne.jp/dc4/tnaka/fowler/newMethodology_j.html>
・XP変奏曲
<http://www.objectclub.jp/community/XP-jp/xp_relate/xpvariations-j/>

ここでご紹介した文書もそうですが,彼等 eXtremers の文章は,他の多くの生真面目な技術書とは異なり,ユーモアにあふれています.そしてこれが XP という手法の性格を表わしていると思います.


日本における XP

・2001/04/03

アメリカでブームになっていると言われる XP ですが,日本での普及はまだまだのようです.
XP で提唱されている「12 のプラクティス」と呼ばれるものの中には,

等,日本では中々難しい (米国でも難しいそうですが) ものも含まれていますが,その所為もあるかも知れません.日本での普及のために一部をカスタマイズしようという動きもあるようです.

日本では,上でご紹介した「日本XPユーザグループ」の他,永和システムマネジメント (福井) の平鍋 健児さんが熱心に XP を推奨されています.

平鍋さんは,オブジェクト指向関連のお仕事をされていて,雑誌等にも記事を書かれています.XP に関しては,日本語メーリングリストの主宰をされている他,あちこちで講演等もされています.大変判りやすい講演をされる方です.
オブジェクト倶楽部 - XP-jp という Web サイトも運営されています.XP に関する様々な情報を得るには、先ずはここが便利かと思います.

極端なプログラミング

・2001/04/03

eXtreme Programming とは,「極端なプログラミング」という意味です.

等々,有用性のある事柄については,それを極端なまでに実践していく,ということです.XP には,このような「12 のプラクティス」と呼ばれるものがあり,個別に考えると実践は難しそうに思えるが,12 個を組み合わせることによってそれが可能に成る,としています.

ケント・ベック等 eXtremer 達は,この状態での開発が安定していて生産性の高いものだということを発見し,それに eXtreme Programming という名前を付けました.

新しいプラクティス

・2002/03/01

「長期間同じ遣り方を続けていたら,其れは XP ではない」と言われる XP だけあって,プラクティスも変化しているようです.
初めは,

当初の「12 のプラクティス」

とされていたものが,ケント・ベック自身によって「14 のプラクティス」と二つのプラクティスが追加されました.
追加されたのは, です.

更に最近の,Ron Jeffries のエクストリームプログラミングとは何か? (邦訳 平鍋健児氏) では,更に洗練されています. 用語がより一般的なものに変わっています.
個人的には,私が実践する時には「オープン ワークスペース (Open Workspace)」は (好きなので) 入れて行きたいなと考えております.

・2003/05/02

更に最近の,Roy W. Miller 氏による「エクストリーム・プログラミングの神秘を解く: 「XPの真髄」に立ち戻る」の「19 のプラクティス」を御紹介します.
プラクティス 補足
共同のプラクティス (Joint practices) 反復 (Iterations) 新規
共通の用語 (Common vocabulary) 以前の「メタファー」と対応
オープンな作業空間 (Open workspace)
回顧 (Retrospectives) 新規
開発者のプラクティス (Programmer practices) テスト主導型の開発 (Test-driven development) 以前の「テストファースト開発」と対応
ペア・プログラミング (Pair programming)
リファクタリング (Refactoring)
集団的な所有権 (Collective ownership) 以前の「コードの共同所有」と対応
継続的インテグレーション (Continuous integration)
YAGNI (You Aren't Going to Need It!) 以前の「シンプルなデザイン」と対応
管理者のプラクティス (Management practices) 責任の受け入れ (Accepted responsibility) 新規
援護 (Air cover) 新規
年に4回のレビュー (Quarterly review) 新規
ミラー (Mirror) 新規
持続可能なペース (Sustainable pace)
顧客のプラクティス (Customer practices) ストーリー伝達 (Story telling) 新規
リリース計画 (Release planning) 以前の「計画ゲーム」と対応
受け入れテスト (Acceptance testing) 以前の「顧客テスト」と対応
頻繁なリリース (Frequent releases) 以前の「小さなリリース」と対応

XP 関連の雑誌の記事

・2002/04/22

雑誌の XP 関連の記事で必読と思われるものを御紹介します.

先ずは,日本の XP (エクストリーム・プログラミング) の先駆け的存在の平鍋 健児 氏が過去に雑誌に書かれた記事を御紹介しておきます.

次に,独自アルゴリズムの圧縮ツール "DeepFreezer" の作者の山崎敏さんの記事を御紹介します.

「コードデザイン最前線」 Vol.11/12 「V字モデル」 - Software Design誌 2003/3, 4月号記事

『ザ・ゴール』みたいで面白いです.必読だと思います.

XP の4つの価値と15の原理

・2003/11/11

上で XP のプラクティスをあげましたが,XP には「4つの価値」と「15の原理」というものもあります.こちらについてもあげておきたいと思います.

4つの価値
15の原理

MF Bliki: PrinciplesOfXP 及びその日本語訳 bliki_ja - XP原理 より

『Extreme Programming Explained: Embrace Change, 2nd Edition』

・2004/12/15

ケント ベックの『XPエクストリームプログラミング入門』の第二版が出ました (英語版)。


『Extreme Programming Explained: Embrace Change, 2nd Edition』
http://www.awprofessional.com/title/0321278658
著者 Kent Beck、Cynthia Andres
発行日 2004/11/16

中にはケント ベックの手描きのマインドマップがあるようです。
http://www.threeriversinstitute.org/Extreme%20Programming%20in%20Pictures.htm

出だしはこんな感じ (サンプル ページ)。
http://www.awprofessional.com/content/images/0321278658/samplechapter/beck_ch01.pdf


目次から新しくなった価値と原則とプラクティス (実践) をあげてみます。

Values (価値) (5個)
Communication コミュニケーション
Simplicity シンプルさ
Feedback フィードバック
Courage 勇気
Respect 敬意

Principles (原則) (14個)
Humanity 人間性
Economics 経済性
Mutual Benefit 双方の利益
Self-Similarity 自己相似性
Improvement 改善
Diversity 多様性
Reflection 反映
Flow 流れ
Opportunity 好機
Redundancy 余剰性
Failure 失敗
Quality 品質
Baby Steps よちよち歩きのような小さな一歩一歩
Accepted Responsibility 責任の受け入れ

Practices (実践)

Primary Practices (基礎プラクティス) (13個)
Sit Together 同席
Whole Team チーム全体
Informative Workspace 「見える化」ワークスペース
Energized Work 活気づけられた仕事
Pair Programming ペア プログラミング
Stories ストーリー
Weekly Cycle 一週間周期
Quarterly Cycle 年四回周期
Slack ゆとり
Ten-Minute Build 10分ビルド
Continuous Integration 継続的インテグレーション
Test-First Programming テスト ファースト プログラミング
Incremental Design インクリメンタルな設計

Corollary Practices (周辺プラクティス) (11個)
Real Customer Involvement 実質的な顧客の参加
Incremental Deployment インクリメンタルな配置
Team Continuity チームの継続
Shrinking Teams チームの縮小
Root-Cause Analysis 根本原因の分析
Shared Code 共有されたコード
Code and Tests コードとテスト
Single Code Base 単一のコード
Daily Deployment 日々の配置
Negotiated Scope Contract 協議済みスコープによる契約
Pay-Per-Use 使用量による支払い

XP のアンチパターン

・2003/03/05

Strict XP
現象 とにかく厳密に本に書いてある通りにやらなければ.
先ずはきっちりとしたマニュアルを整備しよう.
ツッコミ それって XP?
XP-The Sum of All Books
現象 白本も読んだし,赤本も読んだし,その他の XP の本は全部用意した.
もう XP は十分判った.
ツッコミ で,いつ始めるの?
Top-Down XP
現象 なんか,次のプロジェクトは XP とかいうのでやることに決まったらしいぞ.
なんだ? XP って? 新しいクロレッツか?
ツッコミ
XP-Without Documents
現象 とにかくもうドキュメントを書かなくて良いんだ.XP って好きかも.
ツッコミ それじゃ今までと同じじゃん.
XP-Ignorant About Cusotmer
現象 XP って中々メリットを判ってもらえないよね.所詮開発側の都合だしね.開発サイドだけでこっそりやるしかないか.
ツッコミ 確かに難しい… 一番肝心なところなのに.

募集中…(謎)