![Page 1: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/1.jpg)
梅原 直樹iOS EDC 2013: iOS Enterprise & Developers Conference 7/11/2013
Naoki UMEHARA
iOSアプリケーションの継続的デリバリー
〜エンタープライズ品質のiOSアプリケーションを目指して〜
![Page 2: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/2.jpg)
僕たちは価値のあるソフトウェアを早く継続的にデリバリーしお客様を満足させなくては
ならない
![Page 3: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/3.jpg)
梅原 直樹うめはら なおき
Twitter:@numehahttp://numeha.hatenablog.com/
#iosedc
![Page 4: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/4.jpg)
Developers Summit 2013
http://www.slideshare.net/numeha/ricoh-ucs-for-ipad
![Page 5: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/5.jpg)
![Page 6: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/6.jpg)
株式会社 リコー
![Page 7: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/7.jpg)
新規事業を生み出すために
クラウド関連とiOS関連の
ソフトウェア開発リーダとして活動しています
※ちなみにiOS歴は約1年半です
![Page 8: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/8.jpg)
よろしくお願いします
![Page 9: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/9.jpg)
RICOH UCS(Unified Communication System)
1.
![Page 10: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/10.jpg)
2011年8月22日ビデオ会議市場に新規参入
![Page 11: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/11.jpg)
クラウドやビデオチャット市場を含めると2020年8,000億円市場に
http://businessnetwork.jp/Detail/tabid/65/artid/1262/Default.aspx
![Page 12: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/12.jpg)
簡単さ・使いやすさを追求した
少人数(約5名)向けの
ポータブル型のテレビ会議システム
P3000
http://www.ricoh.co.jp/ucs
![Page 13: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/13.jpg)
ポリコム
ソニーシスコ
パナソニック
リコーその他
ビデオ会議メーカシェア
http://www.seedplanning.co.jp/press/2013/2013032701.html
2012年
5位!!
![Page 14: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/14.jpg)
iPad版
http://www.apple.com/ipad-mini/overview/
iPad版(2013/1/31 Release)
iPhone版(2013/9/10 Release)
コミュニケーションの幅を拡大
![Page 15: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/15.jpg)
⚠当日は
ムービーを流しました
![Page 16: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/16.jpg)
ビジュアル・コミュニケーション
各拠点間
外出先 自宅 移動中
![Page 17: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/17.jpg)
他にもメンタルヘルスの支援の一貫でiPadを利用
http://www.mitsubishicorp-foundation.org/reconstruction/case/file28.html
![Page 18: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/18.jpg)
お客様同士の横の繋がりによる導入
RICOH UCSいいらしいよ
よし導入しよう
エンタープライズの世界でネットワーク効果の兆候
![Page 19: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/19.jpg)
いずれにしてもお客様の
ビジネスに直結したコミュニケーション
手段として利用されている
近場の病院との情報共有研修医の育成のための会議本部+10拠点で定例会議
海外拠点との会議・・・・・
![Page 20: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/20.jpg)
エンタープライズでのコミュニケーションビジネス
↓お客様のビジネスを止めてはならない
↓
ここにもビジネスチャンスがある
エンタープライズ品質
![Page 21: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/21.jpg)
2.iOSアプリケーションの
継続的デリバリー
![Page 22: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/22.jpg)
iOS
![Page 23: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/23.jpg)
iOS Apps : 900,000Store Accounts : 575,000,000
2013年6月現在
![Page 24: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/24.jpg)
Apps will Automatically Updatein iOS7
〜常に最新版のアプリをユーザが利用可能〜
![Page 25: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/25.jpg)
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Objective-Cの開発者が急増
http://www.tiobe.com/content/paperinfo/tpci/index.html
![Page 26: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/26.jpg)
http://www.businessinsider.com.au/ios-is-the-platform-for-enterprises-2013-3
![Page 27: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/27.jpg)
http://www.businessinsider.com/apple-is-winning-the-mobile-enterprise-2012-7
![Page 28: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/28.jpg)
リーン・スタートアップによるライバルの増加
※ 大企業もやらないと死ぬhttp://thebln.com/wp-content/uploads/2011/09/Eric-Ries-The-Lean-Startup.jpg
![Page 29: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/29.jpg)
どこで戦うのか
![Page 30: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/30.jpg)
モバイルファースト×
クラウドファースト×
ビジネスモデル
![Page 31: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/31.jpg)
それはお客様の業務に
なくてはならないものになっているか
特にエンタープライズ市場ではこのような状態に早く出来るのかが鍵。そしてその状態を維持できるのか
![Page 32: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/32.jpg)
iOSアプリケーションの継続的デリバリー
〜エンタープライズ品質のiOSアプリケーションを目指して〜
![Page 33: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/33.jpg)
僕たちは価値のあるソフトウェアを早く継続的にデリバリーしお客様を満足させなくては
ならない
![Page 34: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/34.jpg)
僕たちは価値のあるソフトウェアを
早く継続的にデリバリーしお客様を満足させなくては
ならない
![Page 35: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/35.jpg)
iOSアプリはどのくらいのスピードでリリース可能なのか
![Page 36: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/36.jpg)
XCode iTunes Connect App Store
App Review
Ave:7daysPackageSubmit
最高で1ヶ月で約4回
1年間で約50回アップデートが可能
![Page 37: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/37.jpg)
(実際にリリースするかは置いておいて)
このくらい継続的にデリバリーが可能な仕組みを作らなければならない
![Page 38: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/38.jpg)
(実際にやるかやらないかは置いておいて)このくらい継続的にデリバリーが可能な仕組みを作らなければならない
Me
Me
Me
Me
ただ、2ヶ月半
App審査にかかり全く継続的にリリースできないケースもありますw
![Page 39: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/39.jpg)
★1.0.0
2013年 1 2 3 4 5 6 7 8 9 10 11 12
★1.0.1
★1.1.0
★1.1.1
★1.2.0
★1.3.0
★1.5.0
★2.0.0
★2.0.1
★2.1.0
★2.2.0
★2.3.0
RICOH UCS for iOSのリリース
(機能UP&不具合修正で)
1年間で12回のリリース
![Page 40: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/40.jpg)
リリースのリズムを作る
これが多いか少ないかは置いておいて
http://www.flickr.com/photos/odolphie/2397582359
![Page 41: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/41.jpg)
http://www.amazon.co.jp/gp/product/images/4048707876/ref=dp_image_text_0?ie=UTF8&n=465392&s=books
![Page 42: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/42.jpg)
ビジネスの主導権を得るために
http://www.allaboutagile.com/7-reasons-why-continuous-delivery-needs-to-be-a-business-initiative/
![Page 43: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/43.jpg)
ユーザを早期に獲得する競争力あるプロダクトを早く実現する
http://www.flickr.com/photos/56155476@N08/6660135637
![Page 44: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/44.jpg)
ビルド・デプロイ・テスト・リリース
![Page 45: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/45.jpg)
ビルド デプロイ テスト リリース
小さく繰り返す
リリースまでのパイプライン
コードのコミットをしてからミスなく自動的に頻繁にリリースしたい
お客様に価値を継続的にデリバリーする唯一の方法
自動化
![Page 46: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/46.jpg)
要するにとことん自動化する
(⚠App申請だけは手動)
http://morguefile.com/archive/display/4737http://cdn.morguefile.com/imageData/public/files/m/mconnors/preview/fldr_2003_06_18/file0002046882848.jpg
![Page 47: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/47.jpg)
•軌道修正
•不具合を減らす
•お客様、セールスの改善要求
•突然のApp審査ルール変更!!
小さく・早く・簡単にリリース
![Page 48: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/48.jpg)
いつパイプラインを作るか
![Page 49: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/49.jpg)
★1.0.0
2012 2013 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12
★1.0.1
★1.1.0
★1.1.1
★1.2.0
★1.3.0
★1.5.0
★2.0.0
★2.0.1
★2.1.0
★2.2.0
★2.3.0
●プロジェクト
開始
プロジェクト開始時にものがなくても仕組みを作る
そうすれば1stリリースまでプロセスがテストされ
その後のアップデートのリズムができる
![Page 50: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/50.jpg)
僕たちははじめにリリースまでのパイプラインを作った
http://www.flickr.com/photos/49547334@N02/4725090871
![Page 51: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/51.jpg)
リリースビルド
単体テスト
結合テスト
受け入れビルド
Runon
Device
受け入れテスト
リリース
Feature概要
Featureシナリオ/ステップ
Featureテストコード
Developer
Test Engineer
設計 実装 開発者テスト
価値のあるソフトウェアを作る
〜協調性を重視する〜
早く継続的にデリバリー〜完全自動化する〜
![Page 52: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/52.jpg)
僕たちは
価値のあるソフトウェアを早く継続的にデリバリーしお客様を満足させなくては
ならない
![Page 53: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/53.jpg)
リリースビルド
単体テスト
結合テスト
受け入れビルド
Runon
Device
受け入れテスト
リリース
Feature概要
Featureシナリオ/ステップ
Featureテストコード
Developer
Test Engineer
設計 実装 開発者テスト
![Page 54: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/54.jpg)
Developer Test Engineer
Leader
Team
製品の品質について責任を持つお客様に提供する価値を考える受け入れテストを自動化する
コードの品質について責任を持つお客様に提供する価値の高い
ものから開発する
![Page 55: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/55.jpg)
Developer
Test Engineer
協力する
価値のあるソフトウェアを作る
〜協調性を重視する〜
役割は違うけれども
のは同じ
![Page 56: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/56.jpg)
リリースビルド
単体テスト
結合テスト
受け入れビルド
Runon
Device
受け入れテスト
リリース
Feature概要
Featureシナリオ/ステップ
Featureテストコード
Developer
Test Engineer
設計 実装 開発者テスト
![Page 57: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/57.jpg)
僕たちは
価値のあるソフトウェアを早く継続的にデリバリーしお客様を満足させなくては
ならない
これがFeature
![Page 58: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/58.jpg)
それはお客様の業務に
なくてはならないものになっているか
特にエンタープライズ市場ではこのような状態に早く出来るのかが鍵。そしてその状態を維持できるのか
再び...
![Page 59: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/59.jpg)
僕たちは
最小限の機能で市場価値を生み出せるのか
いまやるべきなのか後でもいいのか
![Page 60: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/60.jpg)
MMFMinimum Marketable Feature
![Page 61: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/61.jpg)
Feature1
Feature2
Feature3
Feature4
Feature5
Feature6
Feature7
Feature8
これがMMF
お客様に提供する価値の優先度
これだけで市場価値を生むことが出来るのか
![Page 62: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/62.jpg)
RICOH UCS for iOSのMMFモバイルユーザとして、
開催中のP3000 の会議に途中参加して映像と音声で相手とコミュニケーションしたい、それは会議の開催場所でなくても参加したいからだ
最初に書いたラフスケッチ
![Page 63: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/63.jpg)
お客様に聞いてみた
結果:好感触
![Page 64: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/64.jpg)
ここでダメならそこで終了
Feature1
Feature2
Feature3
Feature4
Feature5
Feature6
Feature7
Feature8
お客様に提供する価値の優先度
実装の優先度 < 顧客に提供する優先度
どこで1st release
するかはビジネス判断
![Page 65: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/65.jpg)
小さく作って
![Page 66: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/66.jpg)
大きく育てる
![Page 67: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/67.jpg)
リリースビルド
単体テスト
結合テスト
受け入れビルド
Runon
Device
受け入れテスト
リリース
Feature概要
Featureシナリオ/ステップ
Featureテストコード
Developer
Test Engineer
設計 実装 開発者テスト
![Page 68: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/68.jpg)
Featureシナリオ/ステップ
Featureテストコード
はお客様視点を持って仕様を作りながらそれを受け入れるテストコードの自動化をするTest Engineer
一つのFeatureに対するお客様に価値を与えるシナリオを作る
それが実際に自動で動くコードを書く
繰り返しながら改善する
![Page 69: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/69.jpg)
Background: Given the following contacts exist: | device | another_device | subscription | ask | | ios1 | ios2 | both | | And "ios1" go to contactlist view And "ios2" go to contactlist view
Scenario: "ios1" can join conference Given "ios3" go to contactlist view And the following accounts start conference: | device | | ios2 | | ios3 | Then "ios1" should see the presence of "meeting" within row of "ios2" When "ios1" touch the row of "ios2" Then "ios1" should be on video view And "ios1" should see 3 participants And "ios1" should not see the private meeting image
iOS1とiOS2の2台のデバイスが
コンタクトリスト画面にいる
iOS3のデバイスがコンタクトリスト画面
にいてiOS2とiOS3が会議を
始める
iOS1からiOS2は会議中にみえ
iOS1がiOS2をタッチすると会議に参加する
Featureシナリオ/ステップ
![Page 70: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/70.jpg)
自然言語は非開発者でも読めるので仕様書にもなって一石二鳥
どういう条件で、どういう時に、どうなるのか
https://speakerdeck.com/phodgson/beyond-uiautomation
![Page 71: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/71.jpg)
Stepの部品化素人でもかけるテストを目指して
組み合わせるだけで新たなシナリオに
![Page 72: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/72.jpg)
⚠ただし、iOS7だと実機では動かない
http://www.testingwithfrank.com/
![Page 73: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/73.jpg)
FrankとCalabashを両方動かして良いとこどり
https://rubygems.org/gems/calabash-cucumber
![Page 74: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/74.jpg)
⚠当日は
ムービーを流しました
![Page 75: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/75.jpg)
Feature概要
Featureシナリオ/ステップ
Featureテストコード
Developer
Test Engineer
設計 実装 開発者テスト
KiwiGHUnitOCMock
etc
作りながら仕様を決める
Featureテストコードでは実現できない内部ロジックのテストをする
一つのFeatureを実現する設計をして、シナリオ/ステップを満たす実装をする
![Page 76: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/76.jpg)
仕様はあくまで仮説であってゴールするときに決まる
![Page 77: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/77.jpg)
最小単位のFeatureを動かしながら価値を確かめる
コードに問題があれば都度発見される
![Page 78: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/78.jpg)
リリースビルド
単体テスト
結合テスト
受け入れビルド
Runon
Device
受け入れテスト
リリース
Feature概要
Featureシナリオ/ステップ
Featureテストコード
Developer
Test Engineer
設計 実装 開発者テスト
![Page 79: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/79.jpg)
Featureテストコード
開発者テスト
リリースビルド
受け入れビルド
一つのFeature一つのBug
毎にPull Request
人の世界
機械の世界
PUSHをトリガにコードをpull
そして継続的デリバリーへ
Developer
Test Engineer
何か問題があれば通知
![Page 80: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/80.jpg)
git pluginxcode plugin
最低限のビルドはこれだけでいける
※ 使えるプラグインは少ないのでこれ以上は自分でスクリプトを作る 単体テスト、カバレッジ、レポートファイル変換等
![Page 81: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/81.jpg)
リリースビルド
単体テスト
結合テスト
受け入れビルド
Runon
Device
受け入れテスト
リリース
Feature概要
Featureシナリオ/ステップ
Featureテストコード
設計 実装 開発者テスト
Developer
Test Engineer
製品品質を確保する
![Page 82: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/82.jpg)
ビルドに成功すると自動でipaファイル作成そして自動で複数のデバイスに自動でインストール
fruitstrapで各端末のidentifierを指定してインストールor
instruments
受け入れビルド
Runon
Device
ビルドサーバ
![Page 83: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/83.jpg)
×
Devices iPad, iPhone, iPod Touch
OS×
iOS6, iOS7
Network Proxy, Low Bandwidth, etc
異なるiOSデバイス、異なるOS、異なるネットワーク環境で受け入れテストを常に実行
※ お客様の様々なネットワーク環境を想定する
ここまでやってエンタープライズ品質
![Page 84: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/84.jpg)
ビルドサーバ
iPhone
iPod Touch
iPad
iOS6 & 7
![Page 85: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/85.jpg)
⚠当日は
ムービーを流しました
![Page 86: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/86.jpg)
iOS Simulator Limitation⚠
シミュレータでは動くけど、実機だとxxxは防ぐ
![Page 87: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/87.jpg)
リリースビルド
単体テスト
結合テスト
受け入れビルド
Runon
Device
受け入れテスト
リリース
Feature概要
Featureシナリオ/ステップ
Featureテストコード
Developer
Test Engineer
設計 実装 開発者テスト
コード品質を確保する
![Page 88: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/88.jpg)
テスト件数コード行数カバレッジ
警告数etc
コードの内部状態を徹底的に可視化
![Page 89: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/89.jpg)
リリースビルド
単体テスト
結合テスト
受け入れビルド
Runon
Device
受け入れテスト
リリース
Feature概要
Featureシナリオ/ステップ
Featureテストコード
Developer
Test Engineer
設計 実装 開発者テスト
価値のあるソフトウェアを作る
〜協調性を重視する〜
早く継続的にデリバリー〜完全自動化する〜
これを繰り返す
![Page 90: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/90.jpg)
0.1リリース
0.2リリース
0.3リリース
0.4リリース
![Page 91: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/91.jpg)
そのリズムが継続的なデリバリーを可能にする
http://www.flickr.com/photos/seanhobson/4272482225
![Page 92: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/92.jpg)
★1.0.0
2012 2013 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12
★1.0.1
★1.1.0
★1.1.1
★1.2.0
★1.3.0
★1.5.0
★2.0.0
★2.0.1
★2.1.0
★2.2.0
★2.3.0
●プロジェクト
開始
先をみた開発ができている
![Page 93: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/93.jpg)
iOSアプリケーションの継続的デリバリー は一日にしてならず
![Page 94: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/94.jpg)
まとめ
![Page 95: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/95.jpg)
僕たちは価値のあるソフトウェアを早く継続的にデリバリーしお客様を満足させなくては
ならない
![Page 96: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/96.jpg)
リリースのリズムを作る
http://www.flickr.com/photos/odolphie/2397582359
![Page 97: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/97.jpg)
ユーザを早期に獲得する競争力あるプロダクトを早く実現する
http://www.flickr.com/photos/56155476@N08/6660135637
![Page 98: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/98.jpg)
要するにとことん自動化する
(⚠App申請だけは手動)
http://morguefile.com/archive/display/4737http://cdn.morguefile.com/imageData/public/files/m/mconnors/preview/fldr_2003_06_18/file0002046882848.jpg
![Page 99: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/99.jpg)
僕たちははじめにリリースまでのパイプラインを作った
http://www.flickr.com/photos/49547334@N02/4725090871
![Page 100: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/100.jpg)
リリースビルド
単体テスト
結合テスト
受け入れビルド
Runon
Device
受け入れテスト
リリース
Feature概要
Featureシナリオ/ステップ
Featureテストコード
Developer
Test Engineer
設計 実装 開発者テスト
価値のあるソフトウェアを作る
〜協調性を重視する〜
早く継続的にデリバリー〜完全自動化する〜
![Page 101: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/101.jpg)
Developer
Test Engineer
協力する
価値のあるソフトウェアを作る
〜協調性を重視する〜
役割は違うけれども
のは同じ
![Page 102: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/102.jpg)
MMFMinimum Marketable Feature
![Page 103: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/103.jpg)
最小単位のFeatureを動かしながら価値を確かめる
コードに問題があれば都度発見される
![Page 104: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/104.jpg)
×
Devices iPad, iPhone, iPod Touch
OS×
iOS6, iOS7
Network Proxy, Low Bandwidth, etc
異なるiOSデバイス、異なるOS、異なるネットワーク環境で受け入れテストを常に実行
※ お客様の様々なネットワーク環境を想定する
ここまでやってエンタープライズ品質
![Page 105: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/105.jpg)
そのリズムが継続的なデリバリーを可能にする
http://www.flickr.com/photos/seanhobson/4272482225
![Page 106: iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜](https://reader038.vdocuments.site/reader038/viewer/2022102602/5565fae2d8b42a2a4d8b4a2a/html5/thumbnails/106.jpg)
梅原 直樹iOS EDC 2013: iOS Enterprise & Developers Conference 7/11/2013
Naoki UMEHARA
iOSアプリケーションの継続的デリバリー
〜エンタープライズ品質のiOSアプリケーションを目指して〜ご清聴ありがとうございました