Slide 1

Slide 1 text

を使った継続的アプリ開発を 支える パイプライン

Slide 2

Slide 2 text

自己紹介 ● ○ の研究開発部門で 開発や やる人 ○ デジタル技術を使った研究開発やプロジェクト支援 ○ 認定スクラムマスター、認定プロダクトオーナー、 ● フロントエンド・モバイルアプリ開発のリードエンジニア ○ 、 、 、 、 など ○ 歴は 年半くらい ○ 以前は 、 でアーキテクチャ設計、 設計、 業など ○ パイプライン職人としてリリースサイクル短縮や開発の 改善が得意

Slide 3

Slide 3 text

今どの のメジャーバージョン使ってますか? 以上 以前

Slide 4

Slide 4 text

どのバージョンからバージョンアップしましたか? 以上 以前 バージョンアップは未経験

Slide 5

Slide 5 text

アンケート結果

Slide 6

Slide 6 text

のリリース頻度と新 のリリース頻度 ● の のバージョンアップは ヶ月に 回のペース ● 新 対応時にはバージョンアップ対応は必須

Slide 7

Slide 7 text

バージョンアップ対応は作業が多く心理的負担もかかる ● バージョンアップ対応は規模が大きいほどやることが増える ○ アップデートのリリースノートを確認する ○ 開発環境の をバージョンアップし依存ソフトウェアを更新する ○ 、プラグインのバージョンアップに伴う対応・改修を行う ○ ・ それぞれで網羅的に動作確認を行い不具合を改修する ○ ・ それぞれでリリース資材を作成してストア申請を行う ● バージョンアップ時の作業漏れで不具合発生のリスクがある ○ テストしきれなくてリリース後に不具合が発生するかも ○ 無理にあげなくてもいいなら後回しに

Slide 8

Slide 8 text

でバージョンアップの作業コスト・心理的負担を下げる ● 継続的インテグレーション( 、 ) ○ 変更を定期的に結合し自動ビルド・テストで早期に不具合を検知すること ○ ビルド、静的解析、単体テスト、 テストを自動化する ○ 開発者への変更に対するフィードバックサイクルのリードタイムを短縮する ● 継続的デリバリー( 、 ) ○ アプリケーションをいつでもデプロイ・リリース可能な状態に保つこと ○ 、 ファイル作成やテスト端末への配布・ストア申請を自動化する ○ 実機テストやストア申請へのリリースサイクルのリードタイムを短縮する

Slide 9

Slide 9 text

における 継続的インテグレーション

Slide 10

Slide 10 text

で利用できる静的解析・自動テストの仕組み ● を使った静的解析 ○ ● ○ ● によるコンポーネントテスト ○ ● による テスト ○

Slide 11

Slide 11 text

における パイプラインの活用例 ● 発行時に実行して ブランチをクリーンに保つ ● 日時で両 の画面遷移や画面操作の テストを実行して不具合を検査する

Slide 12

Slide 12 text

における 継続的デリバリー

Slide 13

Slide 13 text

における 、 作成の流れ ● ファイル作成の流れ ○ ○ ○ ● ファイル作成の流れ ○ ○

Slide 14

Slide 14 text

における パイプラインの活用例 ● 契機で 、 ファイルを作成してテスト端末へ配布する ● ブランチへのマージ契機で へ連携する

Slide 15

Slide 15 text

パイプラインの構築・運用のポイント パイプラインの設定や実行スクリプトもバージョン管理に含める 開発環境・ 環境に関わらずどの環境でも動くようにしておく パイプラインの実行契機を開発プロセスと合わせて設計する パイプラインもプロダクトの一部としてメンテナンスする

Slide 16

Slide 16 text

まとめ ● の バージョンのリリース頻度は ヶ月に 回 ● のバージョンアップ対応はそれなりに負担がかかる ● パイプラインを構築することで作業コスト・心理的負担が下げられる ● パイプラインはプロダクトと一心一体だと思って運用していこう

Slide 17

Slide 17 text

参考資料 ● を使った ・ アプリ開発の パイプラインを構築する(前半) ○ ● を使った ・ アプリ開発の パイプラインを構築する(後半) ○ ● を使った ・ アプリ開発の パイプラインを構築する ○ ● を使って内部向けに継続的にネイティブアプリを配信する ○