SlideShare a Scribd company logo
国際的な XP プロジェクト事例   ─  UML を使った分散アジャイル開発   2003.4.16 (株)永和システムマネジメント 平鍋健児 岡村敏弘 UML Forum 2003 C-4
自己紹介 ㈱永和システムマネジメント 福井県福井市, 200 名 金融・医療・オープンシステムの開発 平鍋健児 オブジェクト指向・ XP の現場実践、書籍・記事の執筆 XP-jp メーリングリスト 岡村敏弘 Jude プロジェクトリーダー
「国際的な XP プロジェクト事例 ─  UML を使った分散アジャイル開発」   17:15 ~ 18:25 ( 70 分) 中国とのジョイントプロジェクトにおいて、 XP ( Extreme Programming )を適用した事例を紹介する。 開発対象は、 UML モデリングツール Jude で、昨年の 10 月からプロジェクトを開始し、現在に至る。 同じ場所での開発期間と、離れた場所での開発期間の違い や、それぞれどのような 困難や利点 があったかを中心に説明する。 コミュニケーション が困難な状況において アジャイル な開発を行う場合の課題と解決策 を探る。 アブストラクト
アジェンダ 経緯と方針(中国・上海の状況を交えて) XP 概要 プロジェクト概要 レポート 考察
アジェンダ 経緯と方針(中国・上海の状況を交えて) XP 概要 プロジェクト概要 レポート 考察
発端 上海視察帰りの社長曰く, 中国のソフトウェア会社と共同開発をせよ. 中国は人件費が安い点で注目されているが,実際に上海に行ってみると技術者のエネルギーはすごい.優秀な人材がたくさんいる.単に人的資源の調達場所としてではなく,優秀な技術者と友好関係を結びたい.また,今から爆発するであろう中国市場も視野に入れたい. 現在開発中の Jude(UML エディタ ) の開発を加速.
中国・上海の状況 ソフトウェア市場としての中国 中国のソフトウェア産業成長 上海のソフトウェア産業成長 上海のソフトウェア技術者 上海のソフトウェア産業の特徴
世界ソフトウェア市場の比較 出展 : "Report of Shanghai Software Industry Development 2001"(Shanghai Information Committee) 日本市場:中国市場= 8:1 日本市場 / 人:中国市場 / 人= 100:1 Software Market breakdown of 2001 Ireland 85.2 China 68.2 Brazil 74.81 South Korea 78.9 India 84 Japan 545.28 USA 2285.6
ソフトウェア販売歳入の推移 年々延び率20%で成長している
上海ソフトウェア産業の成長 特に上海の成長は顕著 (50% 以上 )
上海のソフトウェア技術者 ほとんどが30歳以下. 若いやる気とエネルギーに溢れている しかし,経験はあまりない 上海には大学が50以上ある
上海の政策 他州の大学生,卒業生も上海在住できる ISO9001 と CMM 認定に賞 認定企業への税金の軽減 ベンチャー企業への支援 ハイテクプロダクトへの投資 エンジニアの教育施設 上海政府はソフトウェア開発企業を優遇している
中国・上海の状況(まとめ) 中国のソフトウェア市場は日本の 1/8 . ソフトウェアの販売は,年率 20% で延びている. 特に上海は 50% を超える延び率. 上海には若く・エネルギーのある技術者が多い. 上海は政策的にソフトウェア産業が優遇されている. 現在の上海は共同開発にとてもよい環境  将来の市場,経済の成長  若い人材  (日本に比べて安い人件費)
中国とのジョイント開発の大方針 中国を労働力リソースとは見ない 将来の展開を見据えた信頼関係作り 共同開発の2つの方向の選択肢 設計と製造の分離 …  UML での仕様 I/F 密なチームの結成 …  XP チーム 採用
具体方針 XP チームを結成し, UML エディタを開発する. チームを醸成する. UML に精通する. オブジェクト指向開発ノウハウを伝授する. 将来の設計と製造の分離にも備える. 分散開発のプロセスモデルを探る. 両社の Win-Win を確認する宣言書を作成.
2002 年 9 月 23 日 私たち、永和システムマネジメント、 SuperV 、大陸貿易開発、上坂会計の四社は、日本と中国での共同ソフトウェア開発において、新しいビジネス、新しい価値を創造する活動を行います。この活動にあたっては、以下を共通の原則として行動します。   1.          チャレンジへの若い情熱(青) 2.          出発当初の初心忘るべからず  ( 義 ) 3.          信頼と友情を基礎にしたアライアンス(愛) 4.          自己実現  ( 夢 )   私たちの夢: 4つの Win が第5の Win を創造する。 福井宣言
アジェンダ 経緯と方針(中国・上海の状況を交えて) XP 概要 プロジェクト概要 レポート 考察
XP とは eXtreme Programming コーディングとテストに重点 初期設計よりも漸進的再設計 明確な「 4 つの価値」 , 「 12 のプラクティス」を示す ソフトウェア開発は製造工程ではない. 対話を基礎に置いた新しいパラダイム. Kent Beck, 1999 Extreme Programming Explained - Embrace Change ( 『 XP エクストリーム・プログラミング入門  -  ソフトウェア開発の究極の手法 』)
伝統的な開発
XP の開発
4 つの価値 Communication( コミュニケーション ) Simplicity( シンプルさ ) Feedback( フィードバック ) Courage( 勇気 ) Communication +Simplicity+Feedback = Courage
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 を挙げる
XP Process プロジェクトはリリースの連続 1リリースは2 ~ 3ヶ月 リリースはイテレーションの連続 イテレーションは2 ~ 3週間 イテレーションはタスクからなる タスクは1 ~ 2日 タスクはペアによって開発される 毎朝のスタンドアップミーティング テストファーストによる開発
アジェンダ 経緯と方針(中国・上海の状況を交えて) XP 概要 プロジェクト概要 レポート 考察
開発対象 Jude UML モデリングツール Java アプリケーション 規模(現在) クラス数: 1180 全 NCSS :約 9 万行 (≒コメントや空行以外) プロジェクト概要 Method 10 Class 75 8 Package 2338 239 31 Project 88826 9075 1180 38 per NCSS Methods Classes Packages
ビジョン 1. Jude 竹バージョンを開発しリリースすること 2.信頼関係を構築し、日本と中国で高品質のソフトウェアを共同開発するモデル(ビジネス、プロセス)を見つけること デファクトスタンダード 2.中国アライアンス 1. Jude Jude 梅 Jude 竹 Jude 松 クリエイティブで生産性の高いチーム コアとなる機能を装備 将来の展開に耐えるレベルに拡張 業界特化商品 カスタマイズパートナ アーキテクチャの確立 基本機能の実装 Win-Win 関係 信頼関係
体制 中国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年 Superv( 上海) 当社
スケジュール Startup Phase で4つの図サポートを追加する Elaboration Phase で他の基盤機能を追加する Startup phase  では、 project velocity の把握、ナレッジ共有、相互理解、コミュニケーションに焦点をあてる Startup Phase Elaboration Phase
開発場所 中国で一緒に開発スタート -> 分散開発 日本で一緒に開発 -> 分散開発 日本 上海 当社 当社 当社 SV SuperV SuperV 準備 -> 分散 合同 分散 合同 分散 Release2 Release1 3 2 1 12 11 10
「 XP をベースに短期繰り返し型で開発する」 課題 どう情報共有するか どう品質を維持するか どうリスクを軽減するか XP の採用 密なコミュニケーション ペアプログラミング・ユニットテストによる品質維持 短期リリースと舵取りによるリスク軽減 工夫した点 モデルテスト、コマンドテスト、ストーリテスト Reflection Sheet 、 Evaluation Sheet で改善 プロセス1
プロセス2 Release :三ヶ月単位で大きな計画+機能開発+評価を行う Iteration :計画+機能開発+評価を一週間単位で繰り返す Release1 (3 months) Iteration2 (1 weeks) Iteration1 (1 weeks) Simple UML Story1 Rel.2 Meta model Iteration Evaluation Story2-1 Story2-N Iteration Evaluation Iteration3 (1 weeks) Story5-1 Story5-N Iteration Evaluation Presentation Model Test Model Test Model Test Command Test Command Test IterationN (1 weeks) Story Test Iteration  Evaluation Release  Evaluation Evaluation Sheet Improved Process Release Planning Iteration Planning Iteration Planning Iteration Planning Iteration Planning Reflection Sheet Tracking Sheet
ツール・環境 Ant ビルドツール J2SE 1.4.1 コンパイラ Windows2000 、 XP OS MSN Messenger 会話 Swiki 情報共有 JUnit ユニットテスト CVS 、 WinCVS 構成管理 Eclipse 統合開発環境
アジェンダ 経緯と方針(中国・上海の状況を交えて) XP 概要 プロジェクト概要 レポート 考察
導入 開発開始前の準備 計画共有、ストーリカード準備、環境準備、体験課題 日本 上海 当社 当社 当社 SV SuperV SuperV 導入 -> 分散 合同 分散 合同 分散 11 9 10 7 5 6 3 1 2 8 6 7 4 3 1 Release2 Release1 8 4 5 2 3 2 1 12 11 10
環境準備 「コミュニケーションに適した環境を準備」 ホワイトボード タスク表を貼る壁 プリンタ ホワイトボードを持つチームの部屋 お菓子
XP 体験課題 「簡単な課題で、プロジェクトでの価値観を共有」 課題:「ボーリングの点数計算プログラム」 狙いと効果 XP 予行(ユニットテスト、タスク分割と見積もり) プロジェクトでの価値観共有 理解しやすさ重視 品質重視 メンバの技量把握 コーディング規約注意 期間:1日 各自のプログラム評価結果
アーキテクチャ1 「共通語の UML でアーキテクチャを共有」 パッケージの責務と依存関係中心に理解 説明 UML の例
アーキテクチャ2 「 Jude は、 MVC のフレームワーク上に構築」
テストの種類 Release1 Iteration2 Iteration1 モデル開発 機能開発 コントローラ ビュー モデルテスト モデルテスト コマンドテスト IterationN ストーリテスト Model Test コマンドテスト ユーザストーリを正しく実行できるかを目視で確認する ストーリテスト (手動) アプリケーションを起動した状態でコマンドを送り、コマンドが正しく実行できるかを確認する コマンドテスト ( JUnit ) 内部で持っているモデル( UML メタモデルなど)が正しいかを確認する モデルテスト (JUnit)
Release1  合同開発 日本 上海 当社 当社 当社 SV SuperV SuperV 準備 -> 分散 合同 分散 合同 分散 11 9 10 7 5 6 3 1 2 8 6 7 4 3 1 Release2 Release1 8 4 5 2 3 2 1 12 11 10
Release プランニング 「ざっくりと、一緒に計画する」 準備していった Story カードと Story リストを利用 合同開発中に一通りの開発を一緒に行う 見積もり (理想日) Story のリスト どれからやるか どんな機能を開発したいか
第一イテレーション とにかくやってみる できる限りコミュニケーションする
Iteration プランニング タスク内容 ステートチャート図のモデル開発 ステートチャート図の生成機能開発 (一つ基本機能を先行開発) タスク分割とサインアップ
開発 「ペアプロがチーム内ナレッジ共有に効果大」 UML で開発対象の概略理解 UML メタモデル等のクラス図、オブジェクト図 ペアプログラミング 新しいことに対する勇気、そして理解 アーキテクチャ 開発環境 会話促進 ソースコードで解りあう ユニットテスト 習慣化
トラッキングシート 計画したタスク全て完了 Team Velocity = 12.2 Points Test = 100%  ( 168 cases )
リフレクションシート 「この 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 These Keep These
第二イテレーション 機能の開発 Story カードで機能理解 ほぼ全ペアの組み合わせ実施 途中で新たなストーリ7つ追加 全タスク開発完了
開発風景
中国余談 プラス 時差1時間 漢字、ブロークンな英語 健康志向、週40時間労働 マイナス ビザ、連休 電話、ネットワーク不安定 交通 両方 食事
Release1  分散開発 日本 上海 当社 当社 当社 SV SuperV SuperV 準備 -> 分散 合同 分散 合同 分散 11 9 10 7 5 6 3 1 2 8 6 7 4 3 1 Release2 Release1 8 4 5 2 3 2 1 12 11 10
分散開発 分散でも大きな分担割をせず XP 継続 変化・工夫 あらかじめ Story カードを一緒に作成、理解 プランニングは、全員でのチャット トラッキング情報は、壁ではなく wiki で共有 スタンドアップミーティングは、各社で実施 不明点、アイデアなどは、必要なときにその都度チャット ペアプロは、継続(奇数人になり減少)
Wiki による情報共有 サイトマップ Release 1 スケジュール (期間分割と大雑把な見通し) ストーリー 一覧 (このリリースの開発対象) ストーリーカード( 必要なストーリーのみ) Iteration1 Reflection Sheet ( 前回の反省) Tracking Sheet Team Velocity テスト結果( テストケース数と結果) Iteration2 ・・・・・ Release 2 Release 3 バグ情報一覧 改善項目一覧 Daily 自動テスト結果集計 開発のヒント集( 開発注意点など) ダウンロード数推移 ここから簡単に Web を編集 Edit
実践プラクティス 特別 特別 開発者全員で見積もり、サインアップ。 ストーリーカードにより機能を理解。タスクカードは作成せず。 計画ゲーム ○ テストの種類を3つ用意。コマンドのテストサポートクラス利用。 モデルテスト、コマンドテスト、ストーリテスト ○ ○ ○ × ○ ○ ○ ○ △ ○ ○ ○ × 実施 特に準備せず。 メタファー 2週間単位でリリース。 ちいさなリリース 機能の実装に必要な設計のみに集中。 シンプルデザイン ユニットテストを実践。テスト駆動は未定着。 テスティング よく実践した。常にではなく、デバッグ時は 1 人。 ペアプログラミング 気づいたときになるべく実践。必要意識高い。余裕必要。 リファクタリング Iteration 毎に Reflection シート作成(5分)。 Release 毎に EvaluationSheet 記入。-> 改善意識向上。 Reflection 、 Evaluation ObjectClub バージョンの標準遵守。 Eclipse の自動フォーマット。 コーディング標準 ほぼ残業ゼロだった。最近はがんばりペース。 週40時間 どのファイルも誰でも編集可能。 共同所有権 意見がまとまらない場合など、擬似顧客が決定。 オンサイト顧客 毎日インテグレーション。毎日自動テスト。 継続的インテグレーション どのように実践したか プラクティス
トラブルと対処 Visa 取得遅れによる出張延期 ->  準備課題など 仕様誤解2,3度 慣れによる仕様確認不足が原因 ->  そのイテレーション内に回復 ->  複雑なものは wiki 上にイメージと詳細な記述追加 正月休みのずれ+1人ハネムーン ->  他のメンバがカバーし、問題なし ネットワーク不安定でチャット不可 ->  他のインスタントメッセンジャで対処
Release 1全体 8回のイテレーションを完了 平均 TeamVelocity = 12.2 テストケース数  = 404 完了したストーリー数  =  約 100 ステートチャート図とアクティビティ図追加 他いくつかの改善項目を完了 合同開発・分散開発共に順調に進行 X’mas バージョンを急遽リリース 予定外、2日で対応 外部へのリリースで、顧客視点の再認識 X’mas version
アジェンダ 経緯と方針(中国・上海の状況を交えて) XP 概要 プロジェクト概要 レポート 考察
分散開発と担当割 Jude プロジェクトでは、“一緒に開発”を継続 ○ △ × 頻繁なリリース A 図を一緒に開発 A 図を日本、 B 図を中国 アプリを日本、 モデルを中国 例 密 疎 疎 コミュニケーション ○ △ ○ 機能仕様の統一感 ◎ ○ △ モチベーション ◎ ○ ○ 品質 多 中 少 必要知識 あり 少ない あり 担当タスク間の依存 一緒に開発する 縦に大きく割る 横に大きく割る
ツールとアジャイル開発 「分散アジャイル開発はツールにも支えられる」 直接会って話をする、壁に貼る、が一番。それに近づける。 Web ベースの XP プロジェクトサポートシステム。( Jude プロジェクトでは未使用) XPlanner 、 XpTrackerPlugin ( TWiki plugin ) XP 管理 情報・考えを伝えるのがメールに比べ格段に楽。 インスタントメッセンジャー( MSNMessenger 他) 会話 遠隔ペアプロ ビルドツール ユニットテスト 情報共有 構成管理 開発 種類 プログラミングが楽。ソースを追うのが楽。テストが楽。リファクタリングが楽。 Eclipse 頻繁なリリースが楽。 Ant 離れた人とのペアプロの可能性。 (まだ不安定) Sangam(Eclipse plugin ) 非常に手軽に情報共有できた。 Swiki 、 TWiki 、 PukiWiki 他 テストが楽。 JUnit ソースコード共有が楽。 CVS 、 WinCVS 効果 ツール
UML の役割 高い表現力・伝達力と厳密さをもった標準言語 ↓ ソフトウェアの設計をすばやく共有 ↓ アライアンスとスピード時代の開発をスムーズに 今回の開発での UML 利用 開発対象 Jude のアーキテクチャ共有 モデル( UML メタモデル含む)の設計 簡単な設計アイデアの交換
プロジェクトの特性 Jude プロジェクトについての、 分散アジャイル開発のプラス要因 自分が顧客視点を持てた( UML ツールの利用者) 機能追加が主で大規模な設計が不要だった 参考ツールが存在し、要求仕様を理解しやすかった 一部モデルに関する詳細な仕様書が存在した 日本と中国との開発だった(時差など有利) 自社ソフトウェアの開発だった
うまくいったことと課題 うまくいったこと 導入課題での価値観共有 XP でのナレッジ共有、モチベーション維持 リフレクションシートでの改善・改善意識 メールではなくチャットでのリアルタイムな対話 Wiki でのプロジェクト情報共有 課題 コマンドテストの軽量化(テスト実行時間短縮、分割など) 顧客巻き込み リファクタリングとテストの時間確保 プランニングゲームの時間短縮
今回の事例のポイント Jude を XP で中国と共同開発 あえて大きな役割分担せず、“一緒に開発” 同じ場所でチーム開発開始 ナレッジ共有、モチベーション維持 分散開発ではコミュニケーションツール活用 UML は重要な共通語の一つ 密なチーム・信頼関係を構築
XP と信頼 XP は、信頼を築く XP 信頼 XP は、信頼を基礎とする
紹介 機能・特徴 UML1.4 サポート 無限回 UNDO/REDO (編集の取り消し、やり直し) 大きな図をすばやく移動できる全体マップビュー クラス図自動生成 Microsoft Office®  への図イメージ貼付け 右ドラッグによる斜め方向スクロール ステレオタイプ毎の色設定 http://ObjectClub.esm.co.jp/Jude/ にて無償公開中。 「真のカスタマからのコメントを ぜひお寄せください」 PNG 、 JPEG 出力 図のプリンタ出力 出力 Java ソース読み込み 入力 アクティビティ図 コラボレーション図 クラス図 Java スケルトンコード出力 シーケンス図 Javadoc 形式の Html 出力 ステートチャート図 ユースケース図 図
 

More Related Content

PDF
Global Situation of Agile: Rakuten Tech Conference
PDF
Agile Guts We Have Had and Will Have
PDF
Offshore Agile Development in XP
PDF
Software Engineering And Role of Agile
PDF
Agile, Software Engineering, Process Kaizen. They mix like oil and water ?
PDF
Why Agile Now ? - leanstartup and ARC
PDF
Modeling in the Agile Age - JP
PDF
アジャイル開発の現在・過去・未来~今を知り、源流を訪ね、先を見据える~
Global Situation of Agile: Rakuten Tech Conference
Agile Guts We Have Had and Will Have
Offshore Agile Development in XP
Software Engineering And Role of Agile
Agile, Software Engineering, Process Kaizen. They mix like oil and water ?
Why Agile Now ? - leanstartup and ARC
Modeling in the Agile Age - JP
アジャイル開発の現在・過去・未来~今を知り、源流を訪ね、先を見据える~

What's hot (20)

PDF
Project Facilitation
PDF
Can Agile Really Change Japan's software development
PDF
Agile and TDD Demo
PDF
Nonaka Scrum Creating Knowledge with Users
PDF
リーンスタートアップ、アジャイル開発導入事例
PDF
Scrum-Fest-Sapporo-2021-Keynote-Our-Journey
PDF
Agile and Business
PDF
AgileJapan Fukui Satellite
PDF
Digital Innovation Leadership Panel Discussion
PDF
[Slide]闇アジャイラーvs光アジャイラーforDevLOVE(EnergizedWorkLT祭)
PDF
うそのアジャイル、まことのアジャイル 公開用
PDF
Agile and Scrum: Theory of Knowledge Creation and A Real Story
PDF
Agile UX NYC 2012 Redux in Tokyo (#AgileUXNYC_ja)
PDF
10 years devsumi agile and the future
PPT
はじめてのアジャイル
PDF
Panel discussion Nonaka with Hiranabe At Scrum Gathering Tokyo 2013
PDF
Software design and team design
PDF
リーンソフトウェア開発とは
PDF
Project Facilitation at Kanazawa.rb
PDF
Introduction to Agile - how business and engineer team up
Project Facilitation
Can Agile Really Change Japan's software development
Agile and TDD Demo
Nonaka Scrum Creating Knowledge with Users
リーンスタートアップ、アジャイル開発導入事例
Scrum-Fest-Sapporo-2021-Keynote-Our-Journey
Agile and Business
AgileJapan Fukui Satellite
Digital Innovation Leadership Panel Discussion
[Slide]闇アジャイラーvs光アジャイラーforDevLOVE(EnergizedWorkLT祭)
うそのアジャイル、まことのアジャイル 公開用
Agile and Scrum: Theory of Knowledge Creation and A Real Story
Agile UX NYC 2012 Redux in Tokyo (#AgileUXNYC_ja)
10 years devsumi agile and the future
はじめてのアジャイル
Panel discussion Nonaka with Hiranabe At Scrum Gathering Tokyo 2013
Software design and team design
リーンソフトウェア開発とは
Project Facilitation at Kanazawa.rb
Introduction to Agile - how business and engineer team up
Ad

Viewers also liked (10)

PPTX
20160130 モデリング技術を学ぼう
PPTX
20151018 study-設計を学ぶための最初の一冊はなにがいいのだろうか
PDF
ホフステードの6次元モデル紹介
PDF
CloudSpiral 2013年度 UML講義 1日目
PPTX
凡人の凡人による凡人のためのデザインパターン第一幕 Public
PPTX
日本で DevOps を ロケットスタートする方法
PPTX
20160526 依存関係逆転の原則
PDF
俺たちの新人教育!!
PDF
[XP祭り2016]野良LT~KPT=>KPTA=>KPTATAH~
PDF
ふりかえり
20160130 モデリング技術を学ぼう
20151018 study-設計を学ぶための最初の一冊はなにがいいのだろうか
ホフステードの6次元モデル紹介
CloudSpiral 2013年度 UML講義 1日目
凡人の凡人による凡人のためのデザインパターン第一幕 Public
日本で DevOps を ロケットスタートする方法
20160526 依存関係逆転の原則
俺たちの新人教育!!
[XP祭り2016]野良LT~KPT=>KPTA=>KPTATAH~
ふりかえり
Ad

Similar to Distributed Agile using UML (20)

PDF
GCSアジャイル開発を使ったゲームの作り方
PPT
XP movement In Japan
PDF
eXtremeProgramming入門
PDF
ソフトウェア開発の現場風景
PDF
Xp Terakoya No02
PPTX
分散開発チームによるAgile開発実践 ~いろいろハマった!よかった
PDF
Scrum"再"入門
PDF
とりあえず30分でひととおり分かった気にはなれるアジャイル入門
KEY
テスト駆動開発の導入ーペアプログラミングの学習効果ー
PDF
効果的なXPの導入を目的とした プラクティス間の相互作用の分析
PPT
Scrumの紹介とXPプロジェクトへの適用(Scrum and XP)
PDF
第2回 すくすく・スクラム
PDF
AgileJapan2010 官公庁でも取り組み始めたアジャイル! NECソフトウェア東北
PDF
AgileJapan2010 官公庁でも取り組み始めたアジャイル! NECソフトウェア東北
PDF
DevOps、その前に
PDF
チームにRedmineを適用せよ! #RxTstudy
PDF
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
PPTX
PDF
Semat - a Japanese introduction
PDF
Ricoh UCS for iPad でみる エンタープライズ アジャイル開発
GCSアジャイル開発を使ったゲームの作り方
XP movement In Japan
eXtremeProgramming入門
ソフトウェア開発の現場風景
Xp Terakoya No02
分散開発チームによるAgile開発実践 ~いろいろハマった!よかった
Scrum"再"入門
とりあえず30分でひととおり分かった気にはなれるアジャイル入門
テスト駆動開発の導入ーペアプログラミングの学習効果ー
効果的なXPの導入を目的とした プラクティス間の相互作用の分析
Scrumの紹介とXPプロジェクトへの適用(Scrum and XP)
第2回 すくすく・スクラム
AgileJapan2010 官公庁でも取り組み始めたアジャイル! NECソフトウェア東北
AgileJapan2010 官公庁でも取り組み始めたアジャイル! NECソフトウェア東北
DevOps、その前に
チームにRedmineを適用せよ! #RxTstudy
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
Semat - a Japanese introduction
Ricoh UCS for iPad でみる エンタープライズ アジャイル開発

More from Kenji Hiranabe (20)

PDF
effective ba for online communication
PDF
線形代数の視覚的理解 V1.1-Gストラング勉強会
PDF
Math in Machine Learning / PCA and SVD with Applications
PDF
Graphic Notes on Linear Algebra and Data Science
PDF
Appreciating Your Way to XP
PDF
Digital Business and Agile
PDF
Graphic Notes on Introduction to Linear Algebra
PDF
線形代数の視覚的理解のためのノート
PDF
with コロナ時代のアジャイルとコミュニケーション
PDF
Agile Ba with Covid at Redmine Japan 2020
PDF
ESM Agile Studio DX and COVID
PDF
Agile Ba with Covid
PDF
Essence position talk by hiranabe
PDF
Agile Scrum at Knowledge Forum 2020
PDF
Ba and digital here now ness
PDF
Modeling in the Agile Age and casual astah models
PDF
Modeling in the Agile Age
PDF
Agile in automotive industry
PDF
5-principles-for-project-facilitation
PDF
Nonaka Scrum - The New New Product Development Game, SECI model, The US Marin...
effective ba for online communication
線形代数の視覚的理解 V1.1-Gストラング勉強会
Math in Machine Learning / PCA and SVD with Applications
Graphic Notes on Linear Algebra and Data Science
Appreciating Your Way to XP
Digital Business and Agile
Graphic Notes on Introduction to Linear Algebra
線形代数の視覚的理解のためのノート
with コロナ時代のアジャイルとコミュニケーション
Agile Ba with Covid at Redmine Japan 2020
ESM Agile Studio DX and COVID
Agile Ba with Covid
Essence position talk by hiranabe
Agile Scrum at Knowledge Forum 2020
Ba and digital here now ness
Modeling in the Agile Age and casual astah models
Modeling in the Agile Age
Agile in automotive industry
5-principles-for-project-facilitation
Nonaka Scrum - The New New Product Development Game, SECI model, The US Marin...

Distributed Agile using UML

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

Editor's Notes

  • #26: 増加クラス約 440
  • #28: Java 開発経験、 Jude 開発経験を補足 トラッカ、コーチは?
  • #33: ホワイトボード、情報カード
  • #36: ウーロン茶、お菓子
  • #37: 参考:「 XXX の X ページ」
  • #45: コピーペーストして変数名そのままとかいう問題があった
  • #47: Try to find good restaurant Talk with gathering
  • #50: メモ帳、ウーロンチャ
  • #65: ブースにもお立ちよりください。何時まで?