平鍋です.お待たせしました.
4/19 に,お台場の TFT(東京ファッションタウン)で行われた
Kent Beck の Extreme Programming セミナーに参加しました.
以下,報告です.(長文)
文中,特に質疑応答のところは覚えているものだけ書きました.
みなさんのフォローをお願いします.
======
名称: Kent Beck エクストリームプログラミングセミナー
日時: 2001/4/19
場所: お台場 TFT
講師: Kent Beck
テーマ: XP(エクストリームプログラミング)
プログラムは,
11:00-12:30 テーラリズム vs. ソフトウェア開発
14:00-15:30 XP での計画
16:00-17:30 テストファースト(実演)
17:30-18:00 質疑応答
19:30-21:00 XPユーザーグループ懇親会
です.
■1. テーラリズム vs. ソフトウェア開発
Frederick W. Taylor に始まる,工場の生産管理手法の考え方は,
システムが先にあり,人間はそこに役割としてあてがわれる部品
である.人間は,stupid で lazy で greedy だ,という仮定に基
づいて管理される.
ソフトウェア開発にこの考え方が残っている.XP は conversation を
基礎におく新たなパラダイムを提出する.
という内容です.Taylor については,EC本の参考文献にも出て来
ますね.
今回,14のプラクティスが紹介されました.追加の2つは,
・Open Workspace
・Daily Schema Migration
です.Open Workspace は facilities strategy として知られてい
たもので,会話のためのオープンスペースが必要というものです.
Daily Schema Migration は正確には聞き取れませんでしたが,
データベーススキーマの移行を毎日に行え,という風に聞こえまし
た.データベーススキーマは,システム全体に影響を与えることが
あるので,スキーマ変更はあまり頻繁にリリースしないというやり
方ではなく,毎日最新のスキーマを使うようにせよ,ということで
しょうか.
また,プラクティスは単なるスターティングポイントである,とい
うことを強調していました.あなたのプロジェクトで XP を始めて
6ヶ月後に,同じプラクティスをそのまま実行していたら,それは
XPではない,と.
矢崎さんが,Simplicity について質問していました.
Q: 例えば,Person クラスに電話番号を String の属性として持た
せるのと,Telephone クラスを別に作るのとはどちらがよいのか.
A: まずテストを考える.そしてそのテストをできるだけ簡単に実
装する.おそらく,最初は String がシンプルだ.
■2. XP での計画
XP での計画ゲームの体験です.tea maker の絵を書くのが実装.
顧客4名,開発者4名でチームを組み,ストーリーカードに顧客側が
書いて,開発側がそれを見積り,実装する演習.
要求としては,朝おきたら tea が出来ている,とかリモコンで操
作できる,とか10個同時に入れられるとか.
あるチームが書いた,Kent 型小便小僧の実装を Kent はえら
く気に入ったらしく,OHP で写していました.
■3. テストファースト(実演)
多国籍通貨 Money クラスをテストファーストで実装する実演.
Kent は Visual Age for Java を使っていました.
まず,紙に,こんな機能がほしい,というのをテストの形式で書き
出します.
・100$ + 200 yen (addition)
・1$ -> 100 yen (conversion)
でも,まず,当然の機能として,
・100$ + 200$ == 300$
がいるよね,と言って,
void testSimpleAddition() [
Money one = new Money(100, "USD");
Money two = new Money(200, "USD");
assertEquals(one.add(two), new Money(300, "USD"));
}
というテストをコーディング.コンパイルして失敗.
当然ですね.Money がないもの.では,Money を作ります,
.... というお馴染みのストーリーです.
Kent は,すごくタイピングが速いです.
この時点でかなり疲れており,立ちながらの実演にも関わらず,
ほとんどミスせず,バックスペースを打たずに1行を一気に書きます.
■4. 質疑応答
休み時間中に観客が紙に書いた質問をリストにし,挙手によって優
先順位を決め,それに従って話をしました.
前のテストファーストの実演でもそうですが,紙に項目を書き出
し,終ったものを線を引いて消して行く,というやり方が「達成
感」があって好きだと言っていたのが印象的でした.
・ドキュメント
ドキュメントが必要とされるかどうかは,純粋にビジネス側のディ
シジョンである.よって,必要なドキュメントを書くというストー
リーを書いてもらい,それを通常どおり開発が見積もる.その見積
もりによって,ビジネス側が,新しい機能とドキュメントのどちら
が大切かを判断する.
・消極的なパートナーとのペアプロ
消極的な人とペアになった場合,私は彼よりも消極的になれる.
腕を組んで何も言い出さない,どうしようか,と聞かれて,どうし
ようね,と答える.大丈夫,消極的でもきっと何かやりはじめる.
・エディタなどのこだわりとペアプロ
エディタに拘る人には,そのエディタへの拘りとチームの成功と,
どちらが大切か,という問に答えて欲しい.
・CMM
CMM と XP は,高品質のソフトウェアを作るチーム,とう意味で似
ているが,根本の姿勢で全く違う.すなわち,CMM はプロセス
ファースト.XP は人間ファースト.
根本の姿勢ですが,Kent は「attitude」という言葉を使いまし
た.attitude はこの日何度も聞かれたキーワードで,XP は12のプ
ラクティスではなくて,attitude なのだ,と言っていました.
・分散開発
地理的に分散した開発をどうするか,という問を問う前に,本当に
分散開発が必要か,という問をした方がよい.分散開発は難しい
し,XP は分散開発用に設計されていない.
・その他,いっぱいありました,どなたか覚えているものをフォ
ローしてください.
■5. XPユーザーグループ懇親会
河合さんの司会で懇親会がはじまりました.奥さんも来られていま
した.Kent が乾杯の音頭です.
わたしはまだ日本語を3つしか知りません.そのうち一つがこれで
す.といって乾杯しました.
私がした公開質問は,家庭を幸せに保つためのプラクティスは?
です.答えは,ベッドルームにスクリーン系のもの(テレビ,コン
ピュータなど)を置かないこと.それからゲームボーイ.と言って
いました.
飲み会の時に,14のプラクティスの話をしたら,どれか別のプラク
ティスを削除すべきだね,Coding Standards は自明だから省く
か...と言っていました.
一番うれしかったのは,平鍋が UML フォーラムの時の資料を渡し
て XP の日本での動向を説明した際,平鍋の絵を見て,おー,この
絵は覚えているよ,と言ってくれたこと.絵には,人に意図を伝え
る大きなパワーがある,と.XP-jp は 1,000 人程度になりまし
た.と言ったら,それはすごい.本家は,25,000 だから,1,000 は
大したものだ,と言ってくれました.
あと,子供は5人で,女男女男女だそうです.産み分けの方法があ
るか,と聞いたところ,it's like ... と言ってコインを上にな
げ,手の甲に落すジェスチャーをしていました.長女は16歳で,数
学と物理が得意でプログラミングも始めた.しかし,彼女は,女優
になりたいと言っている! ,んですって.
懇親会の後,河合さんと平鍋を含む 10 人程度で飲みに行きまし
た.11:30 タイムリミットで帰られた方,飲み会は 2:00 ころまで
続きました.本当は朝までの予定が,途中,平鍋が眠くて仕方がな
くなり,次の日に仕事があった方,ごめんなさい.
特に小林さん,タクシー代がない,とおっしゃっていたのに大丈夫
でしたか.それから,河合さん,タクシー代足りなくてすみませ
ん.タクシーを降りた後,やまのさんとも蒲田駅でばったりあいま
した.その後,どうされたでしょうか...
以上です.