SlideShare a Scribd company logo
CIのススメ
株式会社 マイソフト
 高橋 登 中村 薫
こんな経験
ありませんか?
お客さんからのクレーム

①夜中に呼び出し「最新のソ
 フトほしいんだけど~」
お客さんからのクレーム

②「前に修正をお願いしたバグ、
  直ってないんだけど~」
お客さんからのクレーム

③「そういえば、この間のバ
  グ、いつ直したの?」
開発側では、、、

④○○さんの環境ではビルド
   できるのに・・・
開発側では、、、

⑤リリース版は彼のPCから
   貰ってください
開発側では、、、

⑥バージョン番号が日付
開発側では、、、

⑦このソフトは、"何"を追加修正し
   たバージョンなの?
①夜中に呼び出し「最新のソフトほしいんだけど~」
②「前に修正をお願いしたバグ、直ってないんだけど~」
③「そういえば、この間のバグ、いつ直したの?」
④○○さんの環境ではビルドできるのに・・・
⑤リリース版は彼のPCから貰ってください
⑥バージョン番号が日付
⑦このソフトは、"何"を追加修正したバージョンなの?
解決策
CI
CIとは
Continuous Integration
継続的インテグレーション

XP(eXtreme Programming)の中で提唱されている、「継続した結合」を実現するための方法
•   継続したビルドって何?
     o 短いサイクルで、顧客にとって価値のあるソフトウェアを定期的にリリースする
     o 単体テストをパスするコードが完成するたびに結合テストを行い、 問題点や改善点を探す
     o 少なくとも一日に一回は、結合テストを行う
CIの種類
• ビルド
  o CIサーバー上でビルドを行う
• テスト
  o テストコードを自動的に実行する
• リリース
  o 成果物が自動的に作成される
要は
ビルド、テスト、リリースを自動化して、
成果物をいつでも作っておけば安心だ
ね!ってこと
     ①が解決!
①夜中に呼び出し「最新のソフトほしいんだけど~」
②「前に修正をお願いしたバグ、直ってないんだけど~」
③「そういえば、この間のバグ、いつ直したの?」
④○○さんの環境ではビルドできるのに・・・
⑤リリース版は彼のPCから貰ってください
⑥バージョン番号が日付
⑦このソフトは、"何"を追加修正したバージョンなの?
とは言っても
XPやんなきゃだめなんでしょ?


そんなこと無いのよ!
いまのプロジェクトにだって入れられま
す
仕組み
CIサーバでビルド
リリースする成果物はCIサーバー
でビルドするので、ビルド環境はCI
中心になる

 ④と⑤が解決!
①夜中に呼び出し「最新のソフトほしいんだけど~」
②「前に修正をお願いしたバグ、直ってないんだけど~」
③「そういえば、この間のバグ、いつ直したの?」
④○○さんの環境ではビルドできるのに・・・
⑤リリース版は彼のPCから貰ってください
⑥バージョン番号が日付
⑦このソフトは、"何"を追加修正したバージョンなの?
CIツール
Hudson
Hudsonとは
CIツールのデファクト
何ができるの?
CUIで出来ることは全
    部出来る
他にも
成果物の情報収集
• 時系列で見る変化をグラフ化
• FIXされたコミットログの内容を閲覧
  できる
 ②,③,⑦が解決!
他にも
ダウンロードページ自動作成
Hudsonのビルド番号を利用するこ
とができる
     ⑥が解決
①夜中に呼び出し「最新のソフトほしいんだけど~」
②「前に修正をお願いしたバグ、直ってないんだけど~」
③「そういえば、この間のバグ、いつ直したの?」
④○○さんの環境ではビルドできるのに・・・
⑤リリース版は彼のPCから貰ってください
⑥バージョン番号が日付
⑦このソフトは、"何"を追加修正したバージョンなの?
何が幸せ?
豊富な機能とプラグイン
• テスト結果の集計
• 成果物の収集
• コード解析
• Doxygenでドキュメント作成
• ソフトウェア情報のグラフ表示
  (メモリ、実行ファイルのサイズ)
何が幸せ?
開発者のが受ける恩恵
• 最新ソフトをいつでも取得できる
• ビルドごとにテストを実行できるので、常
  に「動くソフトウェア 」を
  提供できる
• Hud美さんに会える
何が面倒?
メンテナンスが必要
でも
• 初期設定だけでも、とりあえず動く
• メンテナンスが、かなり容易
何が面倒?
コンパイルエラーが残っていると、失敗ビル
ドができ上がり、かなり焦る

でも
• ビルド失敗は、むしろ見つけてもらって感
  謝すべきすべき
• Hud美さんの怒ったかおmくぁw
何が面倒?
CIサーバーのビルド 環境構築が面倒
でも
• Hudsonさんも開発者の一員です
• 環境構築する面倒 < 自動で毎日ビルドし
  てくれる人
応用
ユニットテストの自動化
まとめ
ツールを使うかは、自由です
Hud美に会うのも、自由です
でも、
より良い製品を効率的に
  開発するために
HudsonからはじめるCI、
いかがですか?
ご清聴
ありがとうございました

More Related Content

Viewers also liked

Презентация Green PR Светланы Максимченко
Презентация Green PR Светланы МаксимченкоПрезентация Green PR Светланы Максимченко
Презентация Green PR Светланы Максимченкоecowikiru
 
BW-OPERATION-FINAL2
BW-OPERATION-FINAL2BW-OPERATION-FINAL2
BW-OPERATION-FINAL2
Hellen Keller International
 
SUBMITED THESIS
SUBMITED THESISSUBMITED THESIS
Female Gametophyte
Female GametophyteFemale Gametophyte
Female Gametophyte
Rutwik Khalanekar
 
POLIO AS A GLOBAL HEALTH CONCERN-TO
POLIO AS A GLOBAL HEALTH CONCERN-TOPOLIO AS A GLOBAL HEALTH CONCERN-TO
POLIO AS A GLOBAL HEALTH CONCERN-TO
Hellen Keller International
 
mapping protocol
mapping protocolmapping protocol
mapping protocol
Hellen Keller International
 
풍력 산업용 카다로그 2014
풍력 산업용 카다로그 2014풍력 산업용 카다로그 2014
풍력 산업용 카다로그 2014
ifm electronic gmbh
 
Nghiệp vụ tín dụng ngân hàng
Nghiệp vụ tín dụng ngân hàngNghiệp vụ tín dụng ngân hàng
Nghiệp vụ tín dụng ngân hànganntt123
 
Seminar proposal skripsi - Analisis Faktor-faktor yang Berpengaruh Terhadap K...
Seminar proposal skripsi - Analisis Faktor-faktor yang Berpengaruh Terhadap K...Seminar proposal skripsi - Analisis Faktor-faktor yang Berpengaruh Terhadap K...
Seminar proposal skripsi - Analisis Faktor-faktor yang Berpengaruh Terhadap K...Salomo Matondang
 
Adjectives slideshare
Adjectives slideshareAdjectives slideshare
Adjectives slideshare
yeylo85
 

Viewers also liked (10)

Презентация Green PR Светланы Максимченко
Презентация Green PR Светланы МаксимченкоПрезентация Green PR Светланы Максимченко
Презентация Green PR Светланы Максимченко
 
BW-OPERATION-FINAL2
BW-OPERATION-FINAL2BW-OPERATION-FINAL2
BW-OPERATION-FINAL2
 
SUBMITED THESIS
SUBMITED THESISSUBMITED THESIS
SUBMITED THESIS
 
Female Gametophyte
Female GametophyteFemale Gametophyte
Female Gametophyte
 
POLIO AS A GLOBAL HEALTH CONCERN-TO
POLIO AS A GLOBAL HEALTH CONCERN-TOPOLIO AS A GLOBAL HEALTH CONCERN-TO
POLIO AS A GLOBAL HEALTH CONCERN-TO
 
mapping protocol
mapping protocolmapping protocol
mapping protocol
 
풍력 산업용 카다로그 2014
풍력 산업용 카다로그 2014풍력 산업용 카다로그 2014
풍력 산업용 카다로그 2014
 
Nghiệp vụ tín dụng ngân hàng
Nghiệp vụ tín dụng ngân hàngNghiệp vụ tín dụng ngân hàng
Nghiệp vụ tín dụng ngân hàng
 
Seminar proposal skripsi - Analisis Faktor-faktor yang Berpengaruh Terhadap K...
Seminar proposal skripsi - Analisis Faktor-faktor yang Berpengaruh Terhadap K...Seminar proposal skripsi - Analisis Faktor-faktor yang Berpengaruh Terhadap K...
Seminar proposal skripsi - Analisis Faktor-faktor yang Berpengaruh Terhadap K...
 
Adjectives slideshare
Adjectives slideshareAdjectives slideshare
Adjectives slideshare
 

Similar to CIのススメ

あるゲームアプリケーションの構成とアップデートサイクル
あるゲームアプリケーションの構成とアップデートサイクルあるゲームアプリケーションの構成とアップデートサイクル
あるゲームアプリケーションの構成とアップデートサイクル
Kentaro Iizuka
 
ゲーム開発環境、もっと楽にできるよ♬ マインクラフトでも実践している DevOpsでゲーム開発を効率化しよう!
ゲーム開発環境、もっと楽にできるよ♬  マインクラフトでも実践している DevOpsでゲーム開発を効率化しよう!ゲーム開発環境、もっと楽にできるよ♬  マインクラフトでも実践している DevOpsでゲーム開発を効率化しよう!
ゲーム開発環境、もっと楽にできるよ♬ マインクラフトでも実践している DevOpsでゲーム開発を効率化しよう!
Hiroko Umetsu
 
Voicepic@FukuiMASeminar
Voicepic@FukuiMASeminarVoicepic@FukuiMASeminar
Voicepic@FukuiMASeminar
Manabu Shimobe
 
チラシルiOSでの広告枠開発
チラシルiOSでの広告枠開発チラシルiOSでの広告枠開発
チラシルiOSでの広告枠開発
Satoshi Takano
 
落ちないアプリ開発の仕組み
落ちないアプリ開発の仕組み落ちないアプリ開発の仕組み
落ちないアプリ開発の仕組みKazunari Ebihara
 
Unity開発で週イチ呑み会を支える技術
Unity開発で週イチ呑み会を支える技術Unity開発で週イチ呑み会を支える技術
Unity開発で週イチ呑み会を支える技術kazuya noshiro
 
第2回名古屋CV・PRML勉強会 「Kinectの導入」
第2回名古屋CV・PRML勉強会 「Kinectの導入」第2回名古屋CV・PRML勉強会 「Kinectの導入」
第2回名古屋CV・PRML勉強会 「Kinectの導入」
Tsukasa Sugiura
 
いままでのJaSSTnanoLT動画を振り返る&おススメしたいの! / Looking back and recommend on the JaSSTna...
いままでのJaSSTnanoLT動画を振り返る&おススメしたいの! / Looking back and recommend on the JaSSTna...いままでのJaSSTnanoLT動画を振り返る&おススメしたいの! / Looking back and recommend on the JaSSTna...
いままでのJaSSTnanoLT動画を振り返る&おススメしたいの! / Looking back and recommend on the JaSSTna...
ICO
 
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話Kentaro Matsumae
 
Room metro Tokyo #3 発表資料です。
Room metro Tokyo #3 発表資料です。Room metro Tokyo #3 発表資料です。
Room metro Tokyo #3 発表資料です。
Manato KAMEYA
 
ドリコムを支える課金ライブラリを支えるJenkins
ドリコムを支える課金ライブラリを支えるJenkinsドリコムを支える課金ライブラリを支えるJenkins
ドリコムを支える課金ライブラリを支えるJenkins
Go Sueyoshi (a.k.a sue445)
 
Rakus MeetUp 正攻法はあるのか!?泥臭く戦ったNode.jsバージョンアップ一部始終
Rakus MeetUp 正攻法はあるのか!?泥臭く戦ったNode.jsバージョンアップ一部始終Rakus MeetUp 正攻法はあるのか!?泥臭く戦ったNode.jsバージョンアップ一部始終
Rakus MeetUp 正攻法はあるのか!?泥臭く戦ったNode.jsバージョンアップ一部始終
masatonishihara
 
Klocworkのご紹介
Klocworkのご紹介Klocworkのご紹介
Klocworkのご紹介
Masaru Horioka
 
サーバ擬人化ユーザ会キックオフ資料 Slideshare ver
サーバ擬人化ユーザ会キックオフ資料 Slideshare verサーバ擬人化ユーザ会キックオフ資料 Slideshare ver
サーバ擬人化ユーザ会キックオフ資料 Slideshare ver
Seiichiro Ishida
 
密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境
Fumihito Yokoyama
 
第8回テックヒルズIBM資料
第8回テックヒルズIBM資料第8回テックヒルズIBM資料
第8回テックヒルズIBM資料
Tomoari Yasuda
 
WDF Vol.4
WDF Vol.4WDF Vol.4
WDF Vol.4
hIDDENxv
 
Windows 8 Developers カンファレンス
Windows 8 Developers カンファレンスWindows 8 Developers カンファレンス
Windows 8 Developers カンファレンスKaoru NAKAMURA
 

Similar to CIのススメ (18)

あるゲームアプリケーションの構成とアップデートサイクル
あるゲームアプリケーションの構成とアップデートサイクルあるゲームアプリケーションの構成とアップデートサイクル
あるゲームアプリケーションの構成とアップデートサイクル
 
ゲーム開発環境、もっと楽にできるよ♬ マインクラフトでも実践している DevOpsでゲーム開発を効率化しよう!
ゲーム開発環境、もっと楽にできるよ♬  マインクラフトでも実践している DevOpsでゲーム開発を効率化しよう!ゲーム開発環境、もっと楽にできるよ♬  マインクラフトでも実践している DevOpsでゲーム開発を効率化しよう!
ゲーム開発環境、もっと楽にできるよ♬ マインクラフトでも実践している DevOpsでゲーム開発を効率化しよう!
 
Voicepic@FukuiMASeminar
Voicepic@FukuiMASeminarVoicepic@FukuiMASeminar
Voicepic@FukuiMASeminar
 
チラシルiOSでの広告枠開発
チラシルiOSでの広告枠開発チラシルiOSでの広告枠開発
チラシルiOSでの広告枠開発
 
落ちないアプリ開発の仕組み
落ちないアプリ開発の仕組み落ちないアプリ開発の仕組み
落ちないアプリ開発の仕組み
 
Unity開発で週イチ呑み会を支える技術
Unity開発で週イチ呑み会を支える技術Unity開発で週イチ呑み会を支える技術
Unity開発で週イチ呑み会を支える技術
 
第2回名古屋CV・PRML勉強会 「Kinectの導入」
第2回名古屋CV・PRML勉強会 「Kinectの導入」第2回名古屋CV・PRML勉強会 「Kinectの導入」
第2回名古屋CV・PRML勉強会 「Kinectの導入」
 
いままでのJaSSTnanoLT動画を振り返る&おススメしたいの! / Looking back and recommend on the JaSSTna...
いままでのJaSSTnanoLT動画を振り返る&おススメしたいの! / Looking back and recommend on the JaSSTna...いままでのJaSSTnanoLT動画を振り返る&おススメしたいの! / Looking back and recommend on the JaSSTna...
いままでのJaSSTnanoLT動画を振り返る&おススメしたいの! / Looking back and recommend on the JaSSTna...
 
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
 
Room metro Tokyo #3 発表資料です。
Room metro Tokyo #3 発表資料です。Room metro Tokyo #3 発表資料です。
Room metro Tokyo #3 発表資料です。
 
ドリコムを支える課金ライブラリを支えるJenkins
ドリコムを支える課金ライブラリを支えるJenkinsドリコムを支える課金ライブラリを支えるJenkins
ドリコムを支える課金ライブラリを支えるJenkins
 
Rakus MeetUp 正攻法はあるのか!?泥臭く戦ったNode.jsバージョンアップ一部始終
Rakus MeetUp 正攻法はあるのか!?泥臭く戦ったNode.jsバージョンアップ一部始終Rakus MeetUp 正攻法はあるのか!?泥臭く戦ったNode.jsバージョンアップ一部始終
Rakus MeetUp 正攻法はあるのか!?泥臭く戦ったNode.jsバージョンアップ一部始終
 
Klocworkのご紹介
Klocworkのご紹介Klocworkのご紹介
Klocworkのご紹介
 
サーバ擬人化ユーザ会キックオフ資料 Slideshare ver
サーバ擬人化ユーザ会キックオフ資料 Slideshare verサーバ擬人化ユーザ会キックオフ資料 Slideshare ver
サーバ擬人化ユーザ会キックオフ資料 Slideshare ver
 
密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境
 
第8回テックヒルズIBM資料
第8回テックヒルズIBM資料第8回テックヒルズIBM資料
第8回テックヒルズIBM資料
 
WDF Vol.4
WDF Vol.4WDF Vol.4
WDF Vol.4
 
Windows 8 Developers カンファレンス
Windows 8 Developers カンファレンスWindows 8 Developers カンファレンス
Windows 8 Developers カンファレンス
 

CIのススメ