CI Boot Camp
こんにちは
一番最初に大切なコト• 会場を提供してくれた長久さんNIIさん、  ありがとう• 企画してくれた粉川さん、ありがとう• 参加してくれたみなさん、ありがとう
ゲーム開発環境勉強会• Facebookグループを中心に活動 – http://www.facebook.com/groups/189611231110905/• CEDEC2011「ゲーム開発効率化/品質向  上ラウンドテーブル」の後に発足•...
新しいものが続々と
競争の激化
何をよりどころに すれば良いの
これからの開発に必要なコト• 価値の創造 – UX、…• 素早い具現化 – Agile   本日のテーマ
アジャイルを実際に行うには• プロセス• ツール
アジャイル 三種の神器• SCM: Software Configuration Management  – ソフトウェア構成管理(ツール)     • Git, SubVersion, …• BTS: Bug Tracking System ...
というのは建前で
妄想             TDD             Boot Camp  SCM         Agile        ScrumBoot Camp   Boot Camp    Boot Camp   やりたい!
妄想             TDD             Boot Camp  SCM         Agile        ScrumBoot Camp   Boot Camp    Boot Camp       何かが足りない…
妄想             TDD             Boot Camp  SCM         Agile        ScrumBoot Camp   Boot Camp    Boot Camp                ...
CIBCとは• CIを手を動かして体験してもらうこと  で、本を読むよりも深く理解しても  らう場• ただし、与えられた課題をこなすだけで  なく – 自分の現場でどのように応用できるか   考えて下さい – 他の方と議論してください
CIとは?
バグを出したことが  ない人?
今日の対象者ではないのでお帰り下さい
バグを防ぎたいとは 思いませんか?品質を高めたいとは 思いませんか?
あるんです銀の弾丸となり得るもの  が
バグを防ぐには⇒  なるべく早くバクを   見つけて退治する品質を高めるには⇒なるべく早くフィードバックを   もらって改善する
CI (Continuous Integration)• 継続的インテグレーション(統合) – 常にソフトウェアを統合しておくことで、モ   ジュール間の不整合を最小限に留め、品質を   向上する手法  • ビルド  • テスト  • 静的解析...
継続的デリバリー• CIをデプロイ(製品出荷)まで進める – 何時でも使えるものが出荷できる  • バグは使われる時間が多いほど発見されやすい  • 早期提供、早期フィードバック    – 新しいアイデアがすぐに実現できる    – ムダな昨日...
継続的デリバリーで得られる物• 堅実な開発 – バグを事前に見つけやすい安心感 – 最新版の動作が実感できる安心感  • 通常は直前の状態に戻しやすい – 何時でも見せられるものがある安心感  • 偉い人は突然やってくる – すぐに中止の判断も...
従来のデプロイ         SCM                          デプロイ先誰かがビルド                  誰かが置く          コンパイラ
継続的インテグレーション1                   失敗したら通知メール                             CIサーバー        ①SCMの更新を監視        or 定期的に取得      SCM ...
継続的インテグレーション2                   失敗したら通知メール                             CIサーバー        ①SCMの更新を監視        or 定期的に取得      SCM ...
継続的デリバリー1                   失敗したら通知メール                             CIサーバー        ①SCMの更新を監視              ⑤ビルド、テストが        ...
継続的デリバリー2                                     BTS                   失敗したら通知                              失敗したらバグチケット作成メール ...
登場人物たちの補足 (1/3)  Git• 分散バージョン管理システムの1つ  – ローカルでみんなが同じコピーを所有  – ブランチ変更が高速なため多用しやすい  – みんなもいるし何とかなりやすい• Linus Torvalds が初期開発者
Gitの使い方• 使い方の一例                           feature, story, fix, topic, ..                          機能等の価値ある単位での個別開発        ...
登場人物たちの補足 (2/3)   Google test• C++ Unit Test フレームワークの1つ – http://opencv.jp/googletestdocs/index.html – EXPECT_EQ(期待値, 実行結果...
登場人物たちの補足 (3/3) ALMinium– BTSの1つであるRedmineを利用(プラグイン追加)  して  ALM(Application Lifecycle Management)を実現する  ためのツール– BTS  • チケッ...
Upcoming SlideShare
Loading in …5
×

Cibc lecture imagire

630 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
630
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Cibc lecture imagire

  1. 1. CI Boot Camp
  2. 2. こんにちは
  3. 3. 一番最初に大切なコト• 会場を提供してくれた長久さんNIIさん、 ありがとう• 企画してくれた粉川さん、ありがとう• 参加してくれたみなさん、ありがとう
  4. 4. ゲーム開発環境勉強会• Facebookグループを中心に活動 – http://www.facebook.com/groups/189611231110905/• CEDEC2011「ゲーム開発効率化/品質向 上ラウンドテーブル」の後に発足• 1年間で4回の勉強会(今回除く)を開催
  5. 5. 新しいものが続々と
  6. 6. 競争の激化
  7. 7. 何をよりどころに すれば良いの
  8. 8. これからの開発に必要なコト• 価値の創造 – UX、…• 素早い具現化 – Agile 本日のテーマ
  9. 9. アジャイルを実際に行うには• プロセス• ツール
  10. 10. アジャイル 三種の神器• SCM: Software Configuration Management – ソフトウェア構成管理(ツール) • Git, SubVersion, …• BTS: Bug Tracking System – バグ管理システム • Redmine, Trac, JIRA, …• CI: Continuous Integration – 継続的統合(ツール) • Jenkins, Travis CI
  11. 11. というのは建前で
  12. 12. 妄想 TDD Boot Camp SCM Agile ScrumBoot Camp Boot Camp Boot Camp やりたい!
  13. 13. 妄想 TDD Boot Camp SCM Agile ScrumBoot Camp Boot Camp Boot Camp 何かが足りない…
  14. 14. 妄想 TDD Boot Camp SCM Agile ScrumBoot Camp Boot Camp Boot Camp CI Boot Camp
  15. 15. CIBCとは• CIを手を動かして体験してもらうこと で、本を読むよりも深く理解しても らう場• ただし、与えられた課題をこなすだけで なく – 自分の現場でどのように応用できるか 考えて下さい – 他の方と議論してください
  16. 16. CIとは?
  17. 17. バグを出したことが ない人?
  18. 18. 今日の対象者ではないのでお帰り下さい
  19. 19. バグを防ぎたいとは 思いませんか?品質を高めたいとは 思いませんか?
  20. 20. あるんです銀の弾丸となり得るもの が
  21. 21. バグを防ぐには⇒ なるべく早くバクを 見つけて退治する品質を高めるには⇒なるべく早くフィードバックを もらって改善する
  22. 22. CI (Continuous Integration)• 継続的インテグレーション(統合) – 常にソフトウェアを統合しておくことで、モ ジュール間の不整合を最小限に留め、品質を 向上する手法 • ビルド • テスト • 静的解析 – 自動化できる部分は自動化しておくことで、 バグを早期に発見し、不具合を未然に防ぎや すくする
  23. 23. 継続的デリバリー• CIをデプロイ(製品出荷)まで進める – 何時でも使えるものが出荷できる • バグは使われる時間が多いほど発見されやすい • 早期提供、早期フィードバック – 新しいアイデアがすぐに実現できる – ムダな昨日の作り込みを排除• 自動化されたデプロイ – リリース作業でのヒューマンエラーの削減 • 焦っても大丈夫 – 価値を生む仕事に専念 – デプロイメント職人が不必要になる
  24. 24. 継続的デリバリーで得られる物• 堅実な開発 – バグを事前に見つけやすい安心感 – 最新版の動作が実感できる安心感 • 通常は直前の状態に戻しやすい – 何時でも見せられるものがある安心感 • 偉い人は突然やってくる – すぐに中止の判断も出来る • 金の垂れ流しを防止して、すばやいリカバリー
  25. 25. 従来のデプロイ SCM デプロイ先誰かがビルド 誰かが置く コンパイラ
  26. 26. 継続的インテグレーション1 失敗したら通知メール CIサーバー ①SCMの更新を監視 or 定期的に取得 SCM ②ビルド ③実行ファイル を渡す コンパイラ
  27. 27. 継続的インテグレーション2 失敗したら通知メール CIサーバー ①SCMの更新を監視 or 定期的に取得 SCM ②ビルド ④テストを実行 ③実行ファイル を渡す Unit test コンパイラ
  28. 28. 継続的デリバリー1 失敗したら通知メール CIサーバー ①SCMの更新を監視 ⑤ビルド、テストが or 定期的に取得 成功なら配布 SCM ⑤ビルド、テストが 成功ならコミットに目印 ④テストを実行 デプロイ先 ②ビルド ③実行ファイル を渡す Unit test コンパイラ
  29. 29. 継続的デリバリー2 BTS 失敗したら通知 失敗したらバグチケット作成メール CIサーバー ①SCMの更新を監視 ⑤ビルド、テストが or 定期的に取得 成功なら配布 SCM ⑤ビルド、テストが 成功ならコミットに目印 ④テストを実行 デプロイ先 ②ビルド ③実行ファイル を渡す Unit test コンパイラ
  30. 30. 登場人物たちの補足 (1/3) Git• 分散バージョン管理システムの1つ – ローカルでみんなが同じコピーを所有 – ブランチ変更が高速なため多用しやすい – みんなもいるし何とかなりやすい• Linus Torvalds が初期開発者
  31. 31. Gitの使い方• 使い方の一例 feature, story, fix, topic, .. 機能等の価値ある単位での個別開発 機能開発終了: 機能開発開始: git checkout develop git branch story/#番号 git merge --no-ff story/#番号 git checkout story/#番号 develop 主要開発ソース リリース、デプロイ: git checkout master git merge --no-ff develop master 最新製品と同じソース
  32. 32. 登場人物たちの補足 (2/3) Google test• C++ Unit Test フレームワークの1つ – http://opencv.jp/googletestdocs/index.html – EXPECT_EQ(期待値, 実行結果)等で正しいか判 断 • EXPECT_TRUE, EXPECT_FALSE • EXPECT_EQ, EXPECT_NE, EXPECT_LT, EXPECT_LE, EXPECT_GT, EXPECT_GE • EXPECT_STREQ, EXPECT_STRNE, EXPECT_STRCASEEQ, EXPECT_STRCASENE • ASSERT(エラーで停止), EXPECT(エラってもそのまま実行)
  33. 33. 登場人物たちの補足 (3/3) ALMinium– BTSの1つであるRedmineを利用(プラグイン追加) して ALM(Application Lifecycle Management)を実現する ためのツール– BTS • チケット発行、ステータス管理で作業タスクを管理 – 新規 – 進行中 – 解決 – フィードバック – 終了 – (却下)

×