Index: [Article Count Order] [Thread]

Date:  Wed, 25 Apr 2001 14:20:03 +0900
From:  Kenji Hiranabe <hiranabe@....jp>
Subject:  [XP-jp:01842] Kent Beck Seminar report
To:  extremeprogramming-jp@....jp
Message-Id:  <20010425142003N.hiranabe@....jp>
X-Mail-Count: 01842

平鍋です.お待たせしました.

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 ころまで
続きました.本当は朝までの予定が,途中,平鍋が眠くて仕方がな
くなり,次の日に仕事があった方,ごめんなさい.

特に小林さん,タクシー代がない,とおっしゃっていたのに大丈夫
でしたか.それから,河合さん,タクシー代足りなくてすみませ
ん.タクシーを降りた後,やまのさんとも蒲田駅でばったりあいま
した.その後,どうされたでしょうか...

以上です.