Technology
Technology
Innovation
Innovation
Strategy
Strategy

初版：2003/12/16

オブジェクト倶楽部クリスマスセミナー

ＸＰアンチプラクティスを探る〜XP事例紹介〜

1.プロジェクトについて
2.導入の苦労と工夫
3.プロジェクトを通して
4.ＸＰアンチプラクティスとはTechnology
Technology CenterCenter

TIS株式会社

http://www.tis.co.jp/

基盤技術センター

倉貫 義人
連絡先：kuranuki@sunny.tis.co.jp
Page: 1

Technology
Technology
Innovation
Innovation
Strategy
Strategy

１．プロジェクトについて

1.プロジェクトについて
2.導入の苦労と工夫
3.プロジェクトを通して■

プロジェクトの概要■

システムについて■開発体制とメンバー構成■

導入の理由と経緯

4.ＸＰアンチプラクティスとはTechnology
Technology Center
CenterPage: 2

Technology
Technology
Innovation
Innovation
Strategy
Strategy

１−１．プロジェクトの概要
プロジェクトの概要

・業種：先物取引業 （金融系）
・期間：第１次開発⇒５ヶ月 ／ 第２次開発⇒４ヶ月
システムの概要
・先物取引業での注文管理と売買執行のシステム。
・各支店の端末から入力された注文情報の、取引所への取次ぎと結果の通知が主な処理。
・“システム売買”と“板寄せ”というサブシステムから構成される。
システム化の目的
・東京工業品取引所システムの全面改変に対応する。
・注文データの入力から執行までのリードタイム短縮を実現する。
・企業データの一元管理による運用の効率化を実現する。
・将来のWebアプリケーション対応の為の拡張性を準備する。
・リアルタイム応答を実現し、エンドユーザの機会損失を減らす。
Technology
Technology Center
CenterPage: 3

Technology
Technology
Innovation
Innovation
Strategy
Strategy

１−２．システムについて
システム概念図
通信サーバ

取引所（社外）

注文

注文
オペレータ

注文

注文

エンドユーザ

顧客管理システム

システム売買（第１次開発）
板寄せ売買（第２次開発）
注文管理システム

注文

インターネット
注文

ホームトレードシステム

注文

アーキテクチャ<Windowsアプリ>

新規注文入力＜サーバ層＞
WSDL

<EJB>
注文

<Windowsアプリ>

注文状況照会
注文取消入力C++ Client<Windowsアプリ>

バッチ起動TechnologyTechnology Center
CenterPAOS<Windowsアプリ>

<EJB>
板寄せ

＜DB層＞

Model / DAO<EJB>
商品 Model / DAO
Model / DAO<Webサービス> FOS Server<Application Server>
BEA-WebLogicServer7.0J<Platform> J2SE 1.3.x

CBDJ＜クライアント層＞<DB Server>
MS-SQL
Server2000

Page: 4Technology
Technology
Innovation
Innovation
Strategy
Strategy

１−３．開発体制とメンバー構成
メンバ

開発経験

OO経験

XP経験

役割

KO

経験豊富

1年

なし

マネージャ／業務SP

YK

４年目

8年

2年

リーダー／コーチ／アーキテクト

RH

３年目

2年

0.7年

プログラマ／アーキテクト

SN

３年目

0.2年

0.2年

プログラマ／DBA

JS

新人−−

プログラマ

MN

新人−−

プログラマ

IN

協力会社（３年目）

2.5年

なし

プログラマ

HK協力会社（３年目）

1.0年

なし

プログラマ（第１次開発のみ）

TK

協力会社（２年目）

0.5年

なし

プログラマ（第２次開発のみ）※PJ参加時のキャリア

Technology
Technology Center
CenterPage: 5

Technology
Technology
Innovation
Innovation
Strategy
Strategy１−４．導入の理由と経緯！？

第１次開発の課題

１月開始の取引所のサービスインには確実に間に合わないといけない！

第２次開発の課題
体制の課題

開発体制と保守体制が不充分！
体制から作り上げる必要がある！

要件自体が完全に決まっていない！
職人技の作業のシステム化！
（顧客にも初めてのシステム）
スキル的な課題

メンバーの課題

技術的にも経験的にも未熟！
（若さとやる気はある！）

技術的に求められるレベルが高い！
必要とされる業務知識も難しい！
（C++/金融系業務）

eXtreme Programming
やるしかないゾ！
Technology
Technology Center
CenterPage: 6

Technology
Technology
Innovation
Innovation
Strategy
Strategy

２．導入の苦労と工夫

1.プロジェクトについて■

管理上の工夫2.導入の苦労と工夫

■

会議の工夫

3.プロジェクトを通して■

カスタマイズという考え方■

プラクティスの変遷■

開放的作業スペース■その他の工夫

4.ＸＰアンチプラクティスとはTechnology
Technology Center
CenterPage: 7

Technology
Technology
Innovation
Innovation
Strategy
Strategy２−１．管理上の工夫システム

ストーリー

要件確認

分割

技術検証

システムテスト

リリース
開発
計画

ドキュメント作成
メジャーVerUp!!

選択イテレーション

タスク

ストーリー

イテレーションプランニング分割

ショートリリース

要件 技術 見積 開発
説明 検証 確定フラッシュ
バックセッション

マイナーVerUp!!

選択タスク

TODOリスト

分割

TODOTOTODOTOTODOTOTODOTOTODOTOTODOTOTODOTO TODOTOTODOTOTechnology
Technology Center
Center

ペアプログラミング
スタンダップ
ミーティング開発者の一日リファクタリング
テストファースト

カバーリングセッション

インテグレーション

Page: 8

Technology
Technology
Innovation
Innovation
Strategy
Strategy

２−２．会議の工夫

スタンダップミーティング
苦労

進捗確認：全員参加

毎朝集まれない（フレックスな人達）

工夫

オブジェクト指向の勉強会ができました。

毎朝１０：１５〜
それまで、勉強時間

イテレーションプランニング 仕様確認：全員参加
苦労

見積ができない

ショートリリース
副次効果

工夫

見積は、メールでオークション風に。

受入確認：全員参加
メンバー間でも、作ったものの確認ができた。

フラッシュバックセッション 振り返り：開発者＆コーチ：お菓子アリ
副次効果

プラクティスの見直し

カバーリングセッション

読み合せ：開発者＆コーチ：お菓子アリ

副次効果
Technology
Technology Center
Center

早帰り日に設定して、みんなで一斉に帰れた。
Page: 9

Technology
Technology
Innovation
Innovation
Strategy
Strategy

２−３．カスタマイズという考え方

PJの状況
原理の理解

カスタマイズの必要性

XP ≒ プラクティス
固定観念

４つの価値
・コミュニケーション・フィードバック・シンプルさ・勇気

よくある失敗・プラクティスに固執
・トップダウンで指示
・書籍/WEBに盲従Technology
Technology Center
Center

形骸化
強制的無理解カスタマイズも繰り返そう！
Page: 10

Technology
Technology
Innovation
Innovation
Strategy
Strategy

２−４．プラクティスの変遷

タスク系

第１次開発

セッション系
第２次開発

・ペアプログラミング・カバーリングセッション
8月
９月 10月 11月 12月 １月
２月
３月
４月
５月
・テストファースト
・イテレーションプランニング≪４つに分類≫≪開始時≫
ユーザロール・セッション系
・スタンダップミーティング・リファクタリング・スタンダップミーティング⇒顧客プロキシ・ファシリティ系
・継続的インテグレーション（呼び方が変わっただけ）
・タスク系
・週５０時間労働・いつでもインテグレート
・フラッシュバックセッション・心得系（↑週４０時間労働）
週４５時間労働・用語辞書（←メタファ）
週５０時間労働 ・ショートリリース⇒継続可能なペース
・ユーザーロール
心得系（↑オンサイト顧客）
・小規模リリース・シンプルデザイン・テストファースト
・リファクタリング
・ペアプログラミング
・コードの共同所有
・コーディング標準
・毎日のデータベース移行・開放的作業スペース⇒週４５時間労働（５０時間は結構キツイから）（個人によって働ける時間が違うから）・コーディング標準
デイリービルド
ファシリティ系
継続的インテグレーション⇒いつでもインテグレート
・コードの共同所有⇒デイリービルド（１日１回のビルドじゃ足りないから）（せめて１日１回はしたい） ・顧客プロキシ
・シンプルデザイン
イテレーションプランニングが追加
毎日のデータベース移行
フラッシュバックセッションが追加
・用語辞書
・継続可能なペース⇒ぬかドコ
カバーリングセッションが追加（DBだけじゃなくレガシー全体をショートリリースが追加
・開放的作業スペース・ぬかドコ対象にしたいから）（会議もプラクティスにした方が良い）

TechnologyTechnology Center
CenterPage: 11

TechnologyTechnology
Innovation
Innovation
Strategy
Strategy２−５．開放的作業スペース

工夫①

ビルドマシン（結合テスト用マシン）の設置

工夫②

自動テスト後のファンファーレと「ダメだこりゃ！」

工夫③

A4サイズの持ち運び可能なホワイトボード

工夫④

誰でも自由に食べられるお菓子箱（常に補充）

工夫⑤ホワイトボード用のマーカーを常にキープ

工夫⑥

島単位の座席ではなく、背中合わせの座席の配置

工夫⑦

全員が希望の休暇日を書き込める休暇シート

工夫⑧Webコラボレーションツール Wiki

Technology
Technology CenterCenter

Page: 12

TechnologyTechnology
Innovation
Innovation
Strategy
Strategy２−６．その他の工夫

ぬかドコ？
フラッシュバックセッションにて、生まれたプラクティス。
一度作ってしまった部分に関しては、とかく、触らなくなりがち。
しかし、常に触っておく事で、修正（変更）に対する勇気を持つ事ができる。
漬物のぬかドコも、毎日、かきまぜないといけない事からのメタファ。

リファクタリング？
必ずしも、リファクタリングでなくても構わない。
コメントを直すだけでも、かき混ぜ。
自分以外の人の作ったところをみるだけでも、かき混ぜ。
気になるところ、わからない所は、みんなに報告
カバーリングセッションの開催
TechnologyTechnology CenterCenter

Page: 13

TechnologyTechnology
Innovation
Innovation
Strategy
Strategy

３．プロジェクトを通して

1.プロジェクトについて
2.導入の苦労と工夫
3.プロジェクトを通して4.ＸＰアンチプラクティスとはTechnology
Technology Center
Center

■

効果と成果

■

学んだこと

■

改善の意識から

Page: 14

Technology
Technology
Innovation
Innovation
Strategy
Strategy３−１．効果と成果

Quality（品質）

テストファーストの徹底要件に沿ったシステム構築を実施

結合テストを毎日実施

バグ数 ０ の実現

数字で見る“Quality”

クラス数：530(内、要テスト：163)
テストクラス数：147(メソッド数：740)
テストコードサイズ：1.55MB/3.93MB*サーバサイド（Java）のみ／自動生成除く

テストの自動化

回帰テストのコスト ０ の実現（基本）残業はしない

日中の作業効率の最大化

優先順位に沿った開発

１次開発は余裕で間に合いました。

反復で遅れを早めに察知

２次開発はギリギリ間に合いました。

数字で見る“Delivery”

１次開発-イテレーション回数：13回
２次開発-イテレーション回数： 8回

チーム全体OJT

新人が１人で仕様変更できるように。

Cost（コスト）

Delivery（納期）

Training（育成）
Technology
Technology Center
CenterPage: 15

Technology
Technology
Innovation
Innovation
Strategy
Strategy３−２．学んだこと

ＸＰチームのマネジメントのコツ？
命令⇒提言

理想

バランス感覚現実
向上心をくすぐる

成長しよう
管理能力も改善Technology
Technology Center
Center

全員参加
管理⇒協調
一度、朝まで飲みました

飲みに行こうコミュニケーション増加

Page: 16

Technology
Technology
Innovation
Innovation
Strategy
Strategy３−３．改善の意識から２つのパラダイムシフト
XPの適用が、プロジェクトの成功？

プロジェクトを成功させる為にXPを使っている「○○の理由で、XPができない」「XPを実践する為に、色々と工夫してみよう！」

XPへの第１歩は『改善の意識』から始めましょう！
決められたことだけをするよりも、自分たちで考える方が楽しいでしょ。
Technology
Technology CenterCenter

Page: 17

Technology
Technology
Innovation
Innovation
Strategy
Strategy

４．XPアンチプラクティスとは

1.プロジェクトについて2.導入の苦労と工夫
3.プロジェクトを通して■アンチプラクティスとは■

例：ぺアリング・プリズン■

ワークショップの狙い

4.ＸＰアンチプラクティスとはTechnology
Technology CenterCenter

Page: 18

TechnologyTechnology
Innovation
Innovation
Strategy
Strategy４−１．アンチプラクティスとは

詳しくは・・・

http://www.ask.sakura.ne.jp/object-garden/
TechnologyTechnology CenterCenter

Page: 19

Technology
Technology
Innovation
Innovation
Strategy
Strategy４−２．例：ペアリング・プリズン

名前：

ペアリング・プリズン

背景：

ペアプログラミングでの作業が慣習的になり、業務中はペアプロが常になっている状態にある。

症状：

ペアでの作業が、ずっと続いてしまうので、監視されている感じを受けてしまい、仕事が嫌になっていまう。

原因：

ペアプロの狙いである常時レビューが裏目に出ている。

理想：

ペアプロでの作業効率を上げる為にも、個人の作業（メールや雑用など）も尊重されている。

処方：

ペアプロの休憩時間をたっぷり目にとる。そして、各個人は、それぞれの判断で、個人の休憩と個人の作業のバランスをとって行う。
例えば、昼休みを通常の倍の時間にして、本来の昼休み以外の時間は、個人の作業の時間とする。

TechnologyTechnology CenterCenter

Page: 20

Technology
Technology
Innovation
Innovation
Strategy
Strategy

４−３．ワークショップの狙い

・新しいアンチプラクティス
・既存のアンチプラクティスの新しい処方
・既存のアンチプラクティスの別名・プラクティスやアンチプラクティスの因果関係一緒に見つけましょう！
Technology
Technology Center
CenterPage: 21

Technology
Technology
Innovation
Innovation
Strategy
Strategy

ＸＰアンチプラクティスを探る〜XP事例紹介〜

TIS株式会社

http://www.tis.co.jp/

基盤技術センター
倉貫 義人
連絡先：kuranuki@sunny.tis.co.jp
http://www.ask.sakura.ne.jp/object-garden/
Technology
Technology Center
CenterPage: 22