SlideShare a Scribd company logo
はじめてのオフショア、
アジャイル開発
2016.9.02
Agile Offshore Development Conference
株式会社チェンジビジョン
株式会社永和システムマネジメント
平鍋健児
平鍋健児
w ㈱永和システムマネジメント
n  福井市(本社)、神⽥東京(⽀社)、沖縄(事務所)
n  「⾦融」、「医療」、「組込みシステム」開発
n  「Ruby と Agile」を使ったシステム開発
n  Idobata の開発
w 株式会社チェンジビジョン
n  福井市(開発部)、上野東京(本社)
n  astah* (旧:JUDE) の開発
w 平鍋健児
n  UML+マインドマップエディタ astah*の開発
n  要求開発アライアンス、理事
n  翻訳、XP関連書籍、『リーン開発の本質』
『IMPACT MAPPING』等多数。
n  著書『アジャイル開発とスクラム』、『要求開発』
『ソフトウェア開発に役⽴つマインドマップ』
このお話の⽂脈と意図
w XPが2000年に⽇本に紹介された。
n XP-jpというサイトを作って⽇本で活動開始(現 オ
ブラブ)、現永和東京⽀社の種となる。
n WF疲弊の中にいたぼくは、圧倒的な現場感とプロ
グラミングとモチベーション・顧客重視(not 管理
重視)の⼿法に「熱狂」。とにかく⾃分でやってみ
たかった。
w 2000年、社内の有志少⼈数ではじめ、2002
年に中国オフショアにトライ。
w このころの苦労と⼯夫をふりかえる。半分は
古い話。残りの半分は今でも⽣きている!
(C)Eiwa System Management, Inc 3
今買って読むならこれ!
(C)Eiwa System Management, Inc 5
「オフショアアジャイルの課題と実際 

              ─ 分散アジャイル開発事例」	
初出: UML フォーラム 2003 岡村敏弘/平鍋健児
 中国とのオフショアジョイントプロジェクトにおいて、
XP(Extreme Programming)を適用した事例を紹介する。	
開発対象は、UMLモデリングツールJUDEで、2000年の
10月からプロジェクトを開始し、現在に至る。	
同じ場所での開発期間と、離れた場所での開発期間の違
いや、それぞれどのような困難や利点があったかを中心に
説明する。	
コミュニケーションが困難な状況においてアジャイルな開
発を行う場合の課題と解決策を探る。	
アブストラクト
(C)Eiwa System Management, Inc 6
アジェンダ	
w 経緯と方針(中国・上海の状況を交えて)	
w XP概要	
w プロジェクト概要	
w レポート	
w 考察
(C)Eiwa System Management, Inc 7
発端	
w  上海視察帰りの社長曰く,	
n  中国のソフトウェア会社と共同開発
をせよ.	
n  中国は人件費が安い点で注目され
ているが,実際に上海に行ってみ
ると技術者のエネルギーはすごい.
優秀な人材がたくさんいる.単に人
的資源の調達場所としてではなく,
優秀な技術者と友好関係を結びた
い.また,今から爆発するであろう
中国市場も視野に入れたい.	
n  現在開発中のJude(UMLエディタ)
の開発を加速.
(C)Eiwa System Management, Inc 8
中国・上海の状況	
今回ざっくり割愛	
オリジナルは、こちらを参照	
http://www.slideshare.net/hiranabe/distributed-agile-using-uml
(C)Eiwa System Management, Inc 9
中国とのジョイント開発の大方針	
w 中国を労働力リソースとは見ない	
w 将来の展開を見据えた信頼関係作り	
w 共同開発の2つの方向の選択肢	
n 設計と製造の分離 … UMLでの仕様I/F
n 密なチームの結成 … XPチーム	 採用
(C)Eiwa System Management, Inc 10
具体方針	
w XPチームを結成し,UMLエディタを開発する.	
w チームを醸成する.UMLに精通する.	
w オブジェクト指向開発ノウハウを伝授する.	
w 将来の「設計と製造の分離」にも備える.	
w 分散開発のプロセスモデルを探る.	
	
w 両社のWin-Winを確認する宣言
書を作成.	
当時こういう
言い方が流
行っていた	
重視したの
は思いと共
通のゴール
作り。
(C)Eiwa System Management, Inc 11
	
	
	
	
2002年9月23日	
私たち、永和システムマネジメント、SuperV、大陸貿易開発、上坂会計の四社は、日本と中国で
の共同ソフトウェア開発において、新しいビジネス、新しい価値を創造する活動を行います。こ
の活動にあたっては、以下を共通の原則として行動します。	
 	
1.        	チャレンジへの若い情熱(青)	
2.        	出発当初の初心忘るべからず	(義)	
3.        	信頼と友情を基礎にしたアライアンス(愛)	
4.        	自己実現	(夢)	
 	
私たちの夢: 4つのWinが第5のWinを創造する。	
福井宣言	
多分、アジャイル宣言
に影響を受けている。
中国なので、漢字で「思
い」を共通の理解とした。
(C)Eiwa System Management, Inc 12
アジェンダ	
w 経緯と方針(中国・上海の状況を交えて)	
w XP概要	
w プロジェクト概要	
w レポート	
w 考察
(C)Eiwa System Management, Inc 13
XPとは	
w eXtreme Programming
w コーディングとテストに重点	
w 初期設計よりも漸進的再設計	
w 明確な「4つの価値」,「12のプラクティス」を示す	
w ソフトウェア開発は製造工程ではない.

対話を基礎に置いた新しいパラダイム.	
Kent Beck, 1999
Extreme Programming Explained - Embrace Change
( 『XPエクストリーム・プログラミング入門 - ソフトウェア開発の究極の手法 』)	
ここもざっくり飛ば
します。本(前の
ページで紹介した
新訳)を読んでね。
(C)Eiwa System Management, Inc 14
伝統的な開発
(C)Eiwa System Management, Inc 15
XPの開発
(C)Eiwa System Management, Inc 16
4つの価値	
w Communication(コミュニケーション)	
w Simplicity(シンプルさ)	
w Feedback(フィードバック)	
w Courage(勇気)	
Communication +Simplicity+Feedback = Courage
(C)Eiwa System Management, Inc 17
12のプラクティス	
w  Planning Game
n  計画ゲーム	
w  Small Releases
n  ちいさなリリース	
w  Metaphor
n  メタファー	
w  Simple Design
n  シンプルデザイン	
w  Testing
n  テスティング	
w  Refactoring
n  リファクタリング	
w  Pair Programming
n  ペアプログラミング	
w  Collective Ownership
n  共同所有権	
w  Continuous Integration
n  継続的インテグレーション	
w  40-Hour Week
n  週40時間	
w  On-site Customer
n  オンサイト顧客	
w  Coding Standard
n  コーディング標準	
※ 14, 13, 19 などと統廃合が起こっているが,	
ここではオリジナルの12を挙げる
(C)Eiwa System Management, Inc 18
XP Process	
リリース開発
イ
テ
レ
シ
ン
リ
リ
ス
計
画
受
入
れ
テ
ス
ト
2~3ヶ月
イテレーション
・
タ
ス
ク
・
タ
ス
ク
・ ・
イ
テ
レ
シ
ン
計
画
受
入
れ
テ
ス
ト
2~3週間
ストーリーストーリー
タスク
ス
タ
ン
ダ
プ
ミ
テ
ン
グ
ユ
ニ
ト
テ
ス
ト
1~2日
ペ
ア
プ
ロ
グ
ラ
ミ
ン
グ
・・・・・
ペアプログラミング
テ
ス
ト
作
成
ユ
ニ
ト
テ
ス
ト
2~3時間
プ
ロ
グ
ラ
ミ
ン
グ
XPの開発の流れ
ユ
ザ
ス
ト
リ
リ
リ
ス
・ ・ ・ ・ ・ ・
リ
フ
ク
タ
リ
ン
グ
インテグレーション
実行可能リリース
インテグレーション
ストーリーカード
タスクーカード
w プロジェクトはリリースの連続	
n 1リリースは2~3ヶ月	
w リリースはイテレーションの連続	
n イテレーションは2~3週間	
w イテレーションはタスクからなる	
n タスクは1~2日	
w タスクはペアによって開発される	
n 毎朝のスタンドアップミーティング	
n テストファーストによる開発
(C)Eiwa System Management, Inc 19
アジェンダ	
w 経緯と方針(中国・上海の状況を交えて)	
w XP概要	
w プロジェクト概要	
w レポート	
w 考察
(C)Eiwa System Management, Inc 20
開発対象Jude
w UMLモデリングツール	
w Javaアプリケーション	
w 規模(現在)
n  クラス数:1180	
n  全NCSS:約9万行	
(≒コメントや空行以外)	
Packages Classes Methods NCSS per
38	 1180	 9075	 88826	 Project
31	 239	 2338	 Package
8	 75	 Class
10	 Method
プロジェクト概要	
今の astah は、軽く
10倍になっている
(C)Eiwa System Management, Inc 21
ビジョン	
1.Jude竹バージョンを開発しリリースすること	
2.信頼関係を構築し、日本と中国で高品質のソフト
ウェアを共同開発するモデル(ビジネス、プロセ
ス)を見つけること	
 デファクトスタンダード	
2.中国アライアンス	
1.Jude
Jude梅	
Jude竹	
Jude松	
  クリエイティブで生産性
の高いチーム	
  コアとなる機能を装備	
  将来の展開に耐える
レベルに拡張	
  業界特化商品	
  カスタマイズパートナ	
 アーキテクチャの確立	
 基本機能の実装	
  Win-Win関係	
  信頼関係
(C)Eiwa System Management, Inc 22
当社	 Superv(上海)	
体制	
w 中国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 23
スケジュール	
w Startup Phaseで4つの図サポートを追加する	
w Elaboration Phaseで他の基盤機能を追加する	
年
⽉ 10 11 12 1
2002 2003
6 7 8 92 3 4 5
Release4
他基盤機能の拡張
Release1
ステートチャート図、
アクティビティ図追加
準備
Release2
シーケンス図、
コラボレーション図追加
Release3
他基盤機能の拡張
Startup phase では、project velocity
の把握、ナレッジ共有、相互理解、
コミュニケーションに焦点をあてる
Startup Phase
Elaboration Phase
(C)Eiwa System Management, Inc 24
開発場所	
w 中国で一緒に開発スタート → 分散開発	
w 日本で一緒に開発 → 分散開発	
10	 11	 12	 1	 2	 3	
Release1 Release2
日本	
上海	
当社	
当社	
当社	
SV
SuperV	SuperV	
準備 →	
分散	 合同	 分散	 合同	 分散
(C)Eiwa System Management, Inc 25
w  「XPをベースに短期繰り返し型で開発する」	
w  課題	
n  どう情報共有するか	
n  どう品質を維持するか	
n  どうリスクを軽減するか	
w  XPの採用	
n  密なコミュニケーション	
n  ペアプログラミング・ユニットテストによる品質維持	
n  短期リリースと舵取りによるリスク軽減	
w  工夫した点	
n  モデルテスト、コマンドテスト、ストーリテスト	
n  Reflection Sheet、Evaluation Sheetで改善	
プロセス1
(C)Eiwa System Management, Inc 26
プロセス2	
Release1(3 months)
Iteration2(1
weeks)
Iteration1(1
weeks)
Simple
UML
Story1
Rel.2
Meta
model
IterationEvaluation
Story2-1
Story2-N
IterationEvaluation
Iteration3(1
weeks)
Story5-1
Story5-N
IterationEvaluation
Present
ation
Model
Test
Model
Test
Model
Test
Command
Test
Command
Test
IterationN(1
weeks)
Story Test
IterationEvaluation
ReleaseEvaluation
Evaluation Sheet
Improved Process
ReleasePlanning
IterationPlanning
IterationPlanning
IterationPlanning
IterationPlanning
Reflection Sheet
Tracking Sheet
w Release:三ヶ月単位で大きな計画+機能開発+評価を行う	
w Iteration:計画+機能開発+評価を一週間単位で繰り返す	
イテレーション0で、
モデルを作っている。	
イテレーションNは、
手動テストに専念。	
ふりかえりが肝!
(C)Eiwa System Management, Inc 27
ツール・環境	
統合開発環境	 Eclipse
構成管理	 CVS、WinCVS
情報共有	 Swiki
会話	 MSN Messenger
ユニットテスト	 JUnit	
ビルドツール	 Ant
OS Windows2000、XP
コンパイラ	 J2SE 1.4.1
いまはもう古いの
で見ないでね。
(C)Eiwa System Management, Inc 28
アジェンダ	
w 経緯と方針(中国・上海の状況を交えて)	
w XP概要	
w プロジェクト概要	
w レポート	
w 考察
(C)Eiwa System Management, Inc 29
導入
10	 11	 12	 1	 2	 3	
Release1 Release2
1	 2	 3	 4	 5	 6	 7	 8	 1	 2	 3	 4	 5	 6	 7	 8	 9 10	 11	
日本	
上海	
当社	
当社	
当社	
SV
SuperV	SuperV	
導入 →	
w 開発開始前の準備	
w  計画共有、ストーリカード準備、環境準備、体験課題	
分散	 合同	 分散	 合同	 分散
(C)Eiwa System Management, Inc 30
環境準備	
w 「コミュニケーションに適した環境を準備」	
ホワイトボード	
タスク表を貼る壁	
プリンタ	
ホワイトボードを持つチームの部屋	
お菓子
(C)Eiwa System Management, Inc 31
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
「簡単な課題で、プロジェクトでの価値観を共有」	
	
w 課題:「ボーリングの点数計算プログラム」	
w 狙いと効果	
n  XP予行(ユニットテスト、タスク分割と見積もり)	
n  プロジェクトでの価値観共有	
l  理解しやすさ重視	
l  品質重視	
n  メンバの技量把握	
n  コーディング規約注意	
w 期間:1日	
各自のプログラム評価結果	
現在でも新しくチームに入った
人や採用時に、「スキル合わ
せ」としてやっている。
(C)Eiwa System Management, Inc 32
アーキテクチャ1	
w 「共通語のUMLでアーキテクチャを共有」	
jcontrol
jm odel
jview
jsystem
jutil
<<global	utility>>
jview Elem ent
resource
Jude
Startup	Jude	application.
m ain()	m ethod	is	here.
C om m ands	&M odes.
Edit	m odel	and	
control	view .
System .
G lobal,	SecurityM anager,	
System Property
View .
Fram e	&	D ialogs
View 	elem ents.
Has	view 	m odel	and	
Update	drawing
Jude's	M odels
(Presentations)
Properties,	Help,	
Im ages,	M essages
Utilities
JP.co.esm.caddies.jomt• パッケージの
責務と依存関
係中心に理解	
説明UMLの例
(C)Eiwa System Management, Inc 33
Overview of Golf
(Jude Architecture)
Control
Model
View
Com m andListener
<<Interface>>
EntityStoreEvent
M odelUIView
G roupU IView
C om m andFactory
Application
Command
C om m andEvent
C om m andM anager
<<singleton>>
C om m andRunner
11
new
listen
JTree
(from 	swing)
JTreeUIView
G C anvas
(from 	draw)
G C anvasUIView
listen
M ode JM enuBar
(from 	swing)
UIView
** 0..10..1
G olfAction
0..*
new
new
new
Action
(from 	swing)
EntityClipboard
edit
EntityStore new
edit
StateEditable
(from 	undo)
<<Interface>>
0..*0..*
Com m unication	betw een	View 	and	C ontrol	
is	executed	within	C om m andEvent.	View 	
generates	C om m andEvent.
A	C hange	of	M ode	is	notified	to	
View 	w ithin	EntityStoreEvent.
C om m and	edits	M odel.	
It	also	operates	M ode	
and	UI.
0..*
アーキテクチャ2	
w 「Judeは、MVCのフレームワーク上に構築」
(C)Eiwa System Management, Inc 34
Release1
テストの種類	
Iteration2Iteration1
モデル開発	 機能開発	
• コントローラ	
• ビュー	
モデルテスト	 モデルテスト	
コマンドテスト	
IterationN
ストーリテスト	
Model Test
コマンドテスト	
モデルテスト	
(JUnit)
内部で持っているモデル(UMLメタモデルなど)が正しい
かを確認する	
コマンドテスト	
(JUnit)	
アプリケーションを起動した状態でコマンドを送り、コマンド
が正しく実行できるかを確認する	
ストーリテスト	
(手動)	
ユーザストーリを正しく実行できるかを目視で確認する
(C)Eiwa System Management, Inc 35
Release1 合同開発	
10	 11	 12	 1	 2	 3	
Release1 Release2
1	 2	 3	 4	 5	 6	 7	 8	 1	 2	 3	 4	 5	 6	 7	 8	 9 10	 11	
日本	
上海	
当社	
当社	
当社	
SV
SuperV	SuperV	
準備 →	
分散	 合同	 分散	 合同	 分散
(C)Eiwa System Management, Inc 36
Releaseプランニング	
w 「ざっくりと、一緒に計画する」	
w 準備していったStoryカードとStoryリストを利用	
w 合同開発中に一通りの開発を一緒に行う	
見積もり	
(理想日)	
Storyのリスト	
どれからやる
か	
どんな機能を開発したいか
(C)Eiwa System Management, Inc 37
第一イテレーション	
w とにかくやってみる	
w できる限りコミュニケーションする
(C)Eiwa System Management, Inc 38
Iterationプランニング	
w タスク内容	
n ステートチャート図のモデル開発	
n ステートチャート図の生成機能開発	
l (一つ基本機能を先行開発)	
w タスク分割とサインアップ
(C)Eiwa System Management, Inc 39
開発	
w 「ペアプロがチーム内ナレッジ共有に効果大」	
w UMLで開発対象の概略理解	
n  UMLメタモデル等のクラス図、オブジェクト図	
w ペアプログラミング	
n  新しいことに対する勇気、そして理解	
l  アーキテクチャ	
l  開発環境	
n  会話促進	
n  ソースコードで解りあう	
w ユニットテスト	
n  習慣化
(C)Eiwa System Management, Inc 40
トラッキングシート	
w 計画したタスク全て完了	
w Team Velocity = 12.2 Points
w Test = 100% (168 cases)
(C)Eiwa System Management, Inc 41
リフレクションシート
w 「このIterationを振り返り、改善」	
Keep These Try These
w Good mood
w Make jokes
w Talk a lot
w No over work
w Communication by writing and drawing
w Avoiding to one-way communication
w Without projector
w Pair Programming
w Stand up meeting	
w Dash out the completed task
w Eat some sweets
w Put list of story on the wall
w Pair up with different nationality
w Take a 15 minutes rest after lunch
w Open the window during lunch (by
Yves)
w Tracking on wiki
(C)Eiwa System Management, Inc 42
第二イテレーション	
w 機能の開発	
n Storyカードで機能理解	
n ほぼ全ペアの組み合わせ実施	
n 途中で新たなストーリ7つ追加	
n 全タスク開発完了
(C)Eiwa System Management, Inc 43
開発風景
(C)Eiwa System Management, Inc 44
中国余談	
w プラス	
n  時差1時間	
n  漢字、ブロークンな英語	
n  健康志向、週40時間労働	
w マイナス	
n  ビザ、連休	
n  電話、ネットワーク不安定	
n  交通	
w 両方	
n  食事
(C)Eiwa System Management, Inc 45
Release1 分散開発	
10	 11	 12	 1	 2	 3	
Release1 Release2
1	 2	 3	 4	 5	 6	 7	 8	 1	 2	 3	 4	 5	 6	 7	 8	 9 10	 11	
日本	
上海	
当社	
当社	
当社	
SV
SuperV	SuperV	
準備 →	
分散	 合同	 分散	 合同	 分散
(C)Eiwa System Management, Inc 46
分散開発	
w 分散でも大きな分担割をせずXP継続	
w 変化・工夫	
n あらかじめStoryカードを一緒に作成、理解	
n プランニングは、全員でのチャット	
n トラッキング情報は、壁ではなくwikiで共有	
n スタンドアップミーティングは、各社で実施	
n 不明点、アイデアなどは、必要なときにその都度
チャット	
n ペアプロは、継続(奇数人になり減少)
(C)Eiwa System Management, Inc 47
ここから簡単にWebを編集	
Wikiによる情報共有	
サイトマップ	
w Release 1
n  スケジュール(期間分割と大雑把な見通し)	
n  ストーリー 一覧(このリリースの開発対象)	
l  ストーリーカード(必要なストーリーのみ)	
n  Iteration1
l  Reflection Sheet(前回の反省)	
l  Tracking Sheet	
l  Team Velocity
l  テスト結果(テストケース数と結果)	
n  Iteration2
n  ・・・・・
w Release 2
w Release 3
w バグ情報一覧	
w 改善項目一覧	
w Daily自動テスト結果集計	
w 開発のヒント集(開発注意点など)	
w ダウンロード数推移	
Edit
(C)Eiwa System Management, Inc 48
実践プラクティス	
実施	 プラクティス	 どのように実践したか	
○	
計画ゲーム	 開発者全員で見積もり、サインアップ。	
ストーリーカードにより機能を理解。タスクカードは作成せず。	
×	 メタファー	 特に準備せず。	
○	 ちいさなリリース	 2週間単位でリリース。	
○	 シンプルデザイン	 機能の実装に必要な設計のみに集中。	
○	 テスティング	 ユニットテストを実践。テスト駆動は未定着。	
△	 リファクタリング	 気づいたときになるべく実践。必要意識高い。余裕必要。
○	 ペアプログラミング	 よく実践した。常にではなく、デバッグ時は1人。	
○	 共同所有権	 どのファイルも誰でも編集可能。	
○	 継続的インテグレーション	 毎日インテグレーション。毎日自動テスト。	
○	 週40時間	 ほぼ残業ゼロだった。最近はがんばりペース。	
×	 オンサイト顧客	 意見がまとまらない場合など、擬似顧客が決定。	
○	 コーディング標準	 ObjectClubバージョンの標準遵守。Eclipseの自動フォーマット。	
○	
Reflection、Evaluation Iteration毎にReflectionシート作成(5分)。	
Release毎にEvaluationSheet記入。→ 改善意識向上。	
○	
モデルテスト、コマンドテス
ト、ストーリテスト	
テストの種類を3つ用意。コマンドのテストサポートクラス利用。	
特別	
特別
(C)Eiwa System Management, Inc 49
トラブルと対処	
w Visa取得遅れによる出張延期	
n  → 準備課題など	
w 仕様誤解2,3度	
n  慣れによる仕様確認不足が原因	
n  → そのイテレーション内に回復	
n  → 複雑なものはwiki上にイメージと詳細な記述追加	
w 正月休みのずれ+1人ハネムーン	
n  → 他のメンバがカバーし、問題なし	
w ネットワーク不安定でチャット不可	
n  → 他のインスタントメッセンジャで対処
(C)Eiwa System Management, Inc 50
Release1全体	
X’masversion
w 8回のイテレーションを完了	
n  平均TeamVelocity = 12.2
n  テストケース数 = 404	
n  完了したストーリー数 = 約100	
n  ステートチャート図とアクティビティ図追加	
n  他いくつかの改善項目を完了	
n  合同開発・分散開発共に順調に進行	
w X’masバージョンを急遽リリース	
n  予定外、2日で対応	
n  外部へのリリースで、顧客視点の再認識
(C)Eiwa System Management, Inc 51
アジェンダ	
w 経緯と方針(中国・上海の状況を交えて)	
w XP概要	
w プロジェクト概要	
w レポート	
w 考察
(C)Eiwa System Management, Inc 52
分散開発と担当割	
横に大きく割る	 縦に大きく割る	 一緒に開発する	
例	 アプリを日本、	
モデルを中国	
A図を日本、	
B図を中国	
A図を一緒に開発	
頻繁なリリース	 ×	 △	 ○	
担当タスク間の依存	 あり	 少ない	 あり	
コミュニケーション	 疎	 疎	 密	
必要知識	 少	 中	 多	
機能仕様の統一感	 ○	 △	 ○	
品質	 ○	 ○	 ◎	
モチベーション	 △	 ○	 ◎	
w Judeプロジェクトでは、“一緒に開発”を継続
(C)Eiwa System Management, Inc 53
ツールとアジャイル開発	
w 「分散アジャイル開発はツールにも支えられる」
種類	 ツール	 効果	
開発	 Eclipse プログラミングが楽。ソースを追うのが楽。
テストが楽。リファクタリングが楽。	
構成管理	 CVS、WinCVS ソースコード共有が楽。	
会話	 インスタントメッセンジャー
(MSNMessenger他)	
情報・考えを伝えるのがメールに比べ格段
に楽。	
情報共有	 Swiki、TWiki、PukiWiki他	 非常に手軽に情報共有できた。	
XP管理	 XPlanner、
XpTrackerPlugin(TWiki
plugin)	
WebベースのXPプロジェクトサポートシス
テム。(Judeプロジェクトでは未使用)	
ユニットテスト	 JUnit	 テストが楽。	
ビルドツール	 Ant 頻繁なリリースが楽。	
遠隔ペアプロ	 Sangam(Eclipse plugin) 離れた人とのペアプロの可能性。	
(まだ不安定)	
直接会って話をする、壁に貼る、が一番。それに近づける。
(C)Eiwa System Management, Inc 54
UMLの役割	
高い表現力・伝達力と厳密さをもった標準言語	
↓	
ソフトウェアの設計をすばやく共有	
↓	
アライアンスとスピード時代の開発をスムーズに	
w 今回の開発でのUML利用	
n  開発対象Judeのアーキテクチャ共有	
n  モデル(UMLメタモデル含む)の設計	
n  簡単な設計アイデアの交換
(C)Eiwa System Management, Inc 55
プロジェクトの特性	
Judeプロジェクトについての、	
分散アジャイル開発のプラス要因	
w 自分が顧客視点を持てた(UMLツールの利用者)	
w 機能追加が主で大規模な設計が不要だった	
w 参考ツールが存在し、要求仕様を理解しやすかった	
w 一部モデルに関する詳細な仕様書が存在した	
w 日本と中国との開発だった(時差など有利)	
w 自社ソフトウェアの開発だった
(C)Eiwa System Management, Inc 56
うまくいったことと課題	
w うまくいったこと	
n  導入課題での価値観共有	
n  XPでのナレッジ共有、モチベーション維持	
n  リフレクションシートでの改善・改善意識	
n  メールではなくチャットでのリアルタイムな対話	
n  Wikiでのプロジェクト情報共有	
w 課題	
n  コマンドテストの軽量化(テスト実行時間短縮、分割など)	
n  顧客巻き込み	
n  リファクタリングとテストの時間確保	
n  プランニングゲームの時間短縮
(C)Eiwa System Management, Inc 57
今回の事例のポイント	
w JudeをXPで中国と共同開発	
w あえて大きな役割分担せず、“一緒に開発”	
w 同じ場所でチーム開発開始	
w ナレッジ共有、モチベーション維持	
w 分散開発ではコミュニケーションツール活用	
w UMLは重要な共通語の一つ	
w 密なチーム・信頼関係を構築
(C)Eiwa System Management, Inc 58
XPと信頼	
XP 信頼	
XPは、信頼を築く	
XPは、信頼を基礎とする
(C)Eiwa System Management, Inc 59
紹介	
図	
ユースケース図	
クラス図	
シーケンス図	
コラボレーション図	
ステートチャート図	
アクティビティ図	
入力	 Javaソース読み込み	
出力	
図のプリンタ出力	
Javaスケルトンコード出力	
PNG、JPEG出力	
Javadoc形式のHtml出力	
w 機能・特徴	
n  UML1.4サポート	
n  無限回UNDO/REDO(編集の取り消し、やり直し)	
n  大きな図をすばやく移動できる全体マップビュー	
n  クラス図自動生成	
n  Microsoft Office® への図イメージ貼付け	
n  右ドラッグによる斜め方向スクロール	
n  ステレオタイプ毎の色設定	
http://ObjectClub.esm.co.jp/Jude/
にて無償公開中。	
「真のカスタマからのコメントを	
ぜひお寄せください」
p.60
その10年後(2010年〜現在)
(C)Eiwa System Management, Inc 67
まとめ	
w 10年以上続いている、アジャイルオフショア事例です。	
w  ツールは進歩しても、大事な変わらないものが多い。
これらを中心にお話しました(以下)。	
w 特に立ち上げ時はコミュニケーション(人を知る)が大
事。部屋を一緒にする、ペアプロ、など期間を。知ら
ない人とメールでコミュニケーションしない。	
w 「ふりかえり」が超重要。分かれていても、KPTシート
を交換するなど、本音の会話を。	
w 開発方針や、全体絵、会社としての思い、などを最初
に語ろう。	
w (特にこの開発では)絵、UML、による仕様の「理解共
有」(Shared Understanding)が大事。

More Related Content

What's hot

Why Agile Now ? - leanstartup and ARC
Why Agile Now ? - leanstartup and ARCWhy Agile Now ? - leanstartup and ARC
Why Agile Now ? - leanstartup and ARC
Kenji Hiranabe
 
Software design and team design
Software design and team designSoftware design and team design
Software design and team design
Kenji Hiranabe
 
Distributed Agile using UML
Distributed Agile using UMLDistributed Agile using UML
Distributed Agile using UML
Kenji Hiranabe
 
Global Situation of Agile: Rakuten Tech Conference
Global Situation of Agile: Rakuten Tech ConferenceGlobal Situation of Agile: Rakuten Tech Conference
Global Situation of Agile: Rakuten Tech Conference
Kenji Hiranabe
 
Agile Guts We Have Had and Will Have
Agile Guts We Have Had and Will HaveAgile Guts We Have Had and Will Have
Agile Guts We Have Had and Will Have
Kenji Hiranabe
 
Nonaka Scrum Creating Knowledge with Users
Nonaka Scrum Creating Knowledge with UsersNonaka Scrum Creating Knowledge with Users
Nonaka Scrum Creating Knowledge with Users
Kenji Hiranabe
 
Scrum-Fest-Sapporo-2021-Keynote-Our-Journey
Scrum-Fest-Sapporo-2021-Keynote-Our-JourneyScrum-Fest-Sapporo-2021-Keynote-Our-Journey
Scrum-Fest-Sapporo-2021-Keynote-Our-Journey
Kenji Hiranabe
 
Agile Japan 2016 大阪サテライト
Agile Japan 2016 大阪サテライトAgile Japan 2016 大阪サテライト
Agile Japan 2016 大阪サテライト
Naoya Maekawa
 
Agile and Scrum: Theory of Knowledge Creation and A Real Story
Agile and Scrum: Theory of Knowledge Creation and A Real StoryAgile and Scrum: Theory of Knowledge Creation and A Real Story
Agile and Scrum: Theory of Knowledge Creation and A Real Story
Kenji Hiranabe
 
リーンスタートアップ、アジャイル開発導入事例
リーンスタートアップ、アジャイル開発導入事例リーンスタートアップ、アジャイル開発導入事例
リーンスタートアップ、アジャイル開発導入事例
Arata Fujimura
 
爆速 オフショアに挑む
爆速 オフショアに挑む爆速 オフショアに挑む
爆速 オフショアに挑む
大清 加藤
 
Project Facilitation at Kanazawa.rb
Project Facilitation at Kanazawa.rbProject Facilitation at Kanazawa.rb
Project Facilitation at Kanazawa.rb
Kenji Hiranabe
 
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
Yasuharu Nishi
 
アジャイル開発の現在・過去・未来~今を知り、源流を訪ね、先を見据える~
アジャイル開発の現在・過去・未来~今を知り、源流を訪ね、先を見据える~アジャイル開発の現在・過去・未来~今を知り、源流を訪ね、先を見据える~
アジャイル開発の現在・過去・未来~今を知り、源流を訪ね、先を見据える~
Kenji Hiranabe
 
Software Engineering And Role of Agile
Software Engineering And Role of AgileSoftware Engineering And Role of Agile
Software Engineering And Role of Agile
Kenji Hiranabe
 
はじめてのアジャイル
はじめてのアジャイルはじめてのアジャイル
はじめてのアジャイル
Yoshihito Kuranuki
 
チーム開発を支えるプロセス再入門~アジャイル開発とスクラム~ - TFSUG
チーム開発を支えるプロセス再入門~アジャイル開発とスクラム~ - TFSUGチーム開発を支えるプロセス再入門~アジャイル開発とスクラム~ - TFSUG
チーム開発を支えるプロセス再入門~アジャイル開発とスクラム~ - TFSUG
満徳 関
 
Agile Ba with Covid at Redmine Japan 2020
Agile Ba with Covid at Redmine Japan 2020Agile Ba with Covid at Redmine Japan 2020
Agile Ba with Covid at Redmine Japan 2020
Kenji Hiranabe
 
企業システムにアジャイルは必要か
企業システムにアジャイルは必要か企業システムにアジャイルは必要か
企業システムにアジャイルは必要か
Hiromasa Oka
 
10 years devsumi agile and the future
10 years devsumi agile and the future10 years devsumi agile and the future
10 years devsumi agile and the futureKenji Hiranabe
 

What's hot (20)

Why Agile Now ? - leanstartup and ARC
Why Agile Now ? - leanstartup and ARCWhy Agile Now ? - leanstartup and ARC
Why Agile Now ? - leanstartup and ARC
 
Software design and team design
Software design and team designSoftware design and team design
Software design and team design
 
Distributed Agile using UML
Distributed Agile using UMLDistributed Agile using UML
Distributed Agile using UML
 
Global Situation of Agile: Rakuten Tech Conference
Global Situation of Agile: Rakuten Tech ConferenceGlobal Situation of Agile: Rakuten Tech Conference
Global Situation of Agile: Rakuten Tech Conference
 
Agile Guts We Have Had and Will Have
Agile Guts We Have Had and Will HaveAgile Guts We Have Had and Will Have
Agile Guts We Have Had and Will Have
 
Nonaka Scrum Creating Knowledge with Users
Nonaka Scrum Creating Knowledge with UsersNonaka Scrum Creating Knowledge with Users
Nonaka Scrum Creating Knowledge with Users
 
Scrum-Fest-Sapporo-2021-Keynote-Our-Journey
Scrum-Fest-Sapporo-2021-Keynote-Our-JourneyScrum-Fest-Sapporo-2021-Keynote-Our-Journey
Scrum-Fest-Sapporo-2021-Keynote-Our-Journey
 
Agile Japan 2016 大阪サテライト
Agile Japan 2016 大阪サテライトAgile Japan 2016 大阪サテライト
Agile Japan 2016 大阪サテライト
 
Agile and Scrum: Theory of Knowledge Creation and A Real Story
Agile and Scrum: Theory of Knowledge Creation and A Real StoryAgile and Scrum: Theory of Knowledge Creation and A Real Story
Agile and Scrum: Theory of Knowledge Creation and A Real Story
 
リーンスタートアップ、アジャイル開発導入事例
リーンスタートアップ、アジャイル開発導入事例リーンスタートアップ、アジャイル開発導入事例
リーンスタートアップ、アジャイル開発導入事例
 
爆速 オフショアに挑む
爆速 オフショアに挑む爆速 オフショアに挑む
爆速 オフショアに挑む
 
Project Facilitation at Kanazawa.rb
Project Facilitation at Kanazawa.rbProject Facilitation at Kanazawa.rb
Project Facilitation at Kanazawa.rb
 
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
 
アジャイル開発の現在・過去・未来~今を知り、源流を訪ね、先を見据える~
アジャイル開発の現在・過去・未来~今を知り、源流を訪ね、先を見据える~アジャイル開発の現在・過去・未来~今を知り、源流を訪ね、先を見据える~
アジャイル開発の現在・過去・未来~今を知り、源流を訪ね、先を見据える~
 
Software Engineering And Role of Agile
Software Engineering And Role of AgileSoftware Engineering And Role of Agile
Software Engineering And Role of Agile
 
はじめてのアジャイル
はじめてのアジャイルはじめてのアジャイル
はじめてのアジャイル
 
チーム開発を支えるプロセス再入門~アジャイル開発とスクラム~ - TFSUG
チーム開発を支えるプロセス再入門~アジャイル開発とスクラム~ - TFSUGチーム開発を支えるプロセス再入門~アジャイル開発とスクラム~ - TFSUG
チーム開発を支えるプロセス再入門~アジャイル開発とスクラム~ - TFSUG
 
Agile Ba with Covid at Redmine Japan 2020
Agile Ba with Covid at Redmine Japan 2020Agile Ba with Covid at Redmine Japan 2020
Agile Ba with Covid at Redmine Japan 2020
 
企業システムにアジャイルは必要か
企業システムにアジャイルは必要か企業システムにアジャイルは必要か
企業システムにアジャイルは必要か
 
10 years devsumi agile and the future
10 years devsumi agile and the future10 years devsumi agile and the future
10 years devsumi agile and the future
 

Viewers also liked

Bakusoku Offshore Development at Gulliver
Bakusoku Offshore Development at GulliverBakusoku Offshore Development at Gulliver
Bakusoku Offshore Development at Gulliver
Kenji Hiranabe
 
俺たちの新人教育!!
俺たちの新人教育!!俺たちの新人教育!!
俺たちの新人教育!!
Koichi ITO
 
[XP祭り2016]野良LT~KPT=>KPTA=>KPTATAH~
[XP祭り2016]野良LT~KPT=>KPTA=>KPTATAH~[XP祭り2016]野良LT~KPT=>KPTA=>KPTATAH~
[XP祭り2016]野良LT~KPT=>KPTA=>KPTATAH~
Shigeki Morizane
 
ふりかえり
ふりかえりふりかえり
ふりかえり
terahide
 
Digitization
DigitizationDigitization
Digitization
Kenji Hiranabe
 
Digitization-software is eating the world
Digitization-software is eating the worldDigitization-software is eating the world
Digitization-software is eating the world
Kenji Hiranabe
 
Innovation and Management in the Era of “Co-Creation”—Cultivating Knowledge...
 Innovation and Management  in the Era of “Co-Creation”—Cultivating Knowledge... Innovation and Management  in the Era of “Co-Creation”—Cultivating Knowledge...
Innovation and Management in the Era of “Co-Creation”—Cultivating Knowledge...
Kenji Hiranabe
 
Linda RisingFearless Change at AgileJapan 2011
Linda RisingFearless Change at AgileJapan 2011Linda RisingFearless Change at AgileJapan 2011
Linda RisingFearless Change at AgileJapan 2011
Kenji Hiranabe
 
ゼロから始めるプロダクト開発
ゼロから始めるプロダクト開発ゼロから始めるプロダクト開発
ゼロから始めるプロダクト開発
ESM SEC
 
People As the Conveyor of Knowledge at Agile Vietnam
People As the Conveyor of Knowledge at Agile VietnamPeople As the Conveyor of Knowledge at Agile Vietnam
People As the Conveyor of Knowledge at Agile Vietnam
Kenji Hiranabe
 
ESMのアジャイル開発
ESMのアジャイル開発ESMのアジャイル開発
ESMのアジャイル開発
ESM SEC
 
You Should Attend Rubykaigi2010
You Should Attend Rubykaigi2010You Should Attend Rubykaigi2010
You Should Attend Rubykaigi2010
Shintaro Kakutani
 
Panel discussion Nonaka with Hiranabe At Scrum Gathering Tokyo 2013
Panel discussion Nonaka with Hiranabe At Scrum Gathering Tokyo 2013Panel discussion Nonaka with Hiranabe At Scrum Gathering Tokyo 2013
Panel discussion Nonaka with Hiranabe At Scrum Gathering Tokyo 2013
Kenji Hiranabe
 
アジャイルアンチパターン 〜私がアジャイルの1周目で学んだこととXPの次の10年〜
アジャイルアンチパターン 〜私がアジャイルの1周目で学んだこととXPの次の10年〜アジャイルアンチパターン 〜私がアジャイルの1周目で学んだこととXPの次の10年〜
アジャイルアンチパターン 〜私がアジャイルの1周目で学んだこととXPの次の10年〜
Fumihiko Kinoshita
 
"Ordinary" System Development
"Ordinary" System Development"Ordinary" System Development
"Ordinary" System DevelopmentShintaro Kakutani
 
アジャイル開発をよりアジャイルに
アジャイル開発をよりアジャイルにアジャイル開発をよりアジャイルに
アジャイル開発をよりアジャイルに
ESM SEC
 
Modern Agile - Keynote at Agile2016
Modern Agile - Keynote at Agile2016Modern Agile - Keynote at Agile2016
Modern Agile - Keynote at Agile2016
Joshua Kerievsky
 
世界最大級のアジャイルカンファレンス報告:Agile2016参加レポート
世界最大級のアジャイルカンファレンス報告:Agile2016参加レポート世界最大級のアジャイルカンファレンス報告:Agile2016参加レポート
世界最大級のアジャイルカンファレンス報告:Agile2016参加レポート
Hiroyuki Ito
 
KPTの理論と実践 公開用 プロジェクトへの「ふりかえりカイゼン」の導入で学んだこと
KPTの理論と実践 公開用 プロジェクトへの「ふりかえりカイゼン」の導入で学んだことKPTの理論と実践 公開用 プロジェクトへの「ふりかえりカイゼン」の導入で学んだこと
KPTの理論と実践 公開用 プロジェクトへの「ふりかえりカイゼン」の導入で学んだこと
ESM SEC
 
BigQuery勉強会 Standard SQL Dialect
BigQuery勉強会 Standard SQL DialectBigQuery勉強会 Standard SQL Dialect
BigQuery勉強会 Standard SQL Dialect
Ken Morishita
 

Viewers also liked (20)

Bakusoku Offshore Development at Gulliver
Bakusoku Offshore Development at GulliverBakusoku Offshore Development at Gulliver
Bakusoku Offshore Development at Gulliver
 
俺たちの新人教育!!
俺たちの新人教育!!俺たちの新人教育!!
俺たちの新人教育!!
 
[XP祭り2016]野良LT~KPT=>KPTA=>KPTATAH~
[XP祭り2016]野良LT~KPT=>KPTA=>KPTATAH~[XP祭り2016]野良LT~KPT=>KPTA=>KPTATAH~
[XP祭り2016]野良LT~KPT=>KPTA=>KPTATAH~
 
ふりかえり
ふりかえりふりかえり
ふりかえり
 
Digitization
DigitizationDigitization
Digitization
 
Digitization-software is eating the world
Digitization-software is eating the worldDigitization-software is eating the world
Digitization-software is eating the world
 
Innovation and Management in the Era of “Co-Creation”—Cultivating Knowledge...
 Innovation and Management  in the Era of “Co-Creation”—Cultivating Knowledge... Innovation and Management  in the Era of “Co-Creation”—Cultivating Knowledge...
Innovation and Management in the Era of “Co-Creation”—Cultivating Knowledge...
 
Linda RisingFearless Change at AgileJapan 2011
Linda RisingFearless Change at AgileJapan 2011Linda RisingFearless Change at AgileJapan 2011
Linda RisingFearless Change at AgileJapan 2011
 
ゼロから始めるプロダクト開発
ゼロから始めるプロダクト開発ゼロから始めるプロダクト開発
ゼロから始めるプロダクト開発
 
People As the Conveyor of Knowledge at Agile Vietnam
People As the Conveyor of Knowledge at Agile VietnamPeople As the Conveyor of Knowledge at Agile Vietnam
People As the Conveyor of Knowledge at Agile Vietnam
 
ESMのアジャイル開発
ESMのアジャイル開発ESMのアジャイル開発
ESMのアジャイル開発
 
You Should Attend Rubykaigi2010
You Should Attend Rubykaigi2010You Should Attend Rubykaigi2010
You Should Attend Rubykaigi2010
 
Panel discussion Nonaka with Hiranabe At Scrum Gathering Tokyo 2013
Panel discussion Nonaka with Hiranabe At Scrum Gathering Tokyo 2013Panel discussion Nonaka with Hiranabe At Scrum Gathering Tokyo 2013
Panel discussion Nonaka with Hiranabe At Scrum Gathering Tokyo 2013
 
アジャイルアンチパターン 〜私がアジャイルの1周目で学んだこととXPの次の10年〜
アジャイルアンチパターン 〜私がアジャイルの1周目で学んだこととXPの次の10年〜アジャイルアンチパターン 〜私がアジャイルの1周目で学んだこととXPの次の10年〜
アジャイルアンチパターン 〜私がアジャイルの1周目で学んだこととXPの次の10年〜
 
"Ordinary" System Development
"Ordinary" System Development"Ordinary" System Development
"Ordinary" System Development
 
アジャイル開発をよりアジャイルに
アジャイル開発をよりアジャイルにアジャイル開発をよりアジャイルに
アジャイル開発をよりアジャイルに
 
Modern Agile - Keynote at Agile2016
Modern Agile - Keynote at Agile2016Modern Agile - Keynote at Agile2016
Modern Agile - Keynote at Agile2016
 
世界最大級のアジャイルカンファレンス報告:Agile2016参加レポート
世界最大級のアジャイルカンファレンス報告:Agile2016参加レポート世界最大級のアジャイルカンファレンス報告:Agile2016参加レポート
世界最大級のアジャイルカンファレンス報告:Agile2016参加レポート
 
KPTの理論と実践 公開用 プロジェクトへの「ふりかえりカイゼン」の導入で学んだこと
KPTの理論と実践 公開用 プロジェクトへの「ふりかえりカイゼン」の導入で学んだことKPTの理論と実践 公開用 プロジェクトへの「ふりかえりカイゼン」の導入で学んだこと
KPTの理論と実践 公開用 プロジェクトへの「ふりかえりカイゼン」の導入で学んだこと
 
BigQuery勉強会 Standard SQL Dialect
BigQuery勉強会 Standard SQL DialectBigQuery勉強会 Standard SQL Dialect
BigQuery勉強会 Standard SQL Dialect
 

Similar to Offshore Agile Development in XP

とりあえず30分でひととおり分かった気にはなれるアジャイル入門
とりあえず30分でひととおり分かった気にはなれるアジャイル入門とりあえず30分でひととおり分かった気にはなれるアジャイル入門
とりあえず30分でひととおり分かった気にはなれるアジャイル入門
陽一 滝川
 
ソフトウェア開発の現場風景
ソフトウェア開発の現場風景ソフトウェア開発の現場風景
ソフトウェア開発の現場風景
Koichi ITO
 
Vantan shinsuke miyaki_upload
Vantan shinsuke miyaki_uploadVantan shinsuke miyaki_upload
Vantan shinsuke miyaki_upload
Shinsuke Miyaki
 
To be sn agile enterprise
To be sn agile enterpriseTo be sn agile enterprise
To be sn agile enterprise
Rakuten Group, Inc.
 
企画-計画-開発-ビルド-デプロイ 価値のパイプラインできてますか?【字幕つき】 #kansumiA2 #devsumi
企画-計画-開発-ビルド-デプロイ 価値のパイプラインできてますか?【字幕つき】 #kansumiA2 #devsumi 企画-計画-開発-ビルド-デプロイ 価値のパイプラインできてますか?【字幕つき】 #kansumiA2 #devsumi
企画-計画-開発-ビルド-デプロイ 価値のパイプラインできてますか?【字幕つき】 #kansumiA2 #devsumi
智治 長沢
 
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten, core skills neede...
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten,  core skills  neede...楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten,  core skills  neede...
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten, core skills neede...
Rakuten Group, Inc.
 
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】 Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
智治 長沢
 
JAWS FESTA Kansai 2013 | ビジネスに貢献する戦略的なITのためのDevOps
JAWS FESTA Kansai 2013 | ビジネスに貢献する戦略的なITのためのDevOpsJAWS FESTA Kansai 2013 | ビジネスに貢献する戦略的なITのためのDevOps
JAWS FESTA Kansai 2013 | ビジネスに貢献する戦略的なITのためのDevOps
智治 長沢
 
Semat - a Japanese introduction
Semat - a Japanese introductionSemat - a Japanese introduction
Semat - a Japanese introduction
Kenji Hiranabe
 
JaSST'13 Kansai 継続的フィードバックによる品質運営
JaSST'13 Kansai 継続的フィードバックによる品質運営JaSST'13 Kansai 継続的フィードバックによる品質運営
JaSST'13 Kansai 継続的フィードバックによる品質運営
智治 長沢
 
サービス開発における工程
サービス開発における工程サービス開発における工程
サービス開発における工程
Hidetoshi Mori
 
20160710_PMI日本フォーラム2016_講演資料_ITI小久保v1.1
20160710_PMI日本フォーラム2016_講演資料_ITI小久保v1.120160710_PMI日本フォーラム2016_講演資料_ITI小久保v1.1
20160710_PMI日本フォーラム2016_講演資料_ITI小久保v1.1
it-innovation
 
Ci&T Anti-Software Factory Pattern
Ci&T Anti-Software Factory PatternCi&T Anti-Software Factory Pattern
Ci&T Anti-Software Factory Pattern
Yoshiyuki Ueda
 
XDDPプラクティス路線図とパターン・ランゲージ ~時を超えた派生開発の道~
XDDPプラクティス路線図とパターン・ランゲージ ~時を超えた派生開発の道~XDDPプラクティス路線図とパターン・ランゲージ ~時を超えた派生開発の道~
XDDPプラクティス路線図とパターン・ランゲージ ~時を超えた派生開発の道~
Noriko Kawaguchi
 
市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望について市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望について
Ken Azuma
 
Modeling in the Agile Age and casual astah models
Modeling in the Agile Age and casual astah modelsModeling in the Agile Age and casual astah models
Modeling in the Agile Age and casual astah models
Kenji Hiranabe
 
QA SUMMIT in GDC2013
QA SUMMIT in GDC2013QA SUMMIT in GDC2013
QA SUMMIT in GDC2013
IGDA JAPAN
 
市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望について市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望について
Ken Azuma
 
Information20120312
Information20120312Information20120312
Information20120312b-slash
 
Relationship betweenddd and mvc
Relationship betweenddd and mvcRelationship betweenddd and mvc
Relationship betweenddd and mvc
Takao Tetsuro
 

Similar to Offshore Agile Development in XP (20)

とりあえず30分でひととおり分かった気にはなれるアジャイル入門
とりあえず30分でひととおり分かった気にはなれるアジャイル入門とりあえず30分でひととおり分かった気にはなれるアジャイル入門
とりあえず30分でひととおり分かった気にはなれるアジャイル入門
 
ソフトウェア開発の現場風景
ソフトウェア開発の現場風景ソフトウェア開発の現場風景
ソフトウェア開発の現場風景
 
Vantan shinsuke miyaki_upload
Vantan shinsuke miyaki_uploadVantan shinsuke miyaki_upload
Vantan shinsuke miyaki_upload
 
To be sn agile enterprise
To be sn agile enterpriseTo be sn agile enterprise
To be sn agile enterprise
 
企画-計画-開発-ビルド-デプロイ 価値のパイプラインできてますか?【字幕つき】 #kansumiA2 #devsumi
企画-計画-開発-ビルド-デプロイ 価値のパイプラインできてますか?【字幕つき】 #kansumiA2 #devsumi 企画-計画-開発-ビルド-デプロイ 価値のパイプラインできてますか?【字幕つき】 #kansumiA2 #devsumi
企画-計画-開発-ビルド-デプロイ 価値のパイプラインできてますか?【字幕つき】 #kansumiA2 #devsumi
 
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten, core skills neede...
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten,  core skills  neede...楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten,  core skills  neede...
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten, core skills neede...
 
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】 Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
 
JAWS FESTA Kansai 2013 | ビジネスに貢献する戦略的なITのためのDevOps
JAWS FESTA Kansai 2013 | ビジネスに貢献する戦略的なITのためのDevOpsJAWS FESTA Kansai 2013 | ビジネスに貢献する戦略的なITのためのDevOps
JAWS FESTA Kansai 2013 | ビジネスに貢献する戦略的なITのためのDevOps
 
Semat - a Japanese introduction
Semat - a Japanese introductionSemat - a Japanese introduction
Semat - a Japanese introduction
 
JaSST'13 Kansai 継続的フィードバックによる品質運営
JaSST'13 Kansai 継続的フィードバックによる品質運営JaSST'13 Kansai 継続的フィードバックによる品質運営
JaSST'13 Kansai 継続的フィードバックによる品質運営
 
サービス開発における工程
サービス開発における工程サービス開発における工程
サービス開発における工程
 
20160710_PMI日本フォーラム2016_講演資料_ITI小久保v1.1
20160710_PMI日本フォーラム2016_講演資料_ITI小久保v1.120160710_PMI日本フォーラム2016_講演資料_ITI小久保v1.1
20160710_PMI日本フォーラム2016_講演資料_ITI小久保v1.1
 
Ci&T Anti-Software Factory Pattern
Ci&T Anti-Software Factory PatternCi&T Anti-Software Factory Pattern
Ci&T Anti-Software Factory Pattern
 
XDDPプラクティス路線図とパターン・ランゲージ ~時を超えた派生開発の道~
XDDPプラクティス路線図とパターン・ランゲージ ~時を超えた派生開発の道~XDDPプラクティス路線図とパターン・ランゲージ ~時を超えた派生開発の道~
XDDPプラクティス路線図とパターン・ランゲージ ~時を超えた派生開発の道~
 
市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望について市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望について
 
Modeling in the Agile Age and casual astah models
Modeling in the Agile Age and casual astah modelsModeling in the Agile Age and casual astah models
Modeling in the Agile Age and casual astah models
 
QA SUMMIT in GDC2013
QA SUMMIT in GDC2013QA SUMMIT in GDC2013
QA SUMMIT in GDC2013
 
市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望について市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望について
 
Information20120312
Information20120312Information20120312
Information20120312
 
Relationship betweenddd and mvc
Relationship betweenddd and mvcRelationship betweenddd and mvc
Relationship betweenddd and mvc
 

More from Kenji Hiranabe

effective ba for online communication
effective ba for online communication effective ba for online communication
effective ba for online communication
Kenji Hiranabe
 
線形代数の視覚的理解 V1.1-Gストラング勉強会
線形代数の視覚的理解 V1.1-Gストラング勉強会線形代数の視覚的理解 V1.1-Gストラング勉強会
線形代数の視覚的理解 V1.1-Gストラング勉強会
Kenji Hiranabe
 
Math in Machine Learning / PCA and SVD with Applications
Math in Machine Learning / PCA and SVD with ApplicationsMath in Machine Learning / PCA and SVD with Applications
Math in Machine Learning / PCA and SVD with Applications
Kenji Hiranabe
 
Graphic Notes on Linear Algebra and Data Science
Graphic Notes on Linear Algebra and Data ScienceGraphic Notes on Linear Algebra and Data Science
Graphic Notes on Linear Algebra and Data Science
Kenji Hiranabe
 
Appreciating Your Way to XP
Appreciating Your Way to XPAppreciating Your Way to XP
Appreciating Your Way to XP
Kenji Hiranabe
 
Digital Business and Agile
Digital Business and AgileDigital Business and Agile
Digital Business and Agile
Kenji Hiranabe
 
Graphic Notes on Introduction to Linear Algebra
Graphic Notes on Introduction to Linear AlgebraGraphic Notes on Introduction to Linear Algebra
Graphic Notes on Introduction to Linear Algebra
Kenji Hiranabe
 
線形代数の視覚的理解のためのノート
線形代数の視覚的理解のためのノート線形代数の視覚的理解のためのノート
線形代数の視覚的理解のためのノート
Kenji Hiranabe
 
with コロナ時代のアジャイルとコミュニケーション
with コロナ時代のアジャイルとコミュニケーションwith コロナ時代のアジャイルとコミュニケーション
with コロナ時代のアジャイルとコミュニケーション
Kenji Hiranabe
 
ESM Agile Studio DX and COVID
ESM Agile Studio DX and COVIDESM Agile Studio DX and COVID
ESM Agile Studio DX and COVID
Kenji Hiranabe
 
Agile Ba with Covid
Agile Ba with CovidAgile Ba with Covid
Agile Ba with Covid
Kenji Hiranabe
 
Essence position talk by hiranabe
Essence position talk by hiranabeEssence position talk by hiranabe
Essence position talk by hiranabe
Kenji Hiranabe
 
Agile Scrum at Knowledge Forum 2020
Agile Scrum at Knowledge Forum 2020Agile Scrum at Knowledge Forum 2020
Agile Scrum at Knowledge Forum 2020
Kenji Hiranabe
 
Ba and digital here now ness
Ba and digital here now nessBa and digital here now ness
Ba and digital here now ness
Kenji Hiranabe
 
Modeling in the Agile Age
Modeling in the Agile Age Modeling in the Agile Age
Modeling in the Agile Age
Kenji Hiranabe
 
Agile in automotive industry
Agile in automotive industryAgile in automotive industry
Agile in automotive industry
Kenji Hiranabe
 
Introduction to Agile - how business and engineer team up
Introduction to Agile - how business and engineer team upIntroduction to Agile - how business and engineer team up
Introduction to Agile - how business and engineer team up
Kenji Hiranabe
 
5-principles-for-project-facilitation
5-principles-for-project-facilitation5-principles-for-project-facilitation
5-principles-for-project-facilitation
Kenji Hiranabe
 
Nonaka Scrum - The New New Product Development Game, SECI model, The US Marin...
Nonaka Scrum - The New New Product Development Game, SECI model, The US Marin...Nonaka Scrum - The New New Product Development Game, SECI model, The US Marin...
Nonaka Scrum - The New New Product Development Game, SECI model, The US Marin...
Kenji Hiranabe
 
デジタルビジネスの潮流とアジャイル開発~ビジネスとエンジニアの協働チームづくり~
デジタルビジネスの潮流とアジャイル開発~ビジネスとエンジニアの協働チームづくり~デジタルビジネスの潮流とアジャイル開発~ビジネスとエンジニアの協働チームづくり~
デジタルビジネスの潮流とアジャイル開発~ビジネスとエンジニアの協働チームづくり~
Kenji Hiranabe
 

More from Kenji Hiranabe (20)

effective ba for online communication
effective ba for online communication effective ba for online communication
effective ba for online communication
 
線形代数の視覚的理解 V1.1-Gストラング勉強会
線形代数の視覚的理解 V1.1-Gストラング勉強会線形代数の視覚的理解 V1.1-Gストラング勉強会
線形代数の視覚的理解 V1.1-Gストラング勉強会
 
Math in Machine Learning / PCA and SVD with Applications
Math in Machine Learning / PCA and SVD with ApplicationsMath in Machine Learning / PCA and SVD with Applications
Math in Machine Learning / PCA and SVD with Applications
 
Graphic Notes on Linear Algebra and Data Science
Graphic Notes on Linear Algebra and Data ScienceGraphic Notes on Linear Algebra and Data Science
Graphic Notes on Linear Algebra and Data Science
 
Appreciating Your Way to XP
Appreciating Your Way to XPAppreciating Your Way to XP
Appreciating Your Way to XP
 
Digital Business and Agile
Digital Business and AgileDigital Business and Agile
Digital Business and Agile
 
Graphic Notes on Introduction to Linear Algebra
Graphic Notes on Introduction to Linear AlgebraGraphic Notes on Introduction to Linear Algebra
Graphic Notes on Introduction to Linear Algebra
 
線形代数の視覚的理解のためのノート
線形代数の視覚的理解のためのノート線形代数の視覚的理解のためのノート
線形代数の視覚的理解のためのノート
 
with コロナ時代のアジャイルとコミュニケーション
with コロナ時代のアジャイルとコミュニケーションwith コロナ時代のアジャイルとコミュニケーション
with コロナ時代のアジャイルとコミュニケーション
 
ESM Agile Studio DX and COVID
ESM Agile Studio DX and COVIDESM Agile Studio DX and COVID
ESM Agile Studio DX and COVID
 
Agile Ba with Covid
Agile Ba with CovidAgile Ba with Covid
Agile Ba with Covid
 
Essence position talk by hiranabe
Essence position talk by hiranabeEssence position talk by hiranabe
Essence position talk by hiranabe
 
Agile Scrum at Knowledge Forum 2020
Agile Scrum at Knowledge Forum 2020Agile Scrum at Knowledge Forum 2020
Agile Scrum at Knowledge Forum 2020
 
Ba and digital here now ness
Ba and digital here now nessBa and digital here now ness
Ba and digital here now ness
 
Modeling in the Agile Age
Modeling in the Agile Age Modeling in the Agile Age
Modeling in the Agile Age
 
Agile in automotive industry
Agile in automotive industryAgile in automotive industry
Agile in automotive industry
 
Introduction to Agile - how business and engineer team up
Introduction to Agile - how business and engineer team upIntroduction to Agile - how business and engineer team up
Introduction to Agile - how business and engineer team up
 
5-principles-for-project-facilitation
5-principles-for-project-facilitation5-principles-for-project-facilitation
5-principles-for-project-facilitation
 
Nonaka Scrum - The New New Product Development Game, SECI model, The US Marin...
Nonaka Scrum - The New New Product Development Game, SECI model, The US Marin...Nonaka Scrum - The New New Product Development Game, SECI model, The US Marin...
Nonaka Scrum - The New New Product Development Game, SECI model, The US Marin...
 
デジタルビジネスの潮流とアジャイル開発~ビジネスとエンジニアの協働チームづくり~
デジタルビジネスの潮流とアジャイル開発~ビジネスとエンジニアの協働チームづくり~デジタルビジネスの潮流とアジャイル開発~ビジネスとエンジニアの協働チームづくり~
デジタルビジネスの潮流とアジャイル開発~ビジネスとエンジニアの協働チームづくり~
 

Offshore Agile Development in XP

  • 1. はじめてのオフショア、 アジャイル開発 2016.9.02 Agile Offshore Development Conference 株式会社チェンジビジョン 株式会社永和システムマネジメント 平鍋健児
  • 2. 平鍋健児 w ㈱永和システムマネジメント n  福井市(本社)、神⽥東京(⽀社)、沖縄(事務所) n  「⾦融」、「医療」、「組込みシステム」開発 n  「Ruby と Agile」を使ったシステム開発 n  Idobata の開発 w 株式会社チェンジビジョン n  福井市(開発部)、上野東京(本社) n  astah* (旧:JUDE) の開発 w 平鍋健児 n  UML+マインドマップエディタ astah*の開発 n  要求開発アライアンス、理事 n  翻訳、XP関連書籍、『リーン開発の本質』 『IMPACT MAPPING』等多数。 n  著書『アジャイル開発とスクラム』、『要求開発』 『ソフトウェア開発に役⽴つマインドマップ』
  • 5. (C)Eiwa System Management, Inc 5 「オフショアアジャイルの課題と実際 
               ─ 分散アジャイル開発事例」 初出: UML フォーラム 2003 岡村敏弘/平鍋健児  中国とのオフショアジョイントプロジェクトにおいて、 XP(Extreme Programming)を適用した事例を紹介する。 開発対象は、UMLモデリングツールJUDEで、2000年の 10月からプロジェクトを開始し、現在に至る。 同じ場所での開発期間と、離れた場所での開発期間の違 いや、それぞれどのような困難や利点があったかを中心に 説明する。 コミュニケーションが困難な状況においてアジャイルな開 発を行う場合の課題と解決策を探る。 アブストラクト
  • 6. (C)Eiwa System Management, Inc 6 アジェンダ w 経緯と方針(中国・上海の状況を交えて) w XP概要 w プロジェクト概要 w レポート w 考察
  • 7. (C)Eiwa System Management, Inc 7 発端 w  上海視察帰りの社長曰く, n  中国のソフトウェア会社と共同開発 をせよ. n  中国は人件費が安い点で注目され ているが,実際に上海に行ってみ ると技術者のエネルギーはすごい. 優秀な人材がたくさんいる.単に人 的資源の調達場所としてではなく, 優秀な技術者と友好関係を結びた い.また,今から爆発するであろう 中国市場も視野に入れたい. n  現在開発中のJude(UMLエディタ) の開発を加速.
  • 8. (C)Eiwa System Management, Inc 8 中国・上海の状況 今回ざっくり割愛 オリジナルは、こちらを参照 http://www.slideshare.net/hiranabe/distributed-agile-using-uml
  • 9. (C)Eiwa System Management, Inc 9 中国とのジョイント開発の大方針 w 中国を労働力リソースとは見ない w 将来の展開を見据えた信頼関係作り w 共同開発の2つの方向の選択肢 n 設計と製造の分離 … UMLでの仕様I/F n 密なチームの結成 … XPチーム 採用
  • 10. (C)Eiwa System Management, Inc 10 具体方針 w XPチームを結成し,UMLエディタを開発する. w チームを醸成する.UMLに精通する. w オブジェクト指向開発ノウハウを伝授する. w 将来の「設計と製造の分離」にも備える. w 分散開発のプロセスモデルを探る. w 両社のWin-Winを確認する宣言 書を作成. 当時こういう 言い方が流 行っていた 重視したの は思いと共 通のゴール 作り。
  • 11. (C)Eiwa System Management, Inc 11 2002年9月23日 私たち、永和システムマネジメント、SuperV、大陸貿易開発、上坂会計の四社は、日本と中国で の共同ソフトウェア開発において、新しいビジネス、新しい価値を創造する活動を行います。こ の活動にあたっては、以下を共通の原則として行動します。   1.         チャレンジへの若い情熱(青) 2.         出発当初の初心忘るべからず (義) 3.         信頼と友情を基礎にしたアライアンス(愛) 4.         自己実現 (夢)   私たちの夢: 4つのWinが第5のWinを創造する。 福井宣言 多分、アジャイル宣言 に影響を受けている。 中国なので、漢字で「思 い」を共通の理解とした。
  • 12. (C)Eiwa System Management, Inc 12 アジェンダ w 経緯と方針(中国・上海の状況を交えて) w XP概要 w プロジェクト概要 w レポート w 考察
  • 13. (C)Eiwa System Management, Inc 13 XPとは w eXtreme Programming w コーディングとテストに重点 w 初期設計よりも漸進的再設計 w 明確な「4つの価値」,「12のプラクティス」を示す w ソフトウェア開発は製造工程ではない.
 対話を基礎に置いた新しいパラダイム. Kent Beck, 1999 Extreme Programming Explained - Embrace Change ( 『XPエクストリーム・プログラミング入門 - ソフトウェア開発の究極の手法 』) ここもざっくり飛ば します。本(前の ページで紹介した 新訳)を読んでね。
  • 14. (C)Eiwa System Management, Inc 14 伝統的な開発
  • 15. (C)Eiwa System Management, Inc 15 XPの開発
  • 16. (C)Eiwa System Management, Inc 16 4つの価値 w Communication(コミュニケーション) w Simplicity(シンプルさ) w Feedback(フィードバック) w Courage(勇気) Communication +Simplicity+Feedback = Courage
  • 17. (C)Eiwa System Management, Inc 17 12のプラクティス w  Planning Game n  計画ゲーム w  Small Releases n  ちいさなリリース w  Metaphor n  メタファー w  Simple Design n  シンプルデザイン w  Testing n  テスティング w  Refactoring n  リファクタリング w  Pair Programming n  ペアプログラミング w  Collective Ownership n  共同所有権 w  Continuous Integration n  継続的インテグレーション w  40-Hour Week n  週40時間 w  On-site Customer n  オンサイト顧客 w  Coding Standard n  コーディング標準 ※ 14, 13, 19 などと統廃合が起こっているが, ここではオリジナルの12を挙げる
  • 18. (C)Eiwa System Management, Inc 18 XP Process リリース開発 イ テ レ シ ン リ リ ス 計 画 受 入 れ テ ス ト 2~3ヶ月 イテレーション ・ タ ス ク ・ タ ス ク ・ ・ イ テ レ シ ン 計 画 受 入 れ テ ス ト 2~3週間 ストーリーストーリー タスク ス タ ン ダ プ ミ テ ン グ ユ ニ ト テ ス ト 1~2日 ペ ア プ ロ グ ラ ミ ン グ ・・・・・ ペアプログラミング テ ス ト 作 成 ユ ニ ト テ ス ト 2~3時間 プ ロ グ ラ ミ ン グ XPの開発の流れ ユ ザ ス ト リ リ リ ス ・ ・ ・ ・ ・ ・ リ フ ク タ リ ン グ インテグレーション 実行可能リリース インテグレーション ストーリーカード タスクーカード w プロジェクトはリリースの連続 n 1リリースは2~3ヶ月 w リリースはイテレーションの連続 n イテレーションは2~3週間 w イテレーションはタスクからなる n タスクは1~2日 w タスクはペアによって開発される n 毎朝のスタンドアップミーティング n テストファーストによる開発
  • 19. (C)Eiwa System Management, Inc 19 アジェンダ w 経緯と方針(中国・上海の状況を交えて) w XP概要 w プロジェクト概要 w レポート w 考察
  • 20. (C)Eiwa System Management, Inc 20 開発対象Jude w UMLモデリングツール w Javaアプリケーション w 規模(現在) n  クラス数:1180 n  全NCSS:約9万行 (≒コメントや空行以外) Packages Classes Methods NCSS per 38 1180 9075 88826 Project 31 239 2338 Package 8 75 Class 10 Method プロジェクト概要 今の astah は、軽く 10倍になっている
  • 21. (C)Eiwa System Management, Inc 21 ビジョン 1.Jude竹バージョンを開発しリリースすること 2.信頼関係を構築し、日本と中国で高品質のソフト ウェアを共同開発するモデル(ビジネス、プロセ ス)を見つけること  デファクトスタンダード 2.中国アライアンス 1.Jude Jude梅 Jude竹 Jude松   クリエイティブで生産性 の高いチーム   コアとなる機能を装備   将来の展開に耐える レベルに拡張   業界特化商品   カスタマイズパートナ  アーキテクチャの確立  基本機能の実装   Win-Win関係   信頼関係
  • 22. (C)Eiwa System Management, Inc 22 当社 Superv(上海) 体制 w 中国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年
  • 23. (C)Eiwa System Management, Inc 23 スケジュール w Startup Phaseで4つの図サポートを追加する w Elaboration Phaseで他の基盤機能を追加する 年 ⽉ 10 11 12 1 2002 2003 6 7 8 92 3 4 5 Release4 他基盤機能の拡張 Release1 ステートチャート図、 アクティビティ図追加 準備 Release2 シーケンス図、 コラボレーション図追加 Release3 他基盤機能の拡張 Startup phase では、project velocity の把握、ナレッジ共有、相互理解、 コミュニケーションに焦点をあてる Startup Phase Elaboration Phase
  • 24. (C)Eiwa System Management, Inc 24 開発場所 w 中国で一緒に開発スタート → 分散開発 w 日本で一緒に開発 → 分散開発 10 11 12 1 2 3 Release1 Release2 日本 上海 当社 当社 当社 SV SuperV SuperV 準備 → 分散 合同 分散 合同 分散
  • 25. (C)Eiwa System Management, Inc 25 w  「XPをベースに短期繰り返し型で開発する」 w  課題 n  どう情報共有するか n  どう品質を維持するか n  どうリスクを軽減するか w  XPの採用 n  密なコミュニケーション n  ペアプログラミング・ユニットテストによる品質維持 n  短期リリースと舵取りによるリスク軽減 w  工夫した点 n  モデルテスト、コマンドテスト、ストーリテスト n  Reflection Sheet、Evaluation Sheetで改善 プロセス1
  • 26. (C)Eiwa System Management, Inc 26 プロセス2 Release1(3 months) Iteration2(1 weeks) Iteration1(1 weeks) Simple UML Story1 Rel.2 Meta model IterationEvaluation Story2-1 Story2-N IterationEvaluation Iteration3(1 weeks) Story5-1 Story5-N IterationEvaluation Present ation Model Test Model Test Model Test Command Test Command Test IterationN(1 weeks) Story Test IterationEvaluation ReleaseEvaluation Evaluation Sheet Improved Process ReleasePlanning IterationPlanning IterationPlanning IterationPlanning IterationPlanning Reflection Sheet Tracking Sheet w Release:三ヶ月単位で大きな計画+機能開発+評価を行う w Iteration:計画+機能開発+評価を一週間単位で繰り返す イテレーション0で、 モデルを作っている。 イテレーションNは、 手動テストに専念。 ふりかえりが肝!
  • 27. (C)Eiwa System Management, Inc 27 ツール・環境 統合開発環境 Eclipse 構成管理 CVS、WinCVS 情報共有 Swiki 会話 MSN Messenger ユニットテスト JUnit ビルドツール Ant OS Windows2000、XP コンパイラ J2SE 1.4.1 いまはもう古いの で見ないでね。
  • 28. (C)Eiwa System Management, Inc 28 アジェンダ w 経緯と方針(中国・上海の状況を交えて) w XP概要 w プロジェクト概要 w レポート w 考察
  • 29. (C)Eiwa System Management, Inc 29 導入 10 11 12 1 2 3 Release1 Release2 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 9 10 11 日本 上海 当社 当社 当社 SV SuperV SuperV 導入 → w 開発開始前の準備 w  計画共有、ストーリカード準備、環境準備、体験課題 分散 合同 分散 合同 分散
  • 30. (C)Eiwa System Management, Inc 30 環境準備 w 「コミュニケーションに適した環境を準備」 ホワイトボード タスク表を貼る壁 プリンタ ホワイトボードを持つチームの部屋 お菓子
  • 31. (C)Eiwa System Management, Inc 31 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 「簡単な課題で、プロジェクトでの価値観を共有」 w 課題:「ボーリングの点数計算プログラム」 w 狙いと効果 n  XP予行(ユニットテスト、タスク分割と見積もり) n  プロジェクトでの価値観共有 l  理解しやすさ重視 l  品質重視 n  メンバの技量把握 n  コーディング規約注意 w 期間:1日 各自のプログラム評価結果 現在でも新しくチームに入った 人や採用時に、「スキル合わ せ」としてやっている。
  • 32. (C)Eiwa System Management, Inc 32 アーキテクチャ1 w 「共通語のUMLでアーキテクチャを共有」 jcontrol jm odel jview jsystem jutil <<global utility>> jview Elem ent resource Jude Startup Jude application. m ain() m ethod is here. C om m ands &M odes. Edit m odel and control view . System . G lobal, SecurityM anager, System Property View . Fram e & D ialogs View elem ents. Has view m odel and Update drawing Jude's M odels (Presentations) Properties, Help, Im ages, M essages Utilities JP.co.esm.caddies.jomt• パッケージの 責務と依存関 係中心に理解 説明UMLの例
  • 33. (C)Eiwa System Management, Inc 33 Overview of Golf (Jude Architecture) Control Model View Com m andListener <<Interface>> EntityStoreEvent M odelUIView G roupU IView C om m andFactory Application Command C om m andEvent C om m andM anager <<singleton>> C om m andRunner 11 new listen JTree (from swing) JTreeUIView G C anvas (from draw) G C anvasUIView listen M ode JM enuBar (from swing) UIView ** 0..10..1 G olfAction 0..* new new new Action (from swing) EntityClipboard edit EntityStore new edit StateEditable (from undo) <<Interface>> 0..*0..* Com m unication betw een View and C ontrol is executed within C om m andEvent. View generates C om m andEvent. A C hange of M ode is notified to View w ithin EntityStoreEvent. C om m and edits M odel. It also operates M ode and UI. 0..* アーキテクチャ2 w 「Judeは、MVCのフレームワーク上に構築」
  • 34. (C)Eiwa System Management, Inc 34 Release1 テストの種類 Iteration2Iteration1 モデル開発 機能開発 • コントローラ • ビュー モデルテスト モデルテスト コマンドテスト IterationN ストーリテスト Model Test コマンドテスト モデルテスト (JUnit) 内部で持っているモデル(UMLメタモデルなど)が正しい かを確認する コマンドテスト (JUnit) アプリケーションを起動した状態でコマンドを送り、コマンド が正しく実行できるかを確認する ストーリテスト (手動) ユーザストーリを正しく実行できるかを目視で確認する
  • 35. (C)Eiwa System Management, Inc 35 Release1 合同開発 10 11 12 1 2 3 Release1 Release2 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 9 10 11 日本 上海 当社 当社 当社 SV SuperV SuperV 準備 → 分散 合同 分散 合同 分散
  • 36. (C)Eiwa System Management, Inc 36 Releaseプランニング w 「ざっくりと、一緒に計画する」 w 準備していったStoryカードとStoryリストを利用 w 合同開発中に一通りの開発を一緒に行う 見積もり (理想日) Storyのリスト どれからやる か どんな機能を開発したいか
  • 37. (C)Eiwa System Management, Inc 37 第一イテレーション w とにかくやってみる w できる限りコミュニケーションする
  • 38. (C)Eiwa System Management, Inc 38 Iterationプランニング w タスク内容 n ステートチャート図のモデル開発 n ステートチャート図の生成機能開発 l (一つ基本機能を先行開発) w タスク分割とサインアップ
  • 39. (C)Eiwa System Management, Inc 39 開発 w 「ペアプロがチーム内ナレッジ共有に効果大」 w UMLで開発対象の概略理解 n  UMLメタモデル等のクラス図、オブジェクト図 w ペアプログラミング n  新しいことに対する勇気、そして理解 l  アーキテクチャ l  開発環境 n  会話促進 n  ソースコードで解りあう w ユニットテスト n  習慣化
  • 40. (C)Eiwa System Management, Inc 40 トラッキングシート w 計画したタスク全て完了 w Team Velocity = 12.2 Points w Test = 100% (168 cases)
  • 41. (C)Eiwa System Management, Inc 41 リフレクションシート w 「このIterationを振り返り、改善」 Keep These Try These w Good mood w Make jokes w Talk a lot w No over work w Communication by writing and drawing w Avoiding to one-way communication w Without projector w Pair Programming w Stand up meeting w Dash out the completed task w Eat some sweets w Put list of story on the wall w Pair up with different nationality w Take a 15 minutes rest after lunch w Open the window during lunch (by Yves) w Tracking on wiki
  • 42. (C)Eiwa System Management, Inc 42 第二イテレーション w 機能の開発 n Storyカードで機能理解 n ほぼ全ペアの組み合わせ実施 n 途中で新たなストーリ7つ追加 n 全タスク開発完了
  • 43. (C)Eiwa System Management, Inc 43 開発風景
  • 44. (C)Eiwa System Management, Inc 44 中国余談 w プラス n  時差1時間 n  漢字、ブロークンな英語 n  健康志向、週40時間労働 w マイナス n  ビザ、連休 n  電話、ネットワーク不安定 n  交通 w 両方 n  食事
  • 45. (C)Eiwa System Management, Inc 45 Release1 分散開発 10 11 12 1 2 3 Release1 Release2 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 9 10 11 日本 上海 当社 当社 当社 SV SuperV SuperV 準備 → 分散 合同 分散 合同 分散
  • 46. (C)Eiwa System Management, Inc 46 分散開発 w 分散でも大きな分担割をせずXP継続 w 変化・工夫 n あらかじめStoryカードを一緒に作成、理解 n プランニングは、全員でのチャット n トラッキング情報は、壁ではなくwikiで共有 n スタンドアップミーティングは、各社で実施 n 不明点、アイデアなどは、必要なときにその都度 チャット n ペアプロは、継続(奇数人になり減少)
  • 47. (C)Eiwa System Management, Inc 47 ここから簡単にWebを編集 Wikiによる情報共有 サイトマップ w Release 1 n  スケジュール(期間分割と大雑把な見通し) n  ストーリー 一覧(このリリースの開発対象) l  ストーリーカード(必要なストーリーのみ) n  Iteration1 l  Reflection Sheet(前回の反省) l  Tracking Sheet l  Team Velocity l  テスト結果(テストケース数と結果) n  Iteration2 n  ・・・・・ w Release 2 w Release 3 w バグ情報一覧 w 改善項目一覧 w Daily自動テスト結果集計 w 開発のヒント集(開発注意点など) w ダウンロード数推移 Edit
  • 48. (C)Eiwa System Management, Inc 48 実践プラクティス 実施 プラクティス どのように実践したか ○ 計画ゲーム 開発者全員で見積もり、サインアップ。 ストーリーカードにより機能を理解。タスクカードは作成せず。 × メタファー 特に準備せず。 ○ ちいさなリリース 2週間単位でリリース。 ○ シンプルデザイン 機能の実装に必要な設計のみに集中。 ○ テスティング ユニットテストを実践。テスト駆動は未定着。 △ リファクタリング 気づいたときになるべく実践。必要意識高い。余裕必要。 ○ ペアプログラミング よく実践した。常にではなく、デバッグ時は1人。 ○ 共同所有権 どのファイルも誰でも編集可能。 ○ 継続的インテグレーション 毎日インテグレーション。毎日自動テスト。 ○ 週40時間 ほぼ残業ゼロだった。最近はがんばりペース。 × オンサイト顧客 意見がまとまらない場合など、擬似顧客が決定。 ○ コーディング標準 ObjectClubバージョンの標準遵守。Eclipseの自動フォーマット。 ○ Reflection、Evaluation Iteration毎にReflectionシート作成(5分)。 Release毎にEvaluationSheet記入。→ 改善意識向上。 ○ モデルテスト、コマンドテス ト、ストーリテスト テストの種類を3つ用意。コマンドのテストサポートクラス利用。 特別 特別
  • 49. (C)Eiwa System Management, Inc 49 トラブルと対処 w Visa取得遅れによる出張延期 n  → 準備課題など w 仕様誤解2,3度 n  慣れによる仕様確認不足が原因 n  → そのイテレーション内に回復 n  → 複雑なものはwiki上にイメージと詳細な記述追加 w 正月休みのずれ+1人ハネムーン n  → 他のメンバがカバーし、問題なし w ネットワーク不安定でチャット不可 n  → 他のインスタントメッセンジャで対処
  • 50. (C)Eiwa System Management, Inc 50 Release1全体 X’masversion w 8回のイテレーションを完了 n  平均TeamVelocity = 12.2 n  テストケース数 = 404 n  完了したストーリー数 = 約100 n  ステートチャート図とアクティビティ図追加 n  他いくつかの改善項目を完了 n  合同開発・分散開発共に順調に進行 w X’masバージョンを急遽リリース n  予定外、2日で対応 n  外部へのリリースで、顧客視点の再認識
  • 51. (C)Eiwa System Management, Inc 51 アジェンダ w 経緯と方針(中国・上海の状況を交えて) w XP概要 w プロジェクト概要 w レポート w 考察
  • 52. (C)Eiwa System Management, Inc 52 分散開発と担当割 横に大きく割る 縦に大きく割る 一緒に開発する 例 アプリを日本、 モデルを中国 A図を日本、 B図を中国 A図を一緒に開発 頻繁なリリース × △ ○ 担当タスク間の依存 あり 少ない あり コミュニケーション 疎 疎 密 必要知識 少 中 多 機能仕様の統一感 ○ △ ○ 品質 ○ ○ ◎ モチベーション △ ○ ◎ w Judeプロジェクトでは、“一緒に開発”を継続
  • 53. (C)Eiwa System Management, Inc 53 ツールとアジャイル開発 w 「分散アジャイル開発はツールにも支えられる」 種類 ツール 効果 開発 Eclipse プログラミングが楽。ソースを追うのが楽。 テストが楽。リファクタリングが楽。 構成管理 CVS、WinCVS ソースコード共有が楽。 会話 インスタントメッセンジャー (MSNMessenger他) 情報・考えを伝えるのがメールに比べ格段 に楽。 情報共有 Swiki、TWiki、PukiWiki他 非常に手軽に情報共有できた。 XP管理 XPlanner、 XpTrackerPlugin(TWiki plugin) WebベースのXPプロジェクトサポートシス テム。(Judeプロジェクトでは未使用) ユニットテスト JUnit テストが楽。 ビルドツール Ant 頻繁なリリースが楽。 遠隔ペアプロ Sangam(Eclipse plugin) 離れた人とのペアプロの可能性。 (まだ不安定) 直接会って話をする、壁に貼る、が一番。それに近づける。
  • 54. (C)Eiwa System Management, Inc 54 UMLの役割 高い表現力・伝達力と厳密さをもった標準言語 ↓ ソフトウェアの設計をすばやく共有 ↓ アライアンスとスピード時代の開発をスムーズに w 今回の開発でのUML利用 n  開発対象Judeのアーキテクチャ共有 n  モデル(UMLメタモデル含む)の設計 n  簡単な設計アイデアの交換
  • 55. (C)Eiwa System Management, Inc 55 プロジェクトの特性 Judeプロジェクトについての、 分散アジャイル開発のプラス要因 w 自分が顧客視点を持てた(UMLツールの利用者) w 機能追加が主で大規模な設計が不要だった w 参考ツールが存在し、要求仕様を理解しやすかった w 一部モデルに関する詳細な仕様書が存在した w 日本と中国との開発だった(時差など有利) w 自社ソフトウェアの開発だった
  • 56. (C)Eiwa System Management, Inc 56 うまくいったことと課題 w うまくいったこと n  導入課題での価値観共有 n  XPでのナレッジ共有、モチベーション維持 n  リフレクションシートでの改善・改善意識 n  メールではなくチャットでのリアルタイムな対話 n  Wikiでのプロジェクト情報共有 w 課題 n  コマンドテストの軽量化(テスト実行時間短縮、分割など) n  顧客巻き込み n  リファクタリングとテストの時間確保 n  プランニングゲームの時間短縮
  • 57. (C)Eiwa System Management, Inc 57 今回の事例のポイント w JudeをXPで中国と共同開発 w あえて大きな役割分担せず、“一緒に開発” w 同じ場所でチーム開発開始 w ナレッジ共有、モチベーション維持 w 分散開発ではコミュニケーションツール活用 w UMLは重要な共通語の一つ w 密なチーム・信頼関係を構築
  • 58. (C)Eiwa System Management, Inc 58 XPと信頼 XP 信頼 XPは、信頼を築く XPは、信頼を基礎とする
  • 59. (C)Eiwa System Management, Inc 59 紹介 図 ユースケース図 クラス図 シーケンス図 コラボレーション図 ステートチャート図 アクティビティ図 入力 Javaソース読み込み 出力 図のプリンタ出力 Javaスケルトンコード出力 PNG、JPEG出力 Javadoc形式のHtml出力 w 機能・特徴 n  UML1.4サポート n  無限回UNDO/REDO(編集の取り消し、やり直し) n  大きな図をすばやく移動できる全体マップビュー n  クラス図自動生成 n  Microsoft Office® への図イメージ貼付け n  右ドラッグによる斜め方向スクロール n  ステレオタイプ毎の色設定 http://ObjectClub.esm.co.jp/Jude/ にて無償公開中。 「真のカスタマからのコメントを ぜひお寄せください」
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67. (C)Eiwa System Management, Inc 67 まとめ w 10年以上続いている、アジャイルオフショア事例です。 w  ツールは進歩しても、大事な変わらないものが多い。 これらを中心にお話しました(以下)。 w 特に立ち上げ時はコミュニケーション(人を知る)が大 事。部屋を一緒にする、ペアプロ、など期間を。知ら ない人とメールでコミュニケーションしない。 w 「ふりかえり」が超重要。分かれていても、KPTシート を交換するなど、本音の会話を。 w 開発方針や、全体絵、会社としての思い、などを最初 に語ろう。 w (特にこの開発では)絵、UML、による仕様の「理解共 有」(Shared Understanding)が大事。