Submit Search
Upload
AbemaTV モバイルアプリの開発体制と開発プロセスの話
•
Download as PPTX, PDF
•
12 likes
•
8,276 views
Yuji Hato
Follow
AbemaTV DEVELOPER CONFERENCE 2017
Read less
Read more
Software
Report
Share
Report
Share
1 of 98
Download now
Recommended
オーバーエンジニアリングって何? #devsumi #devsumiA
オーバーエンジニアリングって何? #devsumi #devsumiA
Ore Product
Virtual Machine Scale Sets 概要
Virtual Machine Scale Sets 概要
Yui Ashikaga
Confluence と SharePoint 何が違う?
Confluence と SharePoint 何が違う?
アトラシアン株式会社
タウンワークアプリの案件開発を支えるオフショアチームの成り立ちとこれから / iOSDC Japan 2021
タウンワークアプリの案件開発を支えるオフショアチームの成り立ちとこれから / iOSDC Japan 2021
Ataru Osaka
Introduction of Unity ML-Agents
Introduction of Unity ML-Agents
Tomohiro Namba
de:code 2019 Azure IoT Hub クラウド側の最新機能:デモも交えてご紹介
de:code 2019 Azure IoT Hub クラウド側の最新機能:デモも交えてご紹介
Masaru Takahashi
Jmespathをもっと広めたい
Jmespathをもっと広めたい
Tetsunori Nishizawa
JIRA / Confluence の必須プラグインはこれだ
JIRA / Confluence の必須プラグインはこれだ
Narichika Kajihara
Recommended
オーバーエンジニアリングって何? #devsumi #devsumiA
オーバーエンジニアリングって何? #devsumi #devsumiA
Ore Product
Virtual Machine Scale Sets 概要
Virtual Machine Scale Sets 概要
Yui Ashikaga
Confluence と SharePoint 何が違う?
Confluence と SharePoint 何が違う?
アトラシアン株式会社
タウンワークアプリの案件開発を支えるオフショアチームの成り立ちとこれから / iOSDC Japan 2021
タウンワークアプリの案件開発を支えるオフショアチームの成り立ちとこれから / iOSDC Japan 2021
Ataru Osaka
Introduction of Unity ML-Agents
Introduction of Unity ML-Agents
Tomohiro Namba
de:code 2019 Azure IoT Hub クラウド側の最新機能:デモも交えてご紹介
de:code 2019 Azure IoT Hub クラウド側の最新機能:デモも交えてご紹介
Masaru Takahashi
Jmespathをもっと広めたい
Jmespathをもっと広めたい
Tetsunori Nishizawa
JIRA / Confluence の必須プラグインはこれだ
JIRA / Confluence の必須プラグインはこれだ
Narichika Kajihara
「情報」を「書く」ということ(仮) #RedmineJapan
「情報」を「書く」ということ(仮) #RedmineJapan
Kazuhito Miura
Provisioning & Deploy on AWS
Provisioning & Deploy on AWS
Amazon Web Services Japan
SpringBootTest入門
SpringBootTest入門
Yahoo!デベロッパーネットワーク
Swiftで、Webサーバにデータを送信・登録しよう!
Swiftで、Webサーバにデータを送信・登録しよう!
Kanako Kobayashi
ゼロから始めるサブスク生活
ゼロから始めるサブスク生活
KLab Inc. / Tech
ユーザーストーリー駆動の開発で「世界を変える」
ユーザーストーリー駆動の開発で「世界を変える」
shoji_yamada
Appium 2.0 ではじめるモバイルアプリテスト
Appium 2.0 ではじめるモバイルアプリテスト
Masayuki Wakizaka
大企業アジャイルの勘所 #devlovex #devlovexd
大企業アジャイルの勘所 #devlovex #devlovexd
Itsuki Kuroda
剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術
剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術
Satoshi Yamafuji
クラウドでも非機能要求グレードは必要だよね
クラウドでも非機能要求グレードは必要だよね
YoshioSawada
インセプションデッキのひな形(PPT形式:ダウンロード用)
インセプションデッキのひな形(PPT形式:ダウンロード用)
A AOKI
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
Developers Summit
Windowsフォームで大丈夫か?一番良いのを頼む。
Windowsフォームで大丈夫か?一番良いのを頼む。
Yuya Yamaki
現場からみた Azure リファレンスアーキテクチャ答え合わせ
現場からみた Azure リファレンスアーキテクチャ答え合わせ
Kuniteru Asami
MonotaROの基幹システムがこの先生きのこるには 2015.03.20 DevLOVE関西 事業会社の現場を知ろう~モノタロウ編~
MonotaROの基幹システムがこの先生きのこるには 2015.03.20 DevLOVE関西 事業会社の現場を知ろう~モノタロウ編~
株式会社MonotaRO Tech Team
Unityでオンラインゲーム作った話
Unityでオンラインゲーム作った話
torisoup
UIデザインとUXの超基礎「UI Design & UX for ENGINEER」
UIデザインとUXの超基礎「UI Design & UX for ENGINEER」
Kazuki Yamashita
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
Yoshiki Hayama
PHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったこと
gree_tech
逆境から新規事業をスタートアップする「仮説検証型アジャイル開発」の実践
逆境から新規事業をスタートアップする「仮説検証型アジャイル開発」の実践
toshihiro ichitani
AbemaTV デザインのBefore & After
AbemaTV デザインのBefore & After
Shunsuke Matsumoto
最新版Hadoopクラスタを運用して得られたもの
最新版Hadoopクラスタを運用して得られたもの
cyberagent
More Related Content
What's hot
「情報」を「書く」ということ(仮) #RedmineJapan
「情報」を「書く」ということ(仮) #RedmineJapan
Kazuhito Miura
Provisioning & Deploy on AWS
Provisioning & Deploy on AWS
Amazon Web Services Japan
SpringBootTest入門
SpringBootTest入門
Yahoo!デベロッパーネットワーク
Swiftで、Webサーバにデータを送信・登録しよう!
Swiftで、Webサーバにデータを送信・登録しよう!
Kanako Kobayashi
ゼロから始めるサブスク生活
ゼロから始めるサブスク生活
KLab Inc. / Tech
ユーザーストーリー駆動の開発で「世界を変える」
ユーザーストーリー駆動の開発で「世界を変える」
shoji_yamada
Appium 2.0 ではじめるモバイルアプリテスト
Appium 2.0 ではじめるモバイルアプリテスト
Masayuki Wakizaka
大企業アジャイルの勘所 #devlovex #devlovexd
大企業アジャイルの勘所 #devlovex #devlovexd
Itsuki Kuroda
剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術
剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術
Satoshi Yamafuji
クラウドでも非機能要求グレードは必要だよね
クラウドでも非機能要求グレードは必要だよね
YoshioSawada
インセプションデッキのひな形(PPT形式:ダウンロード用)
インセプションデッキのひな形(PPT形式:ダウンロード用)
A AOKI
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
Developers Summit
Windowsフォームで大丈夫か?一番良いのを頼む。
Windowsフォームで大丈夫か?一番良いのを頼む。
Yuya Yamaki
現場からみた Azure リファレンスアーキテクチャ答え合わせ
現場からみた Azure リファレンスアーキテクチャ答え合わせ
Kuniteru Asami
MonotaROの基幹システムがこの先生きのこるには 2015.03.20 DevLOVE関西 事業会社の現場を知ろう~モノタロウ編~
MonotaROの基幹システムがこの先生きのこるには 2015.03.20 DevLOVE関西 事業会社の現場を知ろう~モノタロウ編~
株式会社MonotaRO Tech Team
Unityでオンラインゲーム作った話
Unityでオンラインゲーム作った話
torisoup
UIデザインとUXの超基礎「UI Design & UX for ENGINEER」
UIデザインとUXの超基礎「UI Design & UX for ENGINEER」
Kazuki Yamashita
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
Yoshiki Hayama
PHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったこと
gree_tech
逆境から新規事業をスタートアップする「仮説検証型アジャイル開発」の実践
逆境から新規事業をスタートアップする「仮説検証型アジャイル開発」の実践
toshihiro ichitani
What's hot
(20)
「情報」を「書く」ということ(仮) #RedmineJapan
「情報」を「書く」ということ(仮) #RedmineJapan
Provisioning & Deploy on AWS
Provisioning & Deploy on AWS
SpringBootTest入門
SpringBootTest入門
Swiftで、Webサーバにデータを送信・登録しよう!
Swiftで、Webサーバにデータを送信・登録しよう!
ゼロから始めるサブスク生活
ゼロから始めるサブスク生活
ユーザーストーリー駆動の開発で「世界を変える」
ユーザーストーリー駆動の開発で「世界を変える」
Appium 2.0 ではじめるモバイルアプリテスト
Appium 2.0 ではじめるモバイルアプリテスト
大企業アジャイルの勘所 #devlovex #devlovexd
大企業アジャイルの勘所 #devlovex #devlovexd
剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術
剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術
クラウドでも非機能要求グレードは必要だよね
クラウドでも非機能要求グレードは必要だよね
インセプションデッキのひな形(PPT形式:ダウンロード用)
インセプションデッキのひな形(PPT形式:ダウンロード用)
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
Windowsフォームで大丈夫か?一番良いのを頼む。
Windowsフォームで大丈夫か?一番良いのを頼む。
現場からみた Azure リファレンスアーキテクチャ答え合わせ
現場からみた Azure リファレンスアーキテクチャ答え合わせ
MonotaROの基幹システムがこの先生きのこるには 2015.03.20 DevLOVE関西 事業会社の現場を知ろう~モノタロウ編~
MonotaROの基幹システムがこの先生きのこるには 2015.03.20 DevLOVE関西 事業会社の現場を知ろう~モノタロウ編~
Unityでオンラインゲーム作った話
Unityでオンラインゲーム作った話
UIデザインとUXの超基礎「UI Design & UX for ENGINEER」
UIデザインとUXの超基礎「UI Design & UX for ENGINEER」
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
PHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったこと
逆境から新規事業をスタートアップする「仮説検証型アジャイル開発」の実践
逆境から新規事業をスタートアップする「仮説検証型アジャイル開発」の実践
Viewers also liked
AbemaTV デザインのBefore & After
AbemaTV デザインのBefore & After
Shunsuke Matsumoto
最新版Hadoopクラスタを運用して得られたもの
最新版Hadoopクラスタを運用して得られたもの
cyberagent
アドテクスタジオのデータ分析基盤について
アドテクスタジオのデータ分析基盤について
kazuhiro ito
マッチングサービスにおけるKPIの話
マッチングサービスにおけるKPIの話
cyberagent
HLSについて知っていることを話します
HLSについて知っていることを話します
Moriyoshi Koizumi
Amebaにおけるレコメンデーションシステムの紹介
Amebaにおけるレコメンデーションシステムの紹介
cyberagent
こわくない Git
こわくない Git
Kota Saito
Viewers also liked
(7)
AbemaTV デザインのBefore & After
AbemaTV デザインのBefore & After
最新版Hadoopクラスタを運用して得られたもの
最新版Hadoopクラスタを運用して得られたもの
アドテクスタジオのデータ分析基盤について
アドテクスタジオのデータ分析基盤について
マッチングサービスにおけるKPIの話
マッチングサービスにおけるKPIの話
HLSについて知っていることを話します
HLSについて知っていることを話します
Amebaにおけるレコメンデーションシステムの紹介
Amebaにおけるレコメンデーションシステムの紹介
こわくない Git
こわくない Git
Similar to AbemaTV モバイルアプリの開発体制と開発プロセスの話
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
Takashi Okawa
イマドキのソフトウェア開発プロジェクトの流れ
イマドキのソフトウェア開発プロジェクトの流れ
Takashi Takebayashi
そろそろレガシーな.Net開発をやめなイカ?
そろそろレガシーな.Net開発をやめなイカ?
Yuta Matsumura
2017年のiOSアプリ開発におけるCI事情
2017年のiOSアプリ開発におけるCI事情
Toshiyuki Hirata
2021 01-30 Visual Studio 2019 知っているか!?この機能 in BuriKaigi2021
2021 01-30 Visual Studio 2019 知っているか!?この機能 in BuriKaigi2021
Hiroyuki Mori
SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜
SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜
Daiki Kawanuma
Dangerでpull requestレビューの指摘事項を減らす
Dangerでpull requestレビューの指摘事項を減らす
Shunsuke Maeda
Cloud Foundry Summit 2017 Recap
Cloud Foundry Summit 2017 Recap
Shinya Sasaki
DevOpsプラクティスをAuth0環境に適応する方法
DevOpsプラクティスをAuth0環境に適応する方法
Hisashi Yamaguchi
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
Issei Hiraoka
開発ツール「Wijmo」と「SpreadJS」からみる業務アプリケーションの変遷とこれから
開発ツール「Wijmo」と「SpreadJS」からみる業務アプリケーションの変遷とこれから
Developer Solutions事業部 メシウス株式会社 (旧グレープシティ株式会社)
Line Creators Studio Android With Kotlin
Line Creators Studio Android With Kotlin
LINE Corporation
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
DIVE INTO CODE Corp.
自社サービスkintoneをふんだんに活用したサイボウズの開発フロー
自社サービスkintoneをふんだんに活用したサイボウズの開発フロー
Yuki Okada
マイクロソフトの AI プラットフォーム & Cognitive Services 概要 ~ Ignite 2020 Recap
マイクロソフトの AI プラットフォーム & Cognitive Services 概要 ~ Ignite 2020 Recap
Ayako Omori
[POST.Dev Japan] VS Code で試みる開発体験の向上
[POST.Dev Japan] VS Code で試みる開発体験の向上
Tomomi Imura
iQONの開発手法 at iQONエンジニアセミナー
iQONの開発手法 at iQONエンジニアセミナー
Imamura Masayuki
Web制作者がandriodのcddを読んでみた version1.1
Web制作者がandriodのcddを読んでみた version1.1
Masakazu Muraoka
ビットバンクでのネイティブアプリケーション開発におけるCI_CD環境
ビットバンクでのネイティブアプリケーション開発におけるCI_CD環境
bitbank, Inc. Tokyo, Japan
SQuBOKの変遷 (SQuBOK V3発行記念イベント)
SQuBOKの変遷 (SQuBOK V3発行記念イベント)
Keizo Tatsumi
Similar to AbemaTV モバイルアプリの開発体制と開発プロセスの話
(20)
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
イマドキのソフトウェア開発プロジェクトの流れ
イマドキのソフトウェア開発プロジェクトの流れ
そろそろレガシーな.Net開発をやめなイカ?
そろそろレガシーな.Net開発をやめなイカ?
2017年のiOSアプリ開発におけるCI事情
2017年のiOSアプリ開発におけるCI事情
2021 01-30 Visual Studio 2019 知っているか!?この機能 in BuriKaigi2021
2021 01-30 Visual Studio 2019 知っているか!?この機能 in BuriKaigi2021
SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜
SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜
Dangerでpull requestレビューの指摘事項を減らす
Dangerでpull requestレビューの指摘事項を減らす
Cloud Foundry Summit 2017 Recap
Cloud Foundry Summit 2017 Recap
DevOpsプラクティスをAuth0環境に適応する方法
DevOpsプラクティスをAuth0環境に適応する方法
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
開発ツール「Wijmo」と「SpreadJS」からみる業務アプリケーションの変遷とこれから
開発ツール「Wijmo」と「SpreadJS」からみる業務アプリケーションの変遷とこれから
Line Creators Studio Android With Kotlin
Line Creators Studio Android With Kotlin
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
自社サービスkintoneをふんだんに活用したサイボウズの開発フロー
自社サービスkintoneをふんだんに活用したサイボウズの開発フロー
マイクロソフトの AI プラットフォーム & Cognitive Services 概要 ~ Ignite 2020 Recap
マイクロソフトの AI プラットフォーム & Cognitive Services 概要 ~ Ignite 2020 Recap
[POST.Dev Japan] VS Code で試みる開発体験の向上
[POST.Dev Japan] VS Code で試みる開発体験の向上
iQONの開発手法 at iQONエンジニアセミナー
iQONの開発手法 at iQONエンジニアセミナー
Web制作者がandriodのcddを読んでみた version1.1
Web制作者がandriodのcddを読んでみた version1.1
ビットバンクでのネイティブアプリケーション開発におけるCI_CD環境
ビットバンクでのネイティブアプリケーション開発におけるCI_CD環境
SQuBOKの変遷 (SQuBOK V3発行記念イベント)
SQuBOKの変遷 (SQuBOK V3発行記念イベント)
More from Yuji Hato
継続的な開発スタイル 「AbemaTV iOSアプリを週一でリリースしている話」
継続的な開発スタイル 「AbemaTV iOSアプリを週一でリリースしている話」
Yuji Hato
Adaptive UI - 解像度の異なるデバイスや画面の向きに対応する 最適なレイアウトへ -
Adaptive UI - 解像度の異なるデバイスや画面の向きに対応する 最適なレイアウトへ -
Yuji Hato
iOSDC 2018 動画をなめらかに動かす技術
iOSDC 2018 動画をなめらかに動かす技術
Yuji Hato
5分で学ぶ差分更新とRxDataSources
5分で学ぶ差分更新とRxDataSources
Yuji Hato
Apple TV tvOS入門 Iosdc2017
Apple TV tvOS入門 Iosdc2017
Yuji Hato
AbemaTV on tvOS
AbemaTV on tvOS
Yuji Hato
Flux with RxSwift
Flux with RxSwift
Yuji Hato
CarPlayの対応方法と日本での現状
CarPlayの対応方法と日本での現状
Yuji Hato
AWA with Realm
AWA with Realm
Yuji Hato
More from Yuji Hato
(9)
継続的な開発スタイル 「AbemaTV iOSアプリを週一でリリースしている話」
継続的な開発スタイル 「AbemaTV iOSアプリを週一でリリースしている話」
Adaptive UI - 解像度の異なるデバイスや画面の向きに対応する 最適なレイアウトへ -
Adaptive UI - 解像度の異なるデバイスや画面の向きに対応する 最適なレイアウトへ -
iOSDC 2018 動画をなめらかに動かす技術
iOSDC 2018 動画をなめらかに動かす技術
5分で学ぶ差分更新とRxDataSources
5分で学ぶ差分更新とRxDataSources
Apple TV tvOS入門 Iosdc2017
Apple TV tvOS入門 Iosdc2017
AbemaTV on tvOS
AbemaTV on tvOS
Flux with RxSwift
Flux with RxSwift
CarPlayの対応方法と日本での現状
CarPlayの対応方法と日本での現状
AWA with Realm
AWA with Realm
AbemaTV モバイルアプリの開発体制と開発プロセスの話
1.
AbemaTV モバイルアプリの開発体制と 開発プロセスの話 Yuji Hato AbemaTV DEVELOPER
CONFERENCE 2017
2.
Yuji Hato CyberAgent, Inc.
/ AbemaTV, Inc. dekatotoro @dekatotoro Contributed services About me
3.
Agenda ざっくりAbemaTV iOSチームってど うやって開発しているの?
4.
開発体制
5.
AbemaTV 開発局 50人〜 開発体制
6.
開発体制 Server Web iOS
AndroidDesignDirector QA Board
7.
開発体制 Server Web iOS
AndroidDesignDirector QA Board
8.
開発体制 iOS AndroidDirector ビデオ グロース 本質改善 テレビデバイス その他案件 A,
B, C..
9.
iOSチーム
10.
iOSチーム 10名
11.
iOSチーム 10名
12.
iOSチーム ビデオ グロース 本質改善
テレビデバイス その他案件 A, B, C..
13.
AbemaTV 対応デバイス PC iPhone /
iPad Android / タブレット Apple TV AndroidTV / Amazon Fire TV Google Cast
14.
AbemaTV 対応デバイス PC iPhone /
iPad Android / タブレット Apple TV AndroidTV / Amazon Fire TV Google Cast iOSチーム
15.
Codebase
16.
Codebase ios … iOSアプリ tvos
… tvOSアプリ api … API周りのモジュール protobuf-swift … proto swift cmdshelf-ios … script郡 etc.. (mock, tool, sample) repositories
17.
ios Codebase tvos api
18.
ios Codebase tvos api
19.
ios Codebase
20.
ios Codebase
21.
tvos Codebase
22.
tvos Codebase
23.
api Codebase
24.
api Codebase
25.
毎日の大量のコードの変 更がされている
26.
開発フロー
27.
開発フロー スプリント スプリント スプリント 2週間 スクラム開発
28.
開発 QA 1週間 1週間 開発 開発
開発 QA QA 申請 申請 申請申請 QA 開発フロー
29.
開発 QA 1週間 1週間 開発 開発
開発 QA QA 申請 申請 申請申請 QA 開発フロー
30.
開発とQA期間の重複がつらい 開発フロー
31.
改善 開発フロー
32.
QA 1週間 1週間 QA QA 申請
申請 申請申請 QA 開発 開発 開発 開発フロー
33.
QA 1週間 1週間 QA QA 申請
申請 申請申請 QA 開発 開発 開発 長い開発 開発フロー
34.
QA 1週間 1週間 QA QA 申請
申請 申請申請 QA 開発 開発 開発 開発フロー フライング開発 できる人だけ
35.
タスク
36.
タスク プロデューサー/プランナーが案件を立案 プロデューサー/プランナーがサービスの理想状態を定 義し、それを実現させるための機能を考える プロデューサー/プランナーとディレクター、エンジニ アで内容すり合わせ。実現可能性を検討など。 ディレクター/エンジニアが細かい仕様に落とし込み案 件化 パターン1
37.
タスク エンジニアがコード品質やパフォーマンス、継続的な 開発のための施策を洗い出してタスク化 エンジニアがモックを作って「どうすか、これ?」 エンジニアが勝手に実装して「これ入れていいですか ?」 パターン2
38.
タスクの見積もり
39.
タスクの見積もり ストーリーポイント 1 … 軽微なもの 2
… 0.5スプリント 3 … 1スプリント、またはそれ以上
40.
ストーリーポイント 1 … 軽微なもの 2
… 0.5スプリント おおざっぱ !? タスクの見積もり 3 … 1スプリント、またはそれ以上
41.
優先度定義
42.
優先度定義 優先度は5段階 S, A,
B C, D スプリント期間に開発完了 / テスト / リリース必 須。定常リリース日に間に合わなければリリース 日を遅らせる判断もする スプリント期間に開発完了 / テスト / リリース必 須ではない。開発着手はするものの、開発締め日 に間に合わなければ次回リリースに回す
43.
会議体
44.
会議体 スプリント計画 スプリントレビュー iOSチーム定例(週一) 各自の案件ごとのミーティング
45.
ツール
46.
ツール Slack JIRA Confluence esa GitHub Jenkins etc.. cmdshelf Bitrise
47.
ツール Slack JIRA Confluence esa GitHub Jenkins etc.. cmdshelf Bitrise
48.
ツール リモートリポジトリの実行可能 ファイルをローカルファイルの ように統合して扱える https://github.com/toshi0383/cmdshelf Swift製
49.
ツール cmdshelf-ios repository
50.
ツール cmdshelf-ios repository
51.
ツール cmdshelf-ios repository
52.
ツール cmdshelf-ios repository
53.
開発スタイル
54.
Pull Requests CONTRIBUTING.md抜粋 開発スタイル
55.
Pull Requests pull request
抜粋 活発なレビュー文化 開発スタイル
56.
コーディング規約 CONTRIBUTING.md抜粋 開発スタイル
57.
テスト Executed 2009 tests,
with 0 failures (0 unexpected) in 20.517 (21.345) seconds テスト極力書く! 2017/10/19 開発スタイル
58.
週一の定例やGitHub、 Slack上での議論から随時 開発ルールを更新 開発スタイル iOS定例シート
59.
ブランチ戦略
60.
ブランチ戦略 基本はGitHub Flow 各自トピックブランチをmaster /
qaから 作って作業 開発用のmasterブランチとQA用のqaブランチ
61.
ブランチ戦略 qa master qa merge merge
62.
ブランチ戦略 master 2.3.0 開発
master 2.4.0 開発 tag 2.2.0 申請 qa master qa 2.2.0 QA qa 2.3.0 QA スプリント2.3.0 qa スプリント2.2.0 スプリント2.4.0 tag 2.3.0 申請 merge merge
63.
master 2.3.0 開発
master 2.4.0 開発 tag 2.2.0 申請 qa master qa 2.2.0 QA qa 2.3.0 QA スプリント2.3.0 qa スプリント2.2.0 スプリント2.4.0 tag 2.3.0 申請 merge merge ブランチ戦略 スプリント2.3.0
64.
master 2.3.0 開発
master 2.4.0 開発 tag 2.2.0 申請 qa master qa 2.2.0 QA qa 2.3.0 QA スプリント2.3.0 qa スプリント2.2.0 スプリント2.4.0 tag 2.3.0 申請 merge merge ブランチ戦略 2.3.0 開発期間中 はmaster
65.
master 2.3.0 開発
master 2.4.0 開発 tag 2.2.0 申請 qa master qa 2.2.0 QA qa 2.3.0 QA スプリント2.3.0 qa スプリント2.2.0 スプリント2.4.0 tag 2.3.0 申請 merge merge ブランチ戦略 2.3.0 QA期間中 はqa
66.
master 2.3.0 開発
master 2.4.0 開発 tag 2.2.0 申請 qa master qa 2.2.0 QA qa 2.3.0 QA スプリント2.3.0 qa スプリント2.2.0 スプリント2.4.0 tag 2.3.0 申請 merge merge ブランチ戦略 2.3.0 QA期間中の masterは2.4.0開発 (できる人だけ)
67.
master 2.3.0 開発
master 2.4.0 開発 tag 2.2.0 申請 qa master qa 2.2.0 QA qa 2.3.0 QA スプリント2.3.0 qa スプリント2.2.0 スプリント2.4.0 tag 2.3.0 申請 merge merge ブランチ戦略 2.3.0申請後 qa -> masterにmerge (適時mergeしてる)
68.
ブランチ戦略 master 2.3.0 開発
master 2.4.0 開発 tag 2.2.0 申請 qa master qa 2.2.0 QA qa 2.3.0 QA スプリント2.3.0 qa スプリント2.2.0 スプリント2.4.0 tag 2.3.0 申請 merge merge
69.
Beta配信
70.
Beta配信 bitriseGitHub iTunes Connect TestFlight Crashlytics Tester Designer Others Developer hook delivery pull request
71.
Beta配信 bitriseGitHub iTunes Connect TestFlight Crashlytics Tester Designer Others Developer hook delivery pull request pull
request
72.
Beta配信 bitriseGitHub iTunes Connect TestFlight Crashlytics Tester Designer Others Developer hook delivery pull request push,
merge
73.
Beta配信 bitriseGitHub iTunes Connect TestFlight Crashlytics Tester Designer Others Developer hook delivery pull request 継続的 delivery 対象ブランチは以下 master qa qa-xxxx
74.
Beta配信 bitriseGitHub iTunes Connect TestFlight Crashlytics Tester Designer Others Developer hook delivery pull request QA期間中delivery
75.
Slack通知
76.
Slack通知
77.
Slack通知
78.
Slack通知
79.
Slack通知
80.
Slack通知
81.
Slack通知
82.
Slack通知
83.
Slack通知
84.
QA効率化
85.
QA効率化 QAやデバッグ用に様々なデバ ッグメニューを用意
86.
CPU, メモリ使用率表示 QA効率化
87.
リモート、ローカル通知のシ ミュレート QA効率化
88.
UserDefaults, Keychain, DB, 画像キャッシュの削除 QA効率化
89.
1週間に何回起動したなどの サービスユーザ区分ステータ スを変更 QA効率化
90.
アニメーション速度の変更 QA効率化
91.
再生動画のbitrateやresolution, segmentファイルの転送時間 などAVPlayerから取得できる 情報を全て動画上にoverlay QA効率化
92.
ログ出力確認 QAチームでは「iOS Console 」というツールで実機をつな いで確認 QA効率化
93.
その他
94.
チーム内ランチ勉強会(隔週)カンファレンス登壇
95.
まとめ
96.
まとめ 開発スピードとアプリの安定性、 コード品質を保った継続的な開発 に取り組んでいます
97.
Thank you
98.
We’re hiring! https://abe.ma/2gnzras
Editor's Notes
では早速開発体制についてですが、
ということで早速開発体制についてですが、
現在AbemaTVの開発局は約50名程度います
えー図にするとこのような感じで、左からDirector, Server Design, Web, iOS, Android, QAといたチームに分かれていて、それぞれのチームの代表でBoardメンバーが構成されています.
今日はこの中で、iOSチームについての開発体制や開発スタイルについてお話したいと思います。
まずiOSチームの中でもチームが分かれていて ビデオチーム、グロースチーム、本質改善チーム、テレビデバイスチームと大きく4つに分かれていて、その他にどれに属さない案件、プロジェクトなどがあったりします。
iOSチームですが、
現在10名体制で開発しています。 立ち上げ初期は4名程度だったのでだいぶ大きなチームになりました。
はい、みんなに顔出しOKもらったので載せておきますw
で、具体的には、先程お話したビデオ、グロース、本質改善、テレビデバイスチームはこのような形で分かれていて、その他の案件はケースバイケースでその時の状況で調整して対応しています。
AbemaTVの対応デバイスはPC, iPhone/iPad, Android/タブレット、 AppleTV, AndroidTV, Google Castがあります。
この中でiOSチームはiPhone, iPad, AppleTV, あとGoogle Castはテレビ側のrecieverとクライアント側のsenderがありますが、sender側が担当範囲になります。
iOSチームが管理しているcodebaseですが、
代表的なレポジトリはiosとtvosの2つになります あとは共通のapiモジュールや あっprotocolBuffer使っているのですが、protoのswiftのレポジトリ 共通のscript郡のcmdshelfレポジトリなどがあります
これはcodeのfile数や行数を出したものですが
iosで約9万行、tvosで27000行、apiで3800行くらいですね
こちらはiosレポジトリのGitHubのinsightsになります
iosのレポジトリだと、これは9月19~ 10月19日の1ヶ月で162個のpull requestがマージされていて、営業で1日平均すると、、だいたい7~8個のpull requestがマージされています、 ちなみに一番右の全然commitしてないのはデザイナーで画像差し替えとか文言変更はデザイナーが対応してくれたりします
こちらはtvOSですが、おもに2人で開発していて
tvosのレポジトリだと、57個のpull requestが1ヶ月でマージされていて、営業で1日平均すると、、だいたい2~3個のpull requestがマージされています
こちらは共通のapiモジュールのレポジトリですが
こちらもちょくちょく変更がはいります
何が言いたいかといいますと、まぁみんな仕事していますとw もとい毎日大量のコードが変更されていることがわかると思います
では、そういった開発をしているフローはどうなっているかというと、
こちらの図のような感じで、基本はスクラム開発でsprintを2週間に区切って開発しています。
もうちょっと細かくした図ですが、これは少し前に実践していたフローですが、 開発を二週間、QAを1週間で2週間ごとの申請でやっていました。 ただこれでやっていると問題がありまして、
ここの期間ですね。
開発とQA期間の重複がつらいですと。 QA中にバグ対応などがお主に発生すると、次のsprintへの影響がもろにでてしまうのでこれは無理があるということで、
改善しました。
開発期間1週間、QA期間1週間という定義でやることにしました。 今のところこれでスムーズにいっています。
長い開発はこのような形でsprintを跨いだ開発になります
厳密に1週間/1週間にはならないときも、もちろんあるので、QA期間中から開発をはじめているものもあります。計画ミーティングごとに何をやるか決めますが、ある程度先のsprintの開発まで決めているのでこういった調整が容易になっています。
ではそもそもタスクはどうやって発生しているのかということですが、
パターン1として、、、、、いわゆるトップダウン的なものですね
パターン2は、、、、、といったボトムアップでタスク化することも多々あります。
ではどうやってタスクを見積もっているかということですが、
一応タスクにストーリーポイントを付けています。1ポイントが軽微なもの、2ポイントが0.5スプリント、3ポイントが1スプリント、またはそれ以上といった定義しかしていません
ものすごいおおざっぱですねw この数値の付け方はスクラム開発だと変な定義だと思いますが、 AbemaTVは事業の流れによって案件の優先度がけっこう変わるので、ガチガチにポイントつけてSprintを回すのは向いてなくて、一人ひとりが今どれくらい案件を抱えていて、どのくらい重い開発をしているかを見える化する程度にしています。 ただここももう少しちゃんとポイント定義して回せるようにしていきたいと考えています
タスクの優先度定義ですが、
チケットを見ただけでこれは今回マストで入れないといけないのか、次に回してもいいのかエンジニアが判断できるようにしています。こういった共通言語の定義があることで、ディレクターなどとの会話がスムーズにいくといった利点もあります。
あと会議体ですが、
大きく4つありまして、スプリント計画を行うスプリント計画ミーティング、スプリントの振り返りを行うスプリントレビュー、メンバー各自の案件ごとのミーティングとiOSチームの週一の定例をやっています。毎日の行うようなデイリースクラムはやっていません
あと使っているツールの紹介します
使っているツールですが、いわゆる一般的なものでチャットツールのSlack、チケット管理にJIRA, ドキュメントツールにConfluenceとesa、ソースコード管理にGitHub、CI用にBitriseと自動化用にJenkinsとcmdshelfなどを使っています。
cmdshlefはオリジナルなので知らない人も多いかと思うので少し紹介すると
リモートリポジトリの実行可能ファイルをローカルファイルのように統合して扱えるようにするもので、iOSチームのトッシーさんという方がつくっていてSwift製です
こちら実際の例になります。
最初の方でお話しましたが、iOSチームで管理している共通script置き場のcmdshelf-iosというレポジトリがあります
cmdshelfをinstallしてこのレポジトリをaddして、cmdshelf listを実行すると実行できるコマンド郡が表示されるようになります
listで表示されたものをcmdshelf runで実行できるといった形で、リモートのレポジトリのscript郡を手軽に使えてけっこう便利なものになります。
はい、次に開発スタイルですが、
こちらはContributing.mdのPullRequestsについての抜粋ですが、、、 といったルールも定義しています
これはPull Requestsのリストの抜粋ですが、ちょっと多いとか少ないとかの平均はわかりませんが、自分の経験上、けっこう活発なレビュー文化だと思います。
こちらはコーディング規約でGoodな書き方とBadの書き方というのを明示して、なるべくチーム内でコードの統一性を出すようにしています。
こちらはテストの実行結果ですが、現在2009ケースのテストがあり、極力テストは書くという方針ですすめています。ViewやViewControllerのテストはデザインや仕様も頻繁に変わる現状だとコストが大きいのと、ViewとModelを分離する設計にしているので、Viewのテストは書かなくてよい、Model層やロジックはテスト書くようにしましょうといった方針にしています。
右の図はiOSの週一定例のシートですが、急ぎでないものは各自思いついた時に議題を入れてもらって、定例で結論を出してアクションしていくといったやり方をしています。あとはGitHubやSlack上での議論から開発ルールを更新していっています。
次にブランチ戦略についてお話します
シンプルにこのような形になります。masterブランチがあってQA期間中はqaブランチを使うといったやり方にしています。
これにsprintの図を当てはめるとこのような感じです 左が仮でスプリント2.2.0、真ん中がスプリント2.3.0、右が2.4.0になります
真ん中のスプリント2.3.0を例に見てみますと
2.3.0の開発期間中はmasterブランチからトピックブランチを切ってmsterにプルリクしてmasterにマージします
2.3.0のQA期間中はqaブランチからトピックブランチを切ってプルリクエスト、qaブランチにマージします
2.3.0QA期間中のmasterブランチは2.4.0(次のversion)の開発ブランチになります
2.3.0の申請が終わったらqaブランチをmasterにマージします。 ここは申請というよりは適時マージしているイメージになります
このブランチ戦略の良いところとしては、プルリクエストのmergeができないということがあまり発生しないということと、基本はGitHubフローでシンプルでわかりやすい点です。スクラム開発のsprintサイクルにうまくはまるのではないかと思います。
えー、Beta配信ということで、テスト用アプリの配信の自動化とフローについてです
図のような感じになります
まず Developerがプルリクエストします。
レビューを通ってmergeされると、bitriseがhookでjobを起動します
対象ブランチは先程お話したmasterとqaを対象にしていて、Crashlyticsにuploadして、TesterやDesigner、Directorなどがすぐに確認できるようなっています。 あとはmasterとqa以外にqa-xxxxといった名前でブランチを上げると配信するようにしていて、特別なversionで何か確認してもらいたい時などにも配信できるようにしています
あとはQA期間中はTestFlightにも配信して、本番と同じ状態で確認できるようにしています
はい、あとはSlackの通知もいくつか自動化しているものを紹介します
いくつかピックアップしたいと思います
左上はCocoaPodsのライブラリのアップデートある場合に〜通知しているものです
これは最新のqaビルドが配信されたよ〜といったお知らせで
Crashがけっこう起きてるよ〜といったお知らせ、
これは自前のbotですが、レビューがしばらくされてないプルリクエストがあるよとお知らせしているものです。
あとはp12の証明書が切れそうだよ〜とか
App Storeのレビュー評価
iOS11のbeta10でたよ〜といったAppleのRSSなどをSlackに通知しています。
はい、最後にQAの効率化についての取り組みについてです
機能が多くなり複雑になってくると、QAの時間も比例して大きくなってきてしまいます。その効率化にも取り組んでいて、デバッグメニューを容易しています 現状のデバッグメニューの機能についていくつかピックアップすると
その他としてカンファレンスへの登壇や、チーム内でのランチ勉強会などを行うことによって直接だけでなく間接的に知見の共有になったりしています
はい、まとめです。AbemaTVは事業的に先を見据えたサービスなので、その場しのぎで開発していると長期的な開発のどこかで破綻してしまう可能性もあると思います。なのでAbemaTVのモバイル開発においても長期的な視点で、開発スピードとアプリの安定性、コードの品質を保った継続的な開発ができるように意欲的に取り組んでいます。 簡単になりますがまとめということで、発表を終わりにしたいと思います
Download now