distributed agile using uml

65
国際的な XP プロジェクト事例 UML を使った分散アジャイル開 2003.4.16 (株)永和システムマネジメント 平鍋健児 岡村敏弘 UML Forum 2003 C-4

Upload: kenji-hiranabe

Post on 17-Jul-2015

1.699 views

Category:

Technology


6 download

TRANSCRIPT

Page 1: Distributed Agile using UML

国際的な XPプロジェクト事例 ─ UMLを使った分散アジャイル開発 

2003.4.16(株)永和システムマネジメント

平鍋健児岡村敏弘

UML Forum 2003 C-4

Page 2: Distributed Agile using UML

C Eiwa System Management, Inc( ) 2

自己紹介㈱永和システムマネジメント

福井県福井市, 200名金融・医療・オープンシステムの開発

平鍋健児オブジェクト指向・ XPの現場実践、書籍・記事の執筆

XP-jpメーリングリスト岡村敏弘

Judeプロジェクトリーダー

Page 3: Distributed Agile using UML

C Eiwa System Management, Inc( ) 3

「国際的な XPプロジェクト事例─ UMLを使った分散アジャイル開発」

17:15~ 18:25( 70分) 中国とのジョイントプロジェクトにおいて、 XP( Extreme Programming)を適用した事例を紹介する。 開発対象は、 UMLモデリングツール Judeで、昨年の 10月からプロジェクトを開始し、現在に至る。 同じ場所での開発期間と、離れた場所での開発期間の違いや、それぞれどのような困難や利点があったかを中心に説明する。 コミュニケーションが困難な状況においてアジャイルな開発を行う場合の課題と解決策を探る。

アブストラクト

Page 4: Distributed Agile using UML

C Eiwa System Management, Inc( ) 4

アジェンダ

経緯と方針(中国・上海の状況を交えて)XP概要プロジェクト概要レポート考察

Page 5: Distributed Agile using UML

C Eiwa System Management, Inc( ) 5

アジェンダ

経緯と方針(中国・上海の状況を経緯と方針(中国・上海の状況を交えて)交えて)

XP概要プロジェクト概要レポート考察

Page 6: Distributed Agile using UML

C Eiwa System Management, Inc( ) 6

発端 上海視察帰りの社長曰く,

中国のソフトウェア会社と共同開発をせよ.

中国は人件費が安い点で注目されているが,実際に上海に行ってみると技術者のエネルギーはすごい.優秀な人材がたくさんいる.単に人的資源の調達場所としてではなく,優秀な技術者と友好関係を結びたい.また,今から爆発するであろう中国市場も視野に入れたい.

現在開発中の Jude(UMLエディタ )の開発を加速.

Page 7: Distributed Agile using UML

C Eiwa System Management, Inc( ) 7

中国・上海の状況

ソフトウェア市場としての中国中国のソフトウェア産業成長上海のソフトウェア産業成長上海のソフトウェア技術者上海のソフトウェア産業の特徴

Page 8: Distributed Agile using UML

C Eiwa System Management, Inc( ) 8

出展 : "Report of Shanghai Software Industry Development 2001"(Shanghai Information Committee)

Software Market breakdown of 2001

Ireland85.2

China68.2

Brazil74.81South Korea

78.9

India84

Japan545.28

USA2285.6

China USA Japan Ireland IndiaSouthKorea

Brazil Global

1999 53.2 2200 540 84 67.5 59 63 5337

2000 71.7 2400 572 89 88.5 83.2 78 6038

2001 68.2 2285.6 545.28 85.2 84 78.9 74.81 5754.8

Software Market (Year 1999~2001) :100 Million USD

世界ソフトウェア市場の比較

日本市場:中国市場= 8:1日本市場 /人:中国市場 /人= 100:1

Page 9: Distributed Agile using UML

C Eiwa System Management, Inc( ) 9

China Software Sales Annual Increase Ratio (1993~2001)

0%

20%

40%

60%

80%

100%

120%

1993 1994 1995 1996 1997 1998 1999 2000 2001

1992 1993 1994 1995 1996 1997 1998 1999 2000 2001

Software Product 240 484 593 823 1,114 1,356 1,671 2,203 2,881 3,632

Software Service 289 595 702 932 1,368 1,792 2,264 2,887 3,898 4,903

Total 529 1,079 1,295 1,755 2,482 3,148 3,935 5,090 6,779 8,535

Annual Increase 106% 18% 32.70% 46.80% 31% 26.40% 27% 33.00% 26%

China Software Sales Revenue (Year 1992~2001) Unit: Million USD

ソフトウェア販売歳入の推移

年々延び率20%で成長している

Page 10: Distributed Agile using UML

C Eiwa System Management, Inc( ) 10

1999 2000 2001

480 578 892Grosss Income (Million USD)

Gross Income of Shanghai Software Industry

20.29%

54.39%

0%

10%

20%

30%

40%

50%

60%

1999 2000 2001

上海ソフトウェア産業の成長

特に上海の成長は顕著 (50%以上 )

Page 11: Distributed Agile using UML

C Eiwa System Management, Inc( ) 11

28%

57%

7% 4% 2% 2%0%

20%

40%

60%

20-25 25-30 30-35 35-40 40-50 >50

Age Distribution of Software Company Employees in Shanghai

上海のソフトウェア技術者

ほとんどが30歳以下.若いやる気とエネルギーに溢れている

しかし,経験はあまりない上海には大学が50以上ある

Page 12: Distributed Agile using UML

C Eiwa System Management, Inc( ) 12

上海の政策

他州の大学生,卒業生も上海在住できるISO9001と CMM認定に賞認定企業への税金の軽減ベンチャー企業への支援ハイテクプロダクトへの投資エンジニアの教育施設

上海政府はソフトウェア開発企業を優遇している

Page 13: Distributed Agile using UML

C Eiwa System Management, Inc( ) 13

中国・上海の状況(まとめ)

中国のソフトウェア市場は日本の 1/8.ソフトウェアの販売は,年率 20%で延びている.

特に上海は 50%を超える延び率.上海には若く・エネルギーのある技術者が多い.

上海は政策的にソフトウェア産業が優遇されている.現在の上海は共同開発にとてもよい環境

• 将来の市場,経済の成長• 若い人材• (日本に比べて安い人件費)

Page 14: Distributed Agile using UML

C Eiwa System Management, Inc( ) 14

中国とのジョイント開発の大方針

中国を労働力リソースとは見ない将来の展開を見据えた信頼関係作り共同開発の2つの方向の選択肢

… 設計と製造の分離  UMLでの仕様 I/F … 密なチームの結成 XPチーム 採用

Page 15: Distributed Agile using UML

C Eiwa System Management, Inc( ) 15

具体方針

XPチームを結成し, UMLエディタを開発する.

チームを醸成する. UMLに精通する.オブジェクト指向開発ノウハウを伝授する.

将来の設計と製造の分離にも備える.分散開発のプロセスモデルを探る.

両社の Win-Winを確認する宣言書を作成.

Page 16: Distributed Agile using UML

C Eiwa System Management, Inc( ) 16

2002年 9月 23日私たち、永和システムマネジメント、 SuperV、大陸貿易開発、上坂会計の四社は、日本と中国での共同ソフトウェア開発において、新しいビジネス、新しい価値を創造する活動を行います。この活動にあたっては、以下を共通の原則として行動します。 1.         チャレンジへの若い情熱(青)2.         出発当初の初心忘るべからず (義 )3.         信頼と友情を基礎にしたアライアンス(愛)4.         自己実現 (夢 ) 私たちの夢: 4つの Win が第5の Win を創造する。

福井宣言

Page 17: Distributed Agile using UML

C Eiwa System Management, Inc( ) 17

アジェンダ

経緯と方針(中国・上海の状況を交えて)XPXP概要概要プロジェクト概要レポート考察

Page 18: Distributed Agile using UML

C Eiwa System Management, Inc( ) 18

XPとはeXtreme Programmingコーディングとテストに重点初期設計よりも漸進的再設計明確な「 4つの価値」 ,「 12のプラクティス」を示すソフトウェア開発は製造工程ではない.対話を基礎に置いた新しいパラダイム.

Kent Beck, 1999Extreme Programming Explained - Embrace Change

( 『 XP エクストリーム・プログラミング入門 - ソフトウェア開発の究極の手法 』)

Page 19: Distributed Agile using UML

C Eiwa System Management, Inc( ) 19

伝統的な開発

Page 20: Distributed Agile using UML

C Eiwa System Management, Inc( ) 20

XPの開発

Page 21: Distributed Agile using UML

C Eiwa System Management, Inc( ) 21

4つの価値

Communication(コミュニケーション )

Simplicity(シンプルさ )

Feedback(フィードバック )

Courage(勇気 )

Communication +Simplicity+Feedback = Courage

Page 22: Distributed Agile using UML

C Eiwa System Management, Inc( ) 22

12のプラクティス

Planning Game 計画ゲーム

Small Releases ちいさなリリース

Metaphor メタファー

Simple Design シンプルデザイン

Testing テスティング

Refactoring リファクタリング

Pair Programming ペアプログラミング

Collective Ownership 共同所有権

Continuous Integration 継続的インテグレーション

40-Hour Week 週40時間

On-site Customer オンサイト顧客

Coding Standard コーディング標準

※ 14, 13, 19 などと統廃合が起こっているが,ここではオリジナルの 12を挙げる

Page 23: Distributed Agile using UML

C Eiwa System Management, Inc( ) 23

XP Processリリース開発

イテレーション

リリース計画

受入れテスト

2 3~ ヶ月

イテレーション

タスク

タスク ・ ・

イテレーション

計画

受入れテスト

2 3~ 週間

ストーリーストーリー

タスク

スタンダップ

ミーティング

ユニットテスト

1 2~ 日

ペア

プログラミング

・・・・・

ペアプログラミング

テスト作成

ユニットテスト

2 3~ 時間

プログラミング

XPの開発の流れ

ユーザ

ストーリー

リリース

・ ・ ・ ・ ・ ・

リファクタリン

インテグレーション

実行可能リリース

インテグレーション

ストーリーカード

タスクーカード

プロジェクトはリリースの連続

1リリースは2 ~3ヶ月リリースはイテレーションの連続

イテレーションは2 ~3週間イテレーションはタスクからなる

タスクは1 ~2日タスクはペアによって開発される

毎朝のスタンドアップミーティング

テストファーストによる開発

Page 24: Distributed Agile using UML

C Eiwa System Management, Inc( ) 24

アジェンダ

経緯と方針(中国・上海の状況を交えて)XP概要プロジェクト概要プロジェクト概要レポート考察

Page 25: Distributed Agile using UML

C Eiwa System Management, Inc( ) 25

開発対象 Jude

UMLモデリングツールJavaアプリケーション規模(現在)

クラス数: 1180全 NCSS:約 9万行(≒コメントや空行以外)

Method 1010

Class757588

Package233823382392393131

Project888268882690759075118011803838

perNCSSMethodsClassesPackages

プロジェクト概要

Page 26: Distributed Agile using UML

C Eiwa System Management, Inc( ) 26

ビジョン

1. Jude竹バージョンを開発しリリースすること

2.信頼関係を構築し、日本と中国で高品質のソフトウェアを共同開発するモデル(ビジネス、プロセス)を見つけること

デファクトスタンダードデファクトスタンダード

2.中国アライアンス2.中国アライアンス

1.1. JudeJude

JudeJude梅梅

JudeJude竹竹

JudeJude松松

クリエイティブで生クリエイティブで生産性の高いチーム産性の高いチーム

コアとなる機能を装コアとなる機能を装備備

将来の展開に耐え将来の展開に耐えるレベルに拡張るレベルに拡張

業界特化商品業界特化商品カスタマイズパーカスタマイズパートナトナ

アーキテクチャの確アーキテクチャの確立立基本機能の実装基本機能の実装

Win-WinWin-Win関係関係

信頼関係信頼関係

Page 27: Distributed Agile using UML

C Eiwa System Management, Inc( ) 27

Superv(上海)当社

体制中国3名、日本3名の開発チーム

開発チーム

Director :平鍋 (擬似顧客、コーチ)

GPM: Toshi (擬似顧客代理)

Masa (プログラマ)

29才、開発経験7年

Midori (プログラマ)

33才、開発経験8年

PM: Rock (マネージャ、プログラマ)

27才、開発経験4年Wenny (プログラマ)

28才、開発経験5年

Yves (プログラマ)

23才、開発経験1年

Technical Manager: Jessy(コ ーチ)

PM: Toshi (マネージャ、プログラマ)

30才、開発経験6年

Page 28: Distributed Agile using UML

C Eiwa System Management, Inc( ) 28

スケジュールStartup Phaseで4つの図サポートを追加するElaboration Phaseで他の基盤機能を追加する

年月 10 1 1 12 1

2002 20036 7 8 92 3 4 5

Re le a s e 4他基盤機能の拡張

Re le a s e 1ステートチャート図、アクティビティ図追加

準備

Re le a s e 2シーケンス図、

コラボレーション図追加

Re le a s e 3他基盤機能の拡張

Startup phase では、 project velocityの把握、ナレッジ共有、相互理解、コミュニケーションに焦点をあてる

Startup PhaseStartup Phase

Elaboration PhaseElaboration Phase

Page 29: Distributed Agile using UML

C Eiwa System Management, Inc( ) 29

開発場所

中国で一緒に開発スタート → 分散開発 日本で一緒に開発 → 分散開発

Release2 Release1

321121110

日本

上海

当社

当社

当社

SV

SuperVSuperV

準備 →

分散 合同 分散 合同 分散

Page 30: Distributed Agile using UML

C Eiwa System Management, Inc( ) 30

「 XPをベースに短期繰り返し型で開発する」 課題

どう情報共有するか どう品質を維持するか どうリスクを軽減するか

XPの採用 密なコミュニケーション ペアプログラミング・ユニットテストによる品質維持 短期リリースと舵取りによるリスク軽減

工夫した点 モデルテスト、コマンドテスト、ストーリテスト Reflection Sheet、 Evaluation Sheetで改善

プロセス1

Page 31: Distributed Agile using UML

C Eiwa System Management, Inc( ) 31

プロセス2

Release1(3 months)

Iteration2(1 weeks)

Iteration1(1 weeks)

Simple UML

Story1

Rel.2

Metamodel

Iter

atio

n E

valu

atio

n

Story2-1

Story2-NIt

erat

ion

Eva

luat

ion

Iteration3(1 weeks)

Story5-1

Story5-N

Iter

atio

n E

valu

atio

n

Presentation

Model Test

Model Test

Model Test

Command Test

Command Test

IterationN(1 weeks)

Story Test

Iter

atio

n E

valu

atio

n

Rel

ease

Eva

luat

ion

Evaluation SheetImproved Process

Rel

ease

Pla

nn

ing

Iter

atio

n P

lan

nin

g

Iter

atio

n P

lan

nin

g

Iter

atio

n P

lan

nin

g

Iter

atio

n P

lan

nin

g

Reflection SheetTracking Sheet

Release:三ヶ月単位で大きな計画+機能開発+評価を行う Iteration:計画+機能開発+評価を一週間単位で繰り返す

Page 32: Distributed Agile using UML

C Eiwa System Management, Inc( ) 32

ツール・環境

Antビルドツール

J2SE 1.4.1コンパイラWindows2000 、 XPOS

MSN Messenger会話Swiki情報共有

JUnitユニットテスト

CVS、WinCVS構成管理Eclipse統合開発環境

Page 33: Distributed Agile using UML

C Eiwa System Management, Inc( ) 33

アジェンダ

経緯と方針(中国・上海の状況を交えて)XP概要プロジェクト概要レポートレポート考察

Page 34: Distributed Agile using UML

C Eiwa System Management, Inc( ) 34

導入

119 1075 631 286 7431

Release2 Release1

8452

321121110

日本

上海

当社

当社

当社

SV

SuperVSuperV

導入 →

開発開始前の準備 計画共有、ストーリカード準備、環境準備、体験課題

分散 合同 分散 合同 分散

Page 35: Distributed Agile using UML

C Eiwa System Management, Inc( ) 35

環境準備

「コミュニケーションに適した環境を準備」

ホワイトボード

タスク表を貼る壁

プリンタ

ホワイトボードを持つチームの部屋

お菓子

Page 36: Distributed Agile using UML

C Eiwa System Management, Inc( ) 36

XP体験課題

M1 M2 M3 M4 M5 M6分析されたクラス構成 C B B A B B依存関係の局所化 B A B A A A理解しやすさ C B A A A B命名センス A B A A A Aコメント充実度 B A C A C Cテスト比率 B B B A A Aコーディング標準 C B B B B B

「簡単な課題で、プロジェクトでの価値観を共有」

課題:「ボーリングの点数計算プログラム」狙いと効果

XP予行(ユニットテスト、タスク分割と見積もり)プロジェクトでの価値観共有

理解しやすさ重視品質重視

メンバの技量把握コーディング規約注意

期間:1日

各自のプログラム評価結果

Page 37: Distributed Agile using UML

C Eiwa System Management, Inc( ) 37

アーキテクチャ1

「共通語の UMLでアーキテクチャを共有」

jc o n t ro l

jm o de l

jvie w

js ys te m

ju t il<<glo b a l u t ilit y>>

jvie wEle m e n t

re s o u r c e

J ud e

St a r t u p J ud e ap p lic a t io n .m a in () m e t h o d is h e re .

Command s &Mo d e s .Ed it m o de l and c o n t ro l vie w.

Sys t e m .Glo b a l, Se c u r it yManage r , Sys t e mPro p e r t y

Vie w.Fram e & Dia lo gs

Vie w e le m e n t s .Ha s v ie w mo d e l and Up d a te d ra win g

J u d e 's Mod e ls(Pre s e n t a t io n s )

Pro p e r t ie s , He lp , Im age s , Me s s a ge s

Ut ilit ie s

J P.c o .e s m .c a d d ie s .jo m t•パッケージの責務と依存関係中心に理解

説明 UMLの例

Page 38: Distributed Agile using UML

C Eiwa System Management, Inc( ) 38

Ov e r v ie w o f Go lf(J u d e Ar c h it e c t u r e )

C o n t ro l

Mo de l

Vie w

Comm andLis t e n e r<<In t e r f a c e >>

En t it ySt o re Eve n t

Mod e lUIVie w

Gro upUIVie w

CommandFac t o ry

Ap p lic a t io n

Command

CommandEve n t

CommandManage r<<s ingle t o n>>

CommandRunn e r

11n e w

lis t e n

J Tre e(f rom s wing)

J Tre e UIVie w

GCanva s(f rom draw)

GCanva s UIVie w

lis t e n

Mod e J Me nuBa r(f rom s wing )

UIVie w

** 0..10..1

Go lfAc t io n

0..*

n e w

ne w

n e w

Ac t io n(f rom s wing)

En ti tyCl ip b o a rd

e d it

En t it ySt o r e n e w

e d it

St a t e Ed it ab le(f rom und o)

<<Int e r f a c e >>

0..*0..*

Comm uni c at io n b e twe e n Vie w and Co n tr o l is e xe c u t e d wit h in Command Eve nt . Vie w ge n e ra t e s Comman dEve n t .

A Ch ange o f Mo d e is n o t if ie d t o Vie w wit h in En t it ySt o re Eve n t .

Command e d it s Mod e l. It a ls o o p e ra t e s Mo d e an d UI.

0..*

アーキテクチャ2

「「 JudeJudeは、は、MVCMVCのフレームワーク上に構築」のフレームワーク上に構築」

Page 39: Distributed Agile using UML

C Eiwa System Management, Inc( ) 39

Release1

テストの種類

Iteration2Iteration1

モデル開発 機能開発•コントローラ•ビュー

モデルテスト モデルテスト

コマンドテスト

IterationN

ストーリテスト

Model Test

コマンドテスト

ユーザストーリを正しく実行できるかを目視で確認する

ストーリテスト(手動)

アプリケーションを起動した状態でコマンドを送り、コマンドが正しく実行できるかを確認する

コマンドテスト( JUnit)

内部で持っているモデル( UMLメタモデルなど)が正しいかを確認する

モデルテスト(JUnit)

Page 40: Distributed Agile using UML

C Eiwa System Management, Inc( ) 40

Release1 合同開発

119 1075 631 286 7431

Release2 Release1

8452

321121110

日本

上海

当社

当社

当社

SV

SuperVSuperV

準備 →

分散 合同 分散 合同 分散

Page 41: Distributed Agile using UML

C Eiwa System Management, Inc( ) 41

Releaseプランニング「ざっくりと、一緒に計画する」準備していった Storyカードと Storyリストを利用

合同開発中に一通りの開発を一緒に行う見積もり(理想日)

Storyのリストどれからやるか

どんな機能を開発したいか

Page 42: Distributed Agile using UML

C Eiwa System Management, Inc( ) 42

第一イテレーション

とにかくやってみるできる限りコミュニケーションする

Page 43: Distributed Agile using UML

C Eiwa System Management, Inc( ) 43

Iterationプランニング

タスク内容タスク内容ステートチャート図のモデル開ステートチャート図のモデル開発発

ステートチャート図の生成機能ステートチャート図の生成機能開発開発(一つ基本機能を先行開発)(一つ基本機能を先行開発)

タスク分割とサインアップタスク分割とサインアップ

Page 44: Distributed Agile using UML

C Eiwa System Management, Inc( ) 44

開発「ペアプロがチーム内ナレッジ共有に効果大」

UMLで開発対象の概略理解 UMLメタモデル等のクラス図、オブジェクト図

ペアプログラミング新しいことに対する勇気、そして理解

アーキテクチャ開発環境

会話促進ソースコードで解りあう

ユニットテスト習慣化

Page 45: Distributed Agile using UML

C Eiwa System Management, Inc( ) 45

トラッキングシート

計画したタスク全て完了計画したタスク全て完了Team Velocity = 12.2 PointsTeam Velocity = 12.2 PointsTest = 100% Test = 100% (( 168 168

casescases))

Page 46: Distributed Agile using UML

C Eiwa System Management, Inc( ) 46

リフレクションシート

「この Iterationを振り返り、改善」

Dash out the completed task

Eat some sweets

Put list of story on the wall

Pair up with different nationality

Take a 15 minutes rest after lunch

Open the window during lunch (by Yves)

Tracking on wiki

Good mood

Make jokes

Talk a lot

No over work

Communication by writing and drawing

Avoiding to one-way communication

Without projector

Pair Programming

Stand up meeting

Try TheseKeep These

Page 47: Distributed Agile using UML

C Eiwa System Management, Inc( ) 47

第二イテレーション

機能の開発Storyカードで機能理解ほぼ全ペアの組み合わせ実施途中で新たなストーリ7つ追加全タスク開発完了

Page 48: Distributed Agile using UML

C Eiwa System Management, Inc( ) 48

開発風景

Page 49: Distributed Agile using UML

C Eiwa System Management, Inc( ) 49

中国余談

プラス時差1時間漢字、ブロークンな英語健康志向、週40時間労働

マイナスビザ、連休電話、ネットワーク不安定

交通両方

食事

Page 50: Distributed Agile using UML

C Eiwa System Management, Inc( ) 50

Release1 分散開発

119 1075 631 286 7431

Release2 Release1

8452

321121110

日本

上海

当社

当社

当社

SV

SuperVSuperV

準備 →

分散 合同 分散 合同 分散

Page 51: Distributed Agile using UML

C Eiwa System Management, Inc( ) 51

分散開発

分散でも大きな分担割をせず XP継続変化・工夫

あらかじめ Storyカードを一緒に作成、理解プランニングは、全員でのチャットトラッキング情報は、壁ではなく wikiで共有スタンドアップミーティングは、各社で実施不明点、アイデアなどは、必要なときにその都度チャット

ペアプロは、継続(奇数人になり減少)

Page 52: Distributed Agile using UML

C Eiwa System Management, Inc( ) 52

ここから簡単に Webを編集

Wikiによる情報共有サイトマップ Release 1

スケジュール(期間分割と大雑把な見通し)

ストーリー 一覧(このリリースの開発対象)

ストーリーカード(必要なストーリーのみ)

Iteration1 Reflection Sheet(前回の反省) Tracking Sheet Team Velocity テスト結果(テストケース数と結果)

Iteration2 ・・・・・

Release 2 Release 3バグ情報一覧改善項目一覧 Daily自動テスト結果集計開発のヒント集(開発注意点など)ダウンロード数推移

EditEdit

Page 53: Distributed Agile using UML

C Eiwa System Management, Inc( ) 53

実践プラクティス

開発者全員で見積もり、サインアップ。ストーリーカードにより機能を理解。タスクカードは作成せず。

計画ゲーム○

テストの種類を3つ用意。コマンドのテストサポートクラス利用。

モデルテスト、コマンドテスト、ストーリテスト

×

×

実施

特に準備せず。メタファー

2週間単位でリリース。ちいさなリリース

機能の実装に必要な設計のみに集中。シンプルデザイン

ユニットテストを実践。テスト駆動は未定着。テスティング

よく実践した。常にではなく、デバッグ時は 1人。ペアプログラミング

気づいたときになるべく実践。必要意識高い。余裕必要。リファクタリング

Iteration毎に Reflectionシート作成(5分)。Release毎に EvaluationSheet 記入。→ 改善意識向上。

Reflection、 EvaluationObjectClubバージョンの標準遵守。 Eclipseの自動フォーマット。

コーディング標準

ほぼ残業ゼロだった。最近はがんばりペース。週40時間

どのファイルも誰でも編集可能。共同所有権

意見がまとまらない場合など、擬似顧客が決定。オンサイト顧客

毎日インテグレーション。毎日自動テスト。継続的インテグレーション

どのように実践したかプラクティス

特別

特別

Page 54: Distributed Agile using UML

C Eiwa System Management, Inc( ) 54

トラブルと対処

Visa取得遅れによる出張延期 → 準備課題など

仕様誤解2,3度慣れによる仕様確認不足が原因 → そのイテレーション内に回復 → 複雑なものは wiki上にイメージと詳細な記述追加

正月休みのずれ+1人ハネムーン → 他のメンバがカバーし、問題なし

ネットワーク不安定でチャット不可 → 他のインスタントメッセンジャで対処

Page 55: Distributed Agile using UML

C Eiwa System Management, Inc( ) 55

Release1全体

X’m

as v

ersi

onX

’mas

ver

sion

8回のイテレーションを完了平均 TeamVelocity = 12.2 テストケース数 = 404 完了したストーリー数 = 約 100ステートチャート図とアクティビティ図追加

他いくつかの改善項目を完了合同開発・分散開発共に順調に進行

X’masバージョンを急遽リリース

予定外、2日で対応外部へのリリースで、顧客視点の再認識

Page 56: Distributed Agile using UML

C Eiwa System Management, Inc( ) 56

アジェンダ

経緯と方針(中国・上海の状況を交えて)XP概要プロジェクト概要レポート考察考察

Page 57: Distributed Agile using UML

C Eiwa System Management, Inc( ) 57

分散開発と担当割

○△×頻繁なリリース

A図を一緒に開発A図を日本、B図を中国

アプリを日本、モデルを中国

密疎疎コミュニケーション

○△○機能仕様の統一感

◎○△モチベーション◎○○品質

多中少必要知識

あり少ないあり担当タスク間の依存

一緒に開発する縦に大きく割る

横に大きく割る

Jude ”プロジェクトでは、“一緒に開発を継続

Page 58: Distributed Agile using UML

C Eiwa System Management, Inc( ) 58

ツールとアジャイル開発「分散アジャイル開発はツールにも支えられる」

Webベースの XPプロジェクトサポートシステム。( Judeプロジェクトでは未使用)

XPlanner、 XpTrackerPlugin( TWiki plugin)

XP管理

情報・考えを伝えるのがメールに比べ格段に楽。

インスタントメッセンジャー(MSNMessenger他)

会話

遠隔ペアプロ

ビルドツール

ユニットテスト

情報共有

構成管理

開発種類

プログラミングが楽。ソースを追うのが楽。テストが楽。リファクタリングが楽。

Eclipse

頻繁なリリースが楽。Ant

離れた人とのペアプロの可能性。(まだ不安定)

Sangam(Eclipse plugin)

非常に手軽に情報共有できた。Swiki、 TWiki、 PukiWiki他

テストが楽。JUnit

ソースコード共有が楽。CVS、WinCVS

効果ツール

直接会って話をする、壁に貼る、が一番。それに近づける。

Page 59: Distributed Agile using UML

C Eiwa System Management, Inc( ) 59

UMLの役割

高い表現力・伝達力と厳密さをもった標準言語↓

ソフトウェアの設計をすばやく共有↓

アライアンスとスピード時代の開発をスムーズに

今回の開発での UML利用開発対象 Judeのアーキテクチャ共有モデル( UMLメタモデル含む)の設計簡単な設計アイデアの交換

Page 60: Distributed Agile using UML

C Eiwa System Management, Inc( ) 60

プロジェクトの特性Judeプロジェクトについての、分散アジャイル開発のプラス要因

自分が顧客視点を持てた( UMLツールの利用者)

機能追加が主で大規模な設計が不要だった参考ツールが存在し、要求仕様を理解しやすかった

一部モデルに関する詳細な仕様書が存在した日本と中国との開発だった(時差など有利)自社ソフトウェアの開発だった

Page 61: Distributed Agile using UML

C Eiwa System Management, Inc( ) 61

うまくいったことと課題

うまくいったこと導入課題での価値観共有 XPでのナレッジ共有、モチベーション維持リフレクションシートでの改善・改善意識メールではなくチャットでのリアルタイムな対話 Wikiでのプロジェクト情報共有

課題コマンドテストの軽量化(テスト実行時間短縮、分割など)

顧客巻き込みリファクタリングとテストの時間確保プランニングゲームの時間短縮

Page 62: Distributed Agile using UML

C Eiwa System Management, Inc( ) 62

今回の事例のポイント

Judeを XPで中国と共同開発 ”あえて大きな役割分担せず、“一緒に開発同じ場所でチーム開発開始ナレッジ共有、モチベーション維持分散開発ではコミュニケーションツール活用UMLは重要な共通語の一つ密なチーム・信頼関係を構築

Page 63: Distributed Agile using UML

C Eiwa System Management, Inc( ) 63

XPと信頼

XP 信頼XPXPは、信頼を築くは、信頼を築く

XPXPは、信頼を基礎とは、信頼を基礎とするする

Page 64: Distributed Agile using UML

C Eiwa System Management, Inc( ) 64

紹介

PNG、 JPEG出力

図のプリンタ出力

出力

Javaソース読み込み入力アクティビティ図

コラボレーション図

クラス図

Javaスケルトンコード出力

シーケンス図

Javadoc形式の Html出力

ステートチャート図

ユースケース図

機能・特徴 UML1.4サポート 無限回 UNDO/REDO(編集の取り消し、やり直し)

大きな図をすばやく移動できる全体マップビュー

クラス図自動生成 Microsoft Office® への図イメージ貼付け 右ドラッグによる斜め方向スクロール ステレオタイプ毎の色設定

http://ObjectClub.esm.co.jp/Jude/http://ObjectClub.esm.co.jp/Jude/にて無償公開中。にて無償公開中。「真のカスタマからのコメン「真のカスタマからのコメントをトをぜひお寄せください」ぜひお寄せください」

Page 65: Distributed Agile using UML

C Eiwa System Management, Inc( ) 65