distributed agile using uml
TRANSCRIPT
国際的な XPプロジェクト事例 ─ UMLを使った分散アジャイル開発
2003.4.16(株)永和システムマネジメント
平鍋健児岡村敏弘
UML Forum 2003 C-4
C Eiwa System Management, Inc( ) 2
自己紹介㈱永和システムマネジメント
福井県福井市, 200名金融・医療・オープンシステムの開発
平鍋健児オブジェクト指向・ XPの現場実践、書籍・記事の執筆
XP-jpメーリングリスト岡村敏弘
Judeプロジェクトリーダー
C Eiwa System Management, Inc( ) 3
「国際的な XPプロジェクト事例─ UMLを使った分散アジャイル開発」
17:15~ 18:25( 70分) 中国とのジョイントプロジェクトにおいて、 XP( Extreme Programming)を適用した事例を紹介する。 開発対象は、 UMLモデリングツール Judeで、昨年の 10月からプロジェクトを開始し、現在に至る。 同じ場所での開発期間と、離れた場所での開発期間の違いや、それぞれどのような困難や利点があったかを中心に説明する。 コミュニケーションが困難な状況においてアジャイルな開発を行う場合の課題と解決策を探る。
アブストラクト
C Eiwa System Management, Inc( ) 4
アジェンダ
経緯と方針(中国・上海の状況を交えて)XP概要プロジェクト概要レポート考察
C Eiwa System Management, Inc( ) 5
アジェンダ
経緯と方針(中国・上海の状況を経緯と方針(中国・上海の状況を交えて)交えて)
XP概要プロジェクト概要レポート考察
C Eiwa System Management, Inc( ) 6
発端 上海視察帰りの社長曰く,
中国のソフトウェア会社と共同開発をせよ.
中国は人件費が安い点で注目されているが,実際に上海に行ってみると技術者のエネルギーはすごい.優秀な人材がたくさんいる.単に人的資源の調達場所としてではなく,優秀な技術者と友好関係を結びたい.また,今から爆発するであろう中国市場も視野に入れたい.
現在開発中の Jude(UMLエディタ )の開発を加速.
C Eiwa System Management, Inc( ) 7
中国・上海の状況
ソフトウェア市場としての中国中国のソフトウェア産業成長上海のソフトウェア産業成長上海のソフトウェア技術者上海のソフトウェア産業の特徴
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
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%で成長している
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%以上 )
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以上ある
C Eiwa System Management, Inc( ) 12
上海の政策
他州の大学生,卒業生も上海在住できるISO9001と CMM認定に賞認定企業への税金の軽減ベンチャー企業への支援ハイテクプロダクトへの投資エンジニアの教育施設
上海政府はソフトウェア開発企業を優遇している
C Eiwa System Management, Inc( ) 13
中国・上海の状況(まとめ)
中国のソフトウェア市場は日本の 1/8.ソフトウェアの販売は,年率 20%で延びている.
特に上海は 50%を超える延び率.上海には若く・エネルギーのある技術者が多い.
上海は政策的にソフトウェア産業が優遇されている.現在の上海は共同開発にとてもよい環境
• 将来の市場,経済の成長• 若い人材• (日本に比べて安い人件費)
C Eiwa System Management, Inc( ) 14
中国とのジョイント開発の大方針
中国を労働力リソースとは見ない将来の展開を見据えた信頼関係作り共同開発の2つの方向の選択肢
… 設計と製造の分離 UMLでの仕様 I/F … 密なチームの結成 XPチーム 採用
C Eiwa System Management, Inc( ) 15
具体方針
XPチームを結成し, UMLエディタを開発する.
チームを醸成する. UMLに精通する.オブジェクト指向開発ノウハウを伝授する.
将来の設計と製造の分離にも備える.分散開発のプロセスモデルを探る.
両社の Win-Winを確認する宣言書を作成.
C Eiwa System Management, Inc( ) 16
2002年 9月 23日私たち、永和システムマネジメント、 SuperV、大陸貿易開発、上坂会計の四社は、日本と中国での共同ソフトウェア開発において、新しいビジネス、新しい価値を創造する活動を行います。この活動にあたっては、以下を共通の原則として行動します。 1. チャレンジへの若い情熱(青)2. 出発当初の初心忘るべからず (義 )3. 信頼と友情を基礎にしたアライアンス(愛)4. 自己実現 (夢 ) 私たちの夢: 4つの Win が第5の Win を創造する。
福井宣言
C Eiwa System Management, Inc( ) 17
アジェンダ
経緯と方針(中国・上海の状況を交えて)XPXP概要概要プロジェクト概要レポート考察
C Eiwa System Management, Inc( ) 18
XPとはeXtreme Programmingコーディングとテストに重点初期設計よりも漸進的再設計明確な「 4つの価値」 ,「 12のプラクティス」を示すソフトウェア開発は製造工程ではない.対話を基礎に置いた新しいパラダイム.
Kent Beck, 1999Extreme Programming Explained - Embrace Change
( 『 XP エクストリーム・プログラミング入門 - ソフトウェア開発の究極の手法 』)
C Eiwa System Management, Inc( ) 19
伝統的な開発
C Eiwa System Management, Inc( ) 20
XPの開発
C Eiwa System Management, Inc( ) 21
4つの価値
Communication(コミュニケーション )
Simplicity(シンプルさ )
Feedback(フィードバック )
Courage(勇気 )
Communication +Simplicity+Feedback = Courage
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を挙げる
C Eiwa System Management, Inc( ) 23
XP Processリリース開発
イテレーション
リリース計画
受入れテスト
2 3~ ヶ月
イテレーション
・
タスク
・
タスク ・ ・
イテレーション
計画
受入れテスト
2 3~ 週間
ストーリーストーリー
タスク
スタンダップ
ミーティング
ユニットテスト
1 2~ 日
ペア
プログラミング
・・・・・
ペアプログラミング
テスト作成
ユニットテスト
2 3~ 時間
プログラミング
XPの開発の流れ
ユーザ
ストーリー
リリース
・ ・ ・ ・ ・ ・
リファクタリン
グ
インテグレーション
実行可能リリース
インテグレーション
ストーリーカード
タスクーカード
プロジェクトはリリースの連続
1リリースは2 ~3ヶ月リリースはイテレーションの連続
イテレーションは2 ~3週間イテレーションはタスクからなる
タスクは1 ~2日タスクはペアによって開発される
毎朝のスタンドアップミーティング
テストファーストによる開発
C Eiwa System Management, Inc( ) 24
アジェンダ
経緯と方針(中国・上海の状況を交えて)XP概要プロジェクト概要プロジェクト概要レポート考察
C Eiwa System Management, Inc( ) 25
開発対象 Jude
UMLモデリングツールJavaアプリケーション規模(現在)
クラス数: 1180全 NCSS:約 9万行(≒コメントや空行以外)
Method 1010
Class757588
Package233823382392393131
Project888268882690759075118011803838
perNCSSMethodsClassesPackages
プロジェクト概要
C Eiwa System Management, Inc( ) 26
ビジョン
1. Jude竹バージョンを開発しリリースすること
2.信頼関係を構築し、日本と中国で高品質のソフトウェアを共同開発するモデル(ビジネス、プロセス)を見つけること
デファクトスタンダードデファクトスタンダード
2.中国アライアンス2.中国アライアンス
1.1. JudeJude
JudeJude梅梅
JudeJude竹竹
JudeJude松松
クリエイティブで生クリエイティブで生産性の高いチーム産性の高いチーム
コアとなる機能を装コアとなる機能を装備備
将来の展開に耐え将来の展開に耐えるレベルに拡張るレベルに拡張
業界特化商品業界特化商品カスタマイズパーカスタマイズパートナトナ
アーキテクチャの確アーキテクチャの確立立基本機能の実装基本機能の実装
Win-WinWin-Win関係関係
信頼関係信頼関係
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年
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
C Eiwa System Management, Inc( ) 29
開発場所
中国で一緒に開発スタート → 分散開発 日本で一緒に開発 → 分散開発
Release2 Release1
321121110
日本
上海
当社
当社
当社
SV
SuperVSuperV
準備 →
分散 合同 分散 合同 分散
C Eiwa System Management, Inc( ) 30
「 XPをベースに短期繰り返し型で開発する」 課題
どう情報共有するか どう品質を維持するか どうリスクを軽減するか
XPの採用 密なコミュニケーション ペアプログラミング・ユニットテストによる品質維持 短期リリースと舵取りによるリスク軽減
工夫した点 モデルテスト、コマンドテスト、ストーリテスト Reflection Sheet、 Evaluation Sheetで改善
プロセス1
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:計画+機能開発+評価を一週間単位で繰り返す
C Eiwa System Management, Inc( ) 32
ツール・環境
Antビルドツール
J2SE 1.4.1コンパイラWindows2000 、 XPOS
MSN Messenger会話Swiki情報共有
JUnitユニットテスト
CVS、WinCVS構成管理Eclipse統合開発環境
C Eiwa System Management, Inc( ) 33
アジェンダ
経緯と方針(中国・上海の状況を交えて)XP概要プロジェクト概要レポートレポート考察
C Eiwa System Management, Inc( ) 34
導入
119 1075 631 286 7431
Release2 Release1
8452
321121110
日本
上海
当社
当社
当社
SV
SuperVSuperV
導入 →
開発開始前の準備 計画共有、ストーリカード準備、環境準備、体験課題
分散 合同 分散 合同 分散
C Eiwa System Management, Inc( ) 35
環境準備
「コミュニケーションに適した環境を準備」
ホワイトボード
タスク表を貼る壁
プリンタ
ホワイトボードを持つチームの部屋
お菓子
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日
各自のプログラム評価結果
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の例
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のフレームワーク上に構築」のフレームワーク上に構築」
C Eiwa System Management, Inc( ) 39
Release1
テストの種類
Iteration2Iteration1
モデル開発 機能開発•コントローラ•ビュー
モデルテスト モデルテスト
コマンドテスト
IterationN
ストーリテスト
Model Test
コマンドテスト
ユーザストーリを正しく実行できるかを目視で確認する
ストーリテスト(手動)
アプリケーションを起動した状態でコマンドを送り、コマンドが正しく実行できるかを確認する
コマンドテスト( JUnit)
内部で持っているモデル( UMLメタモデルなど)が正しいかを確認する
モデルテスト(JUnit)
C Eiwa System Management, Inc( ) 40
Release1 合同開発
119 1075 631 286 7431
Release2 Release1
8452
321121110
日本
上海
当社
当社
当社
SV
SuperVSuperV
準備 →
分散 合同 分散 合同 分散
C Eiwa System Management, Inc( ) 41
Releaseプランニング「ざっくりと、一緒に計画する」準備していった Storyカードと Storyリストを利用
合同開発中に一通りの開発を一緒に行う見積もり(理想日)
Storyのリストどれからやるか
どんな機能を開発したいか
C Eiwa System Management, Inc( ) 42
第一イテレーション
とにかくやってみるできる限りコミュニケーションする
C Eiwa System Management, Inc( ) 43
Iterationプランニング
タスク内容タスク内容ステートチャート図のモデル開ステートチャート図のモデル開発発
ステートチャート図の生成機能ステートチャート図の生成機能開発開発(一つ基本機能を先行開発)(一つ基本機能を先行開発)
タスク分割とサインアップタスク分割とサインアップ
C Eiwa System Management, Inc( ) 44
開発「ペアプロがチーム内ナレッジ共有に効果大」
UMLで開発対象の概略理解 UMLメタモデル等のクラス図、オブジェクト図
ペアプログラミング新しいことに対する勇気、そして理解
アーキテクチャ開発環境
会話促進ソースコードで解りあう
ユニットテスト習慣化
C Eiwa System Management, Inc( ) 45
トラッキングシート
計画したタスク全て完了計画したタスク全て完了Team Velocity = 12.2 PointsTeam Velocity = 12.2 PointsTest = 100% Test = 100% (( 168 168
casescases))
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
C Eiwa System Management, Inc( ) 47
第二イテレーション
機能の開発Storyカードで機能理解ほぼ全ペアの組み合わせ実施途中で新たなストーリ7つ追加全タスク開発完了
C Eiwa System Management, Inc( ) 48
開発風景
C Eiwa System Management, Inc( ) 49
中国余談
プラス時差1時間漢字、ブロークンな英語健康志向、週40時間労働
マイナスビザ、連休電話、ネットワーク不安定
交通両方
食事
C Eiwa System Management, Inc( ) 50
Release1 分散開発
119 1075 631 286 7431
Release2 Release1
8452
321121110
日本
上海
当社
当社
当社
SV
SuperVSuperV
準備 →
分散 合同 分散 合同 分散
C Eiwa System Management, Inc( ) 51
分散開発
分散でも大きな分担割をせず XP継続変化・工夫
あらかじめ Storyカードを一緒に作成、理解プランニングは、全員でのチャットトラッキング情報は、壁ではなく wikiで共有スタンドアップミーティングは、各社で実施不明点、アイデアなどは、必要なときにその都度チャット
ペアプロは、継続(奇数人になり減少)
C Eiwa System Management, Inc( ) 52
ここから簡単に Webを編集
Wikiによる情報共有サイトマップ Release 1
スケジュール(期間分割と大雑把な見通し)
ストーリー 一覧(このリリースの開発対象)
ストーリーカード(必要なストーリーのみ)
Iteration1 Reflection Sheet(前回の反省) Tracking Sheet Team Velocity テスト結果(テストケース数と結果)
Iteration2 ・・・・・
Release 2 Release 3バグ情報一覧改善項目一覧 Daily自動テスト結果集計開発のヒント集(開発注意点など)ダウンロード数推移
EditEdit
C Eiwa System Management, Inc( ) 53
実践プラクティス
開発者全員で見積もり、サインアップ。ストーリーカードにより機能を理解。タスクカードは作成せず。
計画ゲーム○
テストの種類を3つ用意。コマンドのテストサポートクラス利用。
モデルテスト、コマンドテスト、ストーリテスト
○
○
○
×
○
○
○
○
△
○
○
○
×
実施
特に準備せず。メタファー
2週間単位でリリース。ちいさなリリース
機能の実装に必要な設計のみに集中。シンプルデザイン
ユニットテストを実践。テスト駆動は未定着。テスティング
よく実践した。常にではなく、デバッグ時は 1人。ペアプログラミング
気づいたときになるべく実践。必要意識高い。余裕必要。リファクタリング
Iteration毎に Reflectionシート作成(5分)。Release毎に EvaluationSheet 記入。→ 改善意識向上。
Reflection、 EvaluationObjectClubバージョンの標準遵守。 Eclipseの自動フォーマット。
コーディング標準
ほぼ残業ゼロだった。最近はがんばりペース。週40時間
どのファイルも誰でも編集可能。共同所有権
意見がまとまらない場合など、擬似顧客が決定。オンサイト顧客
毎日インテグレーション。毎日自動テスト。継続的インテグレーション
どのように実践したかプラクティス
特別
特別
C Eiwa System Management, Inc( ) 54
トラブルと対処
Visa取得遅れによる出張延期 → 準備課題など
仕様誤解2,3度慣れによる仕様確認不足が原因 → そのイテレーション内に回復 → 複雑なものは wiki上にイメージと詳細な記述追加
正月休みのずれ+1人ハネムーン → 他のメンバがカバーし、問題なし
ネットワーク不安定でチャット不可 → 他のインスタントメッセンジャで対処
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日で対応外部へのリリースで、顧客視点の再認識
C Eiwa System Management, Inc( ) 56
アジェンダ
経緯と方針(中国・上海の状況を交えて)XP概要プロジェクト概要レポート考察考察
C Eiwa System Management, Inc( ) 57
分散開発と担当割
○△×頻繁なリリース
A図を一緒に開発A図を日本、B図を中国
アプリを日本、モデルを中国
例
密疎疎コミュニケーション
○△○機能仕様の統一感
◎○△モチベーション◎○○品質
多中少必要知識
あり少ないあり担当タスク間の依存
一緒に開発する縦に大きく割る
横に大きく割る
Jude ”プロジェクトでは、“一緒に開発を継続
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
効果ツール
直接会って話をする、壁に貼る、が一番。それに近づける。
C Eiwa System Management, Inc( ) 59
UMLの役割
高い表現力・伝達力と厳密さをもった標準言語↓
ソフトウェアの設計をすばやく共有↓
アライアンスとスピード時代の開発をスムーズに
今回の開発での UML利用開発対象 Judeのアーキテクチャ共有モデル( UMLメタモデル含む)の設計簡単な設計アイデアの交換
C Eiwa System Management, Inc( ) 60
プロジェクトの特性Judeプロジェクトについての、分散アジャイル開発のプラス要因
自分が顧客視点を持てた( UMLツールの利用者)
機能追加が主で大規模な設計が不要だった参考ツールが存在し、要求仕様を理解しやすかった
一部モデルに関する詳細な仕様書が存在した日本と中国との開発だった(時差など有利)自社ソフトウェアの開発だった
C Eiwa System Management, Inc( ) 61
うまくいったことと課題
うまくいったこと導入課題での価値観共有 XPでのナレッジ共有、モチベーション維持リフレクションシートでの改善・改善意識メールではなくチャットでのリアルタイムな対話 Wikiでのプロジェクト情報共有
課題コマンドテストの軽量化(テスト実行時間短縮、分割など)
顧客巻き込みリファクタリングとテストの時間確保プランニングゲームの時間短縮
C Eiwa System Management, Inc( ) 62
今回の事例のポイント
Judeを XPで中国と共同開発 ”あえて大きな役割分担せず、“一緒に開発同じ場所でチーム開発開始ナレッジ共有、モチベーション維持分散開発ではコミュニケーションツール活用UMLは重要な共通語の一つ密なチーム・信頼関係を構築
C Eiwa System Management, Inc( ) 63
XPと信頼
XP 信頼XPXPは、信頼を築くは、信頼を築く
XPXPは、信頼を基礎とは、信頼を基礎とするする
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/にて無償公開中。にて無償公開中。「真のカスタマからのコメン「真のカスタマからのコメントをトをぜひお寄せください」ぜひお寄せください」
C Eiwa System Management, Inc( ) 65