Offshore XP experience with Shanghai

2,918 views

Published on

Episode of XP development, done together with Shanghai company. UML editor JUDE

Published in: Business, Technology
2 Comments
1 Like
Statistics
Notes
No Downloads
Views
Total views
2,918
On SlideShare
0
From Embeds
0
Number of Embeds
32
Actions
Shares
0
Downloads
13
Comments
2
Likes
1
Embeds 0
No embeds

No notes for slide

Offshore XP experience with Shanghai

  1. 1. UML Forum 2003 C-4国際的なXPプロジェクト事例国際的な プロジェクト事例 ─ UMLを使った分散アジャイル開発 を使った分散アジャイル開発 2003.4.16 (株)永和システムマネジメント 平鍋健児 岡村敏弘
  2. 2. 自己紹介㈱永和システムマネジメント福井県福井市,200名金融・医療・オープンシステムの開発平鍋健児オブジェクト指向・XPの現場実践、書籍・記事の執筆XP-jpメーリングリスト岡村敏弘Judeプロジェクトリーダー (C)Eiwa System Management, Inc 2
  3. 3. アブストラクト「国際的なXPプロジェクト事例「国際的な プロジェクト事例 ─ UMLを使った分散アジャイル開発」 を使った分散アジャイル開発」 17:15~18:25(70分) 中国とのジョイントプロジェクトにおいて、XP(ExtremeProgramming)を適用した事例を紹介する。 開発対象は、UMLモデリングツールJudeで、昨年の10月からプロジェクトを開始し、現在に至る。 同じ場所での開発期間と、離れた場所での開発期間の違いや、それぞれどのような困難や利点があったかを中心に説明する。 コミュニケーションが困難な状況においてアジャイル コミュニケーション アジャイルな開 アジャイル発を行う場合の課題と解決策を探る。 (C)Eiwa System Management, Inc 3
  4. 4. アジェンダ経緯と方針(中国・上海の状況を交えて)XP概要プロジェクト概要レポート考察 (C)Eiwa System Management, Inc 4
  5. 5. アジェンダ経緯と方針(中国・上海の状況を交えて)XP概要プロジェクト概要レポート考察 (C)Eiwa System Management, Inc 5
  6. 6. 発端 上海視察帰りの社長曰く, 中国のソフトウェア会社と共同開発 をせよ. 中国は人件費が安い点で注目され ているが,実際に上海に行ってみ ると技術者のエネルギーはすごい. 優秀な人材がたくさんいる.単に人 的資源の調達場所としてではなく, 優秀な技術者と友好関係を結びた い.また,今から爆発するであろう 中国市場も視野に入れたい. 現在開発中のJude(UMLエディタ) の開発を加速.(C)Eiwa System Management, Inc 6
  7. 7. 中国・上海の状況ソフトウェア市場としての中国中国のソフトウェア産業成長上海のソフトウェア産業成長上海のソフトウェア技術者上海のソフトウェア産業の特徴 (C)Eiwa System Management, Inc 7
  8. 8. 世界ソフトウェア市場の比較 Software Market (Year 1999~2001) : 100 Million USD South China USA Japan Ireland India Brazil Global Korea 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 breakdown of 2001 出展: "Report of Shanghai Software Industry Development Brazil China South Korea 74.81 2001"(Shanghai Information 78.9 68.2 Ireland Committee) 85.2 Japan545.28 India USA 84 2285.6 日本市場:中国市場=8:1 日本市場/人:中国市場/人=100:1 (C)Eiwa System Management, Inc 8
  9. 9. ソフトウェア販売歳入の推移 China Software Sales Revenue (Year 1992~2001) Unit: Million USD 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,535Annual Increase 106% 18% 32.70% 46.80% 31% 26.40% 27% 33.00% 26% China Software Sales Annual Increase Ratio (1993~2001) 120% 100% 80% 60% 40% 20% 0% 1993 1994 1995 1996 1997 1998 1999 2000 2001 年々延び率20%で成長している (C)Eiwa System Management, Inc 9
  10. 10. 上海ソフトウェア産業の成長 Gross Income of Shanghai Software Industry 1999 2000 2001Grosss Income (Million USD) 480 578 892 60% 54.39% 50% 40% 30% 20% 20.29% 10% 0% 1999 2000 2001 特に上海の成長は顕著(50%以上) (C)Eiwa System Management, Inc 10
  11. 11. 上海のソフトウェア技術者Age Distribution of Software Company Employees in Shanghai60% 57%40% 28%20% 7% 4% 2% 2% 0% 20-25 25-30 30-35 35-40 40-50 >50 ほとんどが30歳以下. 若いやる気とエネルギーに溢れている しかし,経験はあまりない 上海には大学が50以上ある (C)Eiwa System Management, Inc 11
  12. 12. 上海の政策他州の大学生,卒業生も上海在住できるISO9001とCMM認定に賞認定企業への税金の軽減ベンチャー企業への支援ハイテクプロダクトへの投資エンジニアの教育施設 上海政府はソフトウェア開発企業を優遇している (C)Eiwa System Management, Inc 12
  13. 13. 中国・上海の状況(まとめ)中国のソフトウェア市場は日本の1/8.ソフトウェアの販売は,年率20%で延びている.特に上海は50%を超える延び率.上海には若く・エネルギーのある技術者が多い.上海は政策的にソフトウェア産業が優遇されている. 現在の上海は共同開発にとてもよい環境 • 将来の市場,経済の成長 • 若い人材 • (日本に比べて安い人件費) (C)Eiwa System Management, Inc 13
  14. 14. 中国とのジョイント開発の大方針中国を労働力リソースとは見ない将来の展開を見据えた信頼関係作り共同開発の2つの方向の選択肢設計と製造の分離 … UMLでの仕様I/F密なチームの結成 … XPチーム 採用 (C)Eiwa System Management, Inc 14
  15. 15. 具体方針XPチームを結成し,UMLエディタを開発する.チームを醸成する.UMLに精通する.オブジェクト指向開発ノウハウを伝授する.将来の設計と製造の分離にも備える.分散開発のプロセスモデルを探る.両社のWin-Winを確認する宣言両社の を確認する宣言書を作成. (C)Eiwa System Management, Inc 15
  16. 16. 福井宣言 2002年9月23日私たち、永和システムマネジメント、SuperV、大陸貿易開発、上坂会計の四社は、日本と中国での共同ソフトウェア開発において、新しいビジネス、新しい価値を創造する活動を行います。この活動にあたっては、以下を共通の原則として行動します。1. チャレンジへの若い情熱(青)2. 出発当初の初心忘るべからず (義)3. 信頼と友情を基礎にしたアライアンス(愛)4. 自己実現 (夢)私たちの夢: 4つのWinが第5のWinを創造する。 4つのWinが第5のWinを創造する。 Winが第5のWin (C)Eiwa System Management, Inc 16
  17. 17. アジェンダ経緯と方針(中国・上海の状況を交えて)XP概要プロジェクト概要レポート考察 (C)Eiwa System Management, Inc 17
  18. 18. XPとは eXtreme Programming コーディングとテストに重点 初期設計よりも漸進的再設計 明確な「4つの価値」,「12のプラクティス」を示す ソフトウェア開発は製造工程ではない. 対話を基礎に置いた新しいパラダイム.Kent Beck, 1999Extreme Programming Explained - Embrace Change( 『XPエクストリーム・プログラミング入門 - ソフトウェア開発の究極の手法 』) (C)Eiwa System Management, Inc 18
  19. 19. 伝統的な開発(C)Eiwa System Management, Inc 19
  20. 20. XPの開発(C)Eiwa System Management, Inc 20
  21. 21. 4つの価値Communication(コミュニケーション)Simplicity(シンプルさ)Feedback(フィードバック)Courage(勇気)Communication +Simplicity+Feedback = Courage (C)Eiwa System Management, Inc 21
  22. 22. 12のプラクティスPlanning Game Pair Programming 計画ゲーム ペアプログラミングSmall Releases Collective Ownership ちいさなリリース 共同所有権Metaphor Continuous Integration メタファー 継続的インテグレーションSimple Design 40-Hour Week シンプルデザイン 週40時間Testing On-site Customer テスティング オンサイト顧客Refactoring Coding Standard リファクタリング コーディング標準※ 14, 13, 19 などと統廃合が起こっているが,ここではオリジナルの12を挙げる (C)Eiwa System Management, Inc 22
  23. 23. XPの開発の流れ XP Process リリース開発 2~3ヶ月 リ イ 受 プロジェクトはリリースの連続 ス リ テ 入 リ ト ー リ ユ ー ザ ー ス 計 レ ー シ ・ ・ ・ ・ ・ ・ れ テ リ ー ス 1リリースは2~3ヶ月 ョ ス ー 画 ト ン リリースはイテレーションの連続 イテレーション イテレーションは2~3週間 ストーリーカード 実行可能リリース イ ストーリー 2~3週間 ストーリー イテレーションはタスクからなる 受 計 画 テ レ ー タ ス ・ ・ タ ス 入 れ テ タスクは1~2日 シ ・ ・ ク ク ス ョ ン ト タスクはペアによって開発される タスク 毎朝のスタンドアップミーティング タスクーカード 1~2日 インテグレーション テストファーストによる開発 プ ユ ミ ス ロ ー タ ニ グ ッ テ ン ラ ペ ト ィ ダ ア ・ ・ ・ ・ ・ テ ン ミ ッ ン ス グ プ グ ト ペアプログラミング 2~3時間 インテグレーション プ リ ユ テ ロ フ ニ ス グ ァ ッ ト ラ グ ク ト 作 ミ タ テ 成 ン リ ス グ ン ト (C)Eiwa System Management, Inc 23
  24. 24. アジェンダ経緯と方針(中国・上海の状況を交えて)XP概要プロジェクト概要レポート考察 (C)Eiwa System Management, Inc 24
  25. 25. プロジェクト概要 開発対象Jude UMLモデリングツール Javaアプリケーション 規模(現在) クラス数:1180 全NCSS:約9万行 (≒コメントや空行以外)Packages Classes Methods NCSS per 38 1180 9075 88826 Project 31 239 2338 Package 8 75 Class 10 Method (C)Eiwa System Management, Inc 25
  26. 26. ビジョン1.Jude竹バージョンを開発しリリースすること2.信頼関係を構築し、日本と中国で高品質のソフト ウェアを共同開発するモデル(ビジネス、プロセ ス)を見つけること 1.Jude 業界特化商品 デファクトスタンダード カスタマイズパートナ 将来の展開に耐える Win- Win関係 Win-Win関係 レベルに拡張 Jude松 コアとなる機能を装備 信頼関係 Jude竹 クリエイティブで生産性 の高いチーム アーキテクチャの確立 基本機能の実装 2.中国アライアンス Jude梅 (C)Eiwa System Management, Inc 26
  27. 27. 体制中国3名、日本3名の開発チーム 当社 Superv(上海) Director:平鍋 (擬似顧客、コーチ) : Technical Manager:Jessy(コーチ) : ( : GPM:Toshi (擬似顧客代理) 開発チーム PM: Toshi (マネージャ、プログラ PM: Rock (マネージャ、プログラ マ) マ) 30才、開発経験6年 27才、開発経験4年 Masa (プログラマ) Wenny (プログラマ) 29才、開発経験7年 29才、開発経験7年 28才、開発経験5年 Midori (プログラマ) Yves (プログラマ) 33才、開発経験8年 23才、開発経験1年 (C)Eiwa System Management, Inc 27
  28. 28. スケジュールStartup Phaseで4つの図サポートを追加するElaboration Phaseで他の基盤機能を追加する Startup phase では、project velocity の把握、ナレッジ共有、相互理解、 コミュニケーションに焦点をあてる年 2002 2003月 10 11 12 1 2 3 4 5 6 7 8 9 Release1 Startup Phase 準備 ステートチャート図、 アクティビティ図追加 Release2 シーケンス図、 コラボレーション図追加 Release3 Elaboration Phase 他基盤機能の拡張 Release4 他基盤機能の拡張 (C)Eiwa System Management, Inc 28
  29. 29. 開発場所 中国で一緒に開発スタート → 分散開発 日本で一緒に開発 → 分散開発 分散 分散 合同 合同 分散 分散 合同 合同 分散 分散 10 11 12 1 2 3 準備 → Release1 Release2 当社 当社日本 SV 当社上海 SuperV SuperV (C)Eiwa System Management, Inc 29
  30. 30. プロセス1「XPをベースに短期繰り返し型で開発する」課題 どう情報共有するか どう品質を維持するか どうリスクを軽減するかXPの採用 密なコミュニケーション ペアプログラミング・ユニットテストによる品質維持 短期リリースと舵取りによるリスク軽減工夫した点 モデルテスト、コマンドテスト、ストーリテスト Reflection Sheet、Evaluation Sheetで改善 (C)Eiwa System Management, Inc 30
  31. 31. プロセス2 Release:三ヶ月単位で大きな計画+機能開発+評価を行う Iteration:計画+機能開発+評価を一週間単位で繰り返すRelease1(3 months) Rel.2 Iteration1(1 Iteration2(1 Iteration3(1 IterationN(1 weeks) weeks) weeks) weeks) Simple Simple Story2-1 Story2-1 Story5-1 Story5-1 UML Release Evaluation UMLRelease Planning Iteration Evaluation Iteration Evaluation Iteration Evaluation Iteration Evaluation Iteration Planning Iteration Planning Iteration Planning Iteration Planning Meta Meta model model Present Present Story2-N Story2-N Story5-N Story5-N Story Test Story Test ation ation Story1 Story1 Model Model Model Model Test Test Test Test Model Model Command Command Command Command Test Test Test Test Test Test Reflection Sheet Reflection Sheet Evaluation Sheet Evaluation Sheet Tracking Sheet Tracking Sheet Improved Process Improved Process (C)Eiwa System Management, Inc 31
  32. 32. ツール・環境統合開発環境 Eclipse構成管理 CVS、WinCVS情報共有 Swiki会話 MSN Messengerユニットテスト JUnitビルドツール AntOS Windows2000、XPコンパイラ J2SE 1.4.1 (C)Eiwa System Management, Inc 32
  33. 33. アジェンダ経緯と方針(中国・上海の状況を交えて)XP概要プロジェクト概要レポート考察 (C)Eiwa System Management, Inc 33
  34. 34. 導入 開発開始前の準備 計画共有、ストーリカード準備、環境準備、体験課題 分散 分散 合同 合同 分散 分散 合同 合同 分散 分散 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 34
  35. 35. 環境準備「コミュニケーションに適した環境を準備」 ホワイトボードを持つチームの部屋 プリンタ ホワイトボード お菓子 お菓子 タスク表を貼る壁 (C)Eiwa System Management, Inc 35
  36. 36. XP体験課題「簡単な課題で、プロジェクトでの価値観を共有」課題:「ボーリングの点数計算プログラム」狙いと効果 XP予行(ユニットテスト、タスク分割と見積もり) プロジェクトでの価値観共有 理解しやすさ重視 各自のプログラム評価結果 品質重視 M1 M2 M3 M4 M5 M6 分析されたクラス構成 C B B A B B メンバの技量把握 依存関係の局所化 B A B A A A コーディング規約注意 理解しやすさ 命名センス C A B B A A A A A A B A期間:1日 コメント充実度 テスト比率 B B A B C B A A C A C A コーディング標準 C B B B B B (C)Eiwa System Management, Inc 36
  37. 37. アーキテクチャ1「共通語のUMLでアーキテクチャを共有」•パッケージの 説明UMLの例 JP.co.esm.caddies.jomt Jude Startup Jude application. main() method is here.責務と依存関 jsyste m係中心に理解 System. Global, SecurityManager, SystemProperty jcontrol Commands &Modes. Edit mo del and control view. jview View. Frame & Dialogs jm odel jviewElement Judes Models View element s. (Presentations) Has view mo del and Up date drawing <<global utility>> resource jutil Utilities Properties, Help, Images, Messages (C)Eiwa System Management, Inc 37
  38. 38. アーキテクチャ2 Overview of Golf (Jude Architecture) Application Control Comm uni cation between View and Contr ol is execu ted with in Command Event. View <<singleton>> <<Interface>> generates Comman dEvent . Comm andList ener CommandManage r Act ion listen (from swing) CommandFactory CommandRunner CommandEvent new GolfAction new new 0..* View 1 Command new Mode UIView JMenuBar (from swing) * 0..1 Command edits Model. It also operates Mode edit edit and UI. ModelUIView listenEnti tyCl ipboard EntityStore new EntityStoreEvent Mode l 0..* GroupUIView JTreeUIView GCanvasUIView <<Interface>> A Change of Mode is notified to StateEditable View within EntityStoreEvent. (f rom und o) JTree GCanvas (from swing) (from draw) 「Judeは、MVCのフレームワーク上に構築」 (C)Eiwa System Management, Inc 38
  39. 39. テストの種類モデルテスト 内部で持っているモデル(UMLメタモデルなど)が正しい(JUnit) かを確認するコマンドテスト アプリケーションを起動した状態でコマンドを送り、コマンド(JUnit) が正しく実行できるかを確認するストーリテスト ユーザストーリを正しく実行できるかを目視で確認する(手動) Release1 Iteration1 Iteration2 IterationN モデル開発 モデル開発 機能開発 機能開発 •コントローラ •コントローラ ストーリテスト ストーリテスト •ビュー •ビュー コマンドテスト コマンドテスト コマンドテスト コマンドテスト モデルテスト モデルテスト モデルテスト モデルテスト Model Test Model Test (C)Eiwa System Management, Inc 39
  40. 40. 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 40
  41. 41. Releaseプランニング「ざっくりと、一緒に計画する」準備していったStoryカードとStoryリストを利用合同開発中に一通りの開発を一緒に行う 見積もり どんな機能を開発したいか どれからやるか (理想日) Storyのリスト (C)Eiwa System Management, Inc 41
  42. 42. 第一イテレーションとにかくやってみるできる限りコミュニケーションする (C)Eiwa System Management, Inc 42
  43. 43. Iterationプランニングタスク内容ステートチャート図のモデル開発ステートチャート図の生成機能開発 (一つ基本機能を先行開発)タスク分割とサインアップ (C)Eiwa System Management, Inc 43
  44. 44. 開発「ペアプロがチーム内ナレッジ共有に効果大」UMLで開発対象の概略理解 UMLメタモデル等のクラス図、オブジェクト図ペアプログラミング 新しいことに対する勇気、そして理解 アーキテクチャ 開発環境 会話促進 ソースコードで解りあうユニットテスト 習慣化 (C)Eiwa System Management, Inc 44
  45. 45. トラッキングシート計画したタスク全て完了Team Velocity = 12.2 PointsTest = 100% (168 cases) (C)Eiwa System Management, Inc 45
  46. 46. リフレクションシート 「このIterationを振り返り、改善」Keep These Try TheseGood mood Dash out the completed taskMake jokes Eat some sweetsTalk a lot Put list of story on the wallNo over work Pair up with different nationalityCommunication by writing and drawing Take a 15 minutes rest after lunchAvoiding to one-way communication Open the window during lunch (byWithout projector Yves)Pair ProgrammingStand up meeting Tracking on wiki (C)Eiwa System Management, Inc 46
  47. 47. 第二イテレーション機能の開発Storyカードで機能理解ほぼ全ペアの組み合わせ実施途中で新たなストーリ7つ追加全タスク開発完了 (C)Eiwa System Management, Inc 47
  48. 48. 開発風景(C)Eiwa System Management, Inc 48
  49. 49. 中国余談プラス 時差1時間 漢字、ブロークンな英語 健康志向、週40時間労働マイナス ビザ、連休 電話、ネットワーク不安定 交通両方 食事 (C)Eiwa System Management, Inc 49
  50. 50. 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 50
  51. 51. 分散開発分散でも大きな分担割をせずXP継続変化・工夫あらかじめStoryカードを一緒に作成、理解プランニングは、全員でのチャットトラッキング情報は、壁ではなくwikiで共有スタンドアップミーティングは、各社で実施不明点、アイデアなどは、必要なときにその都度チャットペアプロは、継続(奇数人になり減少) (C)Eiwa System Management, Inc 51
  52. 52. Wikiによる情報共有 サイトマップ Release 1 ここから簡単にWebを編集 ここから簡単に を編集 スケジュール(期間分割と大雑把な見通し) ストーリー 一覧(このリリースの開発対象) ストーリーカード(必要なストーリーのみ) Iteration1 ( Reflection Sheet(前回の反省)Edit Tracking SheetEdit Team Velocity テスト結果(テストケース数と結果) Iteration2 ・・・・・ Release 2 Release 3 バグ情報一覧 改善項目一覧 自動テスト結果集計 Daily自動テスト結果集計 開発のヒント集(開発注意点など) ダウンロード数推移 (C)Eiwa System Management, Inc 52
  53. 53. 実践プラクティス実施 プラクティス どのように実践したか 計画ゲーム 開発者全員で見積もり、サインアップ。○ ストーリーカードにより機能を理解。タスクカードは作成せず。× メタファー 特に準備せず。○ ちいさなリリース 2週間単位でリリース。○ シンプルデザイン 機能の実装に必要な設計のみに集中。○ テスティング ユニットテストを実践。テスト駆動は未定着。△ リファクタリング 気づいたときになるべく実践。必要意識高い。余裕必要。○ ペアプログラミング よく実践した。常にではなく、デバッグ時は1人。○ 共同所有権 どのファイルも誰でも編集可能。○ 継続的インテグレーション 毎日インテグレーション。毎日自動テスト。○ 週40時間 ほぼ残業ゼロだった。最近はがんばりペース。× オンサイト顧客 意見がまとまらない場合など、擬似顧客が決定。○ コーディング標準 ObjectClubバージョンの標準遵守。Eclipseの自動フォーマット。 特別 Reflection、Evaluation Iteration毎にReflectionシート作成(5分)。○ Release毎にEvaluationSheet記入。→ 改善意識向上。 特別モデルテスト、コマンドテスト、 テストの種類を3つ用意。コマンドのテストサポートクラス利用。○ ストーリテスト (C)Eiwa System Management, Inc 53
  54. 54. トラブルと対処Visa取得遅れによる出張延期 → 準備課題など仕様誤解2,3度 慣れによる仕様確認不足が原因 → そのイテレーション内に回復 → 複雑なものはwiki上にイメージと詳細な記述追加正月休みのずれ+1人ハネムーン → 他のメンバがカバーし、問題なしネットワーク不安定でチャット不可 → 他のインスタントメッセンジャで対処 (C)Eiwa System Management, Inc 54
  55. 55. Release1全体 8回のイテレーションを完了X’mas version 平均TeamVelocity = 12.2 平均 テストケース数 = 404 完了したストーリー数 = 約100 ステートチャート図とアクティビティ図追加 他いくつかの改善項目を完了 合同開発・分散開発共に順調に進行 バージョンを急遽リリース X’masバージョンを急遽リリース 予定外、2日で対応 外部へのリリースで、顧客視点の再認識 (C)Eiwa System Management, Inc 55
  56. 56. アジェンダ経緯と方針(中国・上海の状況を交えて)XP概要プロジェクト概要レポート考察 (C)Eiwa System Management, Inc 56
  57. 57. 分散開発と担当割 Judeプロジェクトでは、“一緒に開発”を継続 横に大きく割る 縦に大きく割る 一緒に開発する 例 アプリを日本、 A図を日本、 A図を一緒に開発 モデルを中国 B図を中国頻繁なリリース × △ ○担当タスク間の依存 あり 少ない ありコミュニケーション 疎 疎 密必要知識 少 中 多機能仕様の統一感 ○ △ ○品質 ○ ○ ◎モチベーション △ ○ ◎ (C)Eiwa System Management, Inc 57
  58. 58. ツールとアジャイル開発 「分散アジャイル開発はツールにも支えられる」 直接会って話をする、壁に貼る、が一番。それに近づける。種類 ツール 効果開発 Eclipse プログラミングが楽。ソースを追うのが楽。 テストが楽。リファクタリングが楽。構成管理 CVS、WinCVS ソースコード共有が楽。会話 インスタントメッセンジャー 情報・考えを伝えるのがメールに比べ格段 (MSNMessenger他) に楽。情報共有 Swiki、TWiki、PukiWiki他 非常に手軽に情報共有できた。XP管理 XPlanner、XpTrackerPlugin WebベースのXPプロジェクトサポートシス (TWiki plugin) テム。(Judeプロジェクトでは未使用)ユニットテスト JUnit テストが楽。ビルドツール Ant 頻繁なリリースが楽。遠隔ペアプロ Sangam(Eclipse plugin) 離れた人とのペアプロの可能性。 (まだ不安定) (C)Eiwa System Management, Inc 58
  59. 59. UMLの役割今回の開発でのUML利用 開発対象Judeのアーキテクチャ共有 モデル(UMLメタモデル含む)の設計 簡単な設計アイデアの交換高い表現力・伝達力と厳密さをもった標準言語 ↓ ソフトウェアの設計をすばやく共有 ↓アライアンスとスピード時代の開発をスムーズに (C)Eiwa System Management, Inc 59
  60. 60. プロジェクトの特性Judeプロジェクトについての、分散アジャイル開発のプラス要因自分が顧客視点を持てた(UMLツールの利用者)機能追加が主で大規模な設計が不要だった参考ツールが存在し、要求仕様を理解しやすかった一部モデルに関する詳細な仕様書が存在した日本と中国との開発だった(時差など有利)自社ソフトウェアの開発だった (C)Eiwa System Management, Inc 60
  61. 61. うまくいったことと課題うまくいったこと 導入課題での価値観共有 XPでのナレッジ共有、モチベーション維持 リフレクションシートでの改善・改善意識 メールではなくチャットでのリアルタイムな対話 Wikiでのプロジェクト情報共有課題 コマンドテストの軽量化(テスト実行時間短縮、分割など) 顧客巻き込み リファクタリングとテストの時間確保 プランニングゲームの時間短縮 (C)Eiwa System Management, Inc 61
  62. 62. 今回の事例のポイントJudeをXPで中国と共同開発あえて大きな役割分担せず、“一緒に開発”同じ場所でチーム開発開始ナレッジ共有、モチベーション維持分散開発ではコミュニケーションツール活用UMLは重要な共通語の一つ密なチーム・信頼関係を構築 (C)Eiwa System Management, Inc 62
  63. 63. XPと信頼 XPは、信頼を築くXP 信頼XPは、信頼を基礎とする (C)Eiwa System Management, Inc 63
  64. 64. 紹介機能・特徴 UML1.4サポート 無限回UNDO/REDO(編集の取り消し、やり直し) 大きな図をすばやく移動できる全体マップビュー クラス図自動生成 Microsoft Office® への図イメージ貼付け 右ドラッグによる斜め方向スクロール ステレオタイプ毎の色設定 ユースケース図 クラス図 シーケンス図 図 コラボレーション図 ステートチャート図 アクティビティ図 http://ObjectClub.esm.co.jp/Jude/入力 Javaソース読み込み 図のプリンタ出力 にて無償公開中。出力 Javaスケルトンコード出力 PNG、JPEG出力 「真のカスタマからのコメントを Javadoc形式のHtml出力 ぜひお寄せください」 (C)Eiwa System Management, Inc 64
  65. 65. (C)Eiwa System Management, Inc 65

×