ameba」サービスの舞台裏 -...

57
Ameba」サービスの舞台裏 Android株式会社サイバーエージェント チーフネイティブエンジニア 藤原 聖

Upload: others

Post on 20-May-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

「Ameba」サービスの舞台裏Android編

株式会社サイバーエージェント チーフネイティブエンジニア

藤原 聖

Page 2: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

自己紹介

藤原 聖 ふじわらさとる

株式会社サイバーエージェント アメーバ事業本部 サービス部門

チーフネイティブエンジニア

・コミュニティ ・ブログ ・プラットフォーム

Page 3: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

経歴

東京大学工学部電子情報工学科卒 ベンチャーでandroid/iOSの受託開発 2010年3月よりandroid開発 ABC2011Winter@東京大学 よりABC参加 2011年9月サイバーエージェント入社

Page 4: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

アジェンダ

• Amebaのサービス開発の舞台裏 • スピード&クオリティアップのための取り組み • まとめ • 質疑応答

Page 5: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

アジェンダ

• Amebaのサービス開発の舞台裏 • スピード&クオリティアップのための取り組み • まとめ • 質疑応答

Page 6: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

「Ameba」のスマホ向けサービスについて

Page 7: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

Amebaスマホサービス

Amebaでは ・ゲーム ・コミュニティ を中心に 様々なスマホアプリを 内製で開発しています

Page 8: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

年間100タイトル

その数なんと「年間100タイトル」

およそ

Page 9: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

チームの体制について

Page 10: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

チームの体制(コミュニティ系サービスの場合)

プロデューサー(責任者) 1名 ディレクター/プランナー 0名~2名 デザイナー 1~2名 フロントサイドエンジニア 2名~3名 サーバーサイドエンジニア 2名~3名 ネイティブエンジニア 0名~2名

Page 11: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

ネイティブエンジニアの体制について

• コミュニティ • メインとなるPJに所属するが、それ以外にも複数のPJを兼任して担当

• ゲーム • ゲームプラットフォーム室に所属して、全てのゲームを集中して担当 • ネイティブスタジオ(Unity/cocos2d) • プラットフォーム • ネイティブエンジニアが専任で担当

Page 12: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

Ameba内におけるAndroid

Page 13: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

Androidファースト?!

Page 14: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

Androidファースト

iOS先行の開発からandroid先行の開発へ 盛り上がる社内のAndroid熱 しかし、一週間後

Page 15: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

ドコモからiPhone発売

Page 16: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

ドコモからiPhone発売

しかし、androidを強化しなくてはならない

Page 17: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

余談ですが

AppleStoreに13時間並んで iPhone5S(docomo)買いました ゴールドは買えず、シルバーに 10/24発売のXperiaZ1を狙っています

Page 18: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

AmebaのAndroid開発での課題

Page 19: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

課題

• スピードをもっと高めたい • 短期間で多くのサービスを開発する必要がある • ネイティブエンジニアの不足 • 人の異動が多い • クオリティをもっと高めたい

Page 20: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

前半まとめ

Page 21: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

Amebaのスマートフォン向けサービスの開発の

舞台裏は

Page 22: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

多くのアプリを少人数で開発

スピード&クオリティアップが課題

Page 23: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

アジェンダ

• Amebaのサービス開発の舞台裏 • スピード&クオリティアップのための取り組み • まとめ • 質疑応答

Page 24: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

スピード&クオリティ

• スピードをあげるための取り組み • 開発を効率化させるライブラリ • 開発環境 • クオリティをあげるための取り組み • テスト • チェック体制 • デザイン

Page 25: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

スピード&クオリティ

• スピードをあげるための取り組み • 開発を効率化させるライブラリ • 開発環境 • クオリティをあげるための取り組み • テスト • チェック体制 • デザイン

Page 26: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

開発効率化のためのライブラリ

Page 27: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

NBUBase

通信とキャッシュ機能 Volleyに近い

採用アプリ

Page 28: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

NBUGap

PhoneGapがベース JavaScriptベースでandroid/iOSアプリが作れる

採用アプリ

Page 29: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

Amebaフレームワーク(仮)

通信機能とDB

採用アプリ

Page 30: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

AmebaプラットフォームSDK

Amebaのスマートフォンプラットフォーム用 認証機能(シングルサインオン) API通信

採用アプリ ほぼ全て

Page 31: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

GPUImage for android

カメラ系アプリのために開発 GitHubにて公開 https://github.com/CyberAgent/android-gpuimage

採用アプリ

Page 32: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

開発効率化のためのライブラリ

Page 33: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

使われないと意味がない通信/DB/キャッシュは

やっぱ使う画像は少し難しい

Page 34: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

開発効率化のための開発環境

Page 35: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

AppZone

JenkinsでビルドしたapkをPOST apkをデバイスからダウンロード 非エンジニアでも最新のアプリを入手

Page 36: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

BugSense/Crashlytics

BugSenseを全プロジェクトに導入 一部でcrashlyticsも使用 非エンジニアも閲覧/分析

Page 37: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

GitHub Enterprize

2013年4月に本格導入 git flow + pull request 開発効率が「3倍エージェント」

Page 38: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

Antビルド

android update project Jenkinsでビルドする 開発/ステージング/本番環境の切り替えに使う AppZoneとの組み合わせでより強力に

Page 39: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

開発効率化のための開発環境

Page 40: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

GitHub最高非エンジニアも参加でき

る工夫

Page 41: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

スピード&クオリティ

• スピードをあげるための取り組み • 開発を効率化させるライブラリ • 開発環境 • クオリティをあげるための取り組み • テスト • チェック体制 • デザイン

Page 42: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

クオリティをあげるための取り組み

Page 43: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

テスト

Page 44: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

テスト

(第1の砦)健全化・監視確認 (第2の砦)アプリ機能診断 (第3の砦)脆弱性診断 (第4の砦)レギュレーション診断 (第5の砦)アプリリリース判定

CSグループ SMAq (QAグループ) セキュリティG テクニカルサポート 総合プロデュース室

テスト体制:5段階チェック

リリース 1 2 3 4 5

Page 45: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

検証司令塔

CSグループ

SMAq

セキュリティG

テクサポ

総合P室

プロジェクト

一本化

検証 司令塔

問い合わせ一本化

Page 46: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

チェック体制

Page 47: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

K点チェック

アプリリリース判定 PJを横断的に見る総合プロデュース室 チーフクリエイティブディレクター チーフエンジニア がアプリのクオリティをチェック

Page 48: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

ダカイゼンすすむボード(信号)

リリース直後は赤信号。 継続率が一定の数値を超えたら黄信号。 更に一定の数値を超えたら青信号。

Page 49: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

レスポンス選手権

各サービスの主要Webページのレスポンスを自動で計測(ReSpeedA) 隔週ごとにランキング形式で全員に告知

Page 50: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

デザイン

Page 51: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

デザイナーロワイヤル

既にリリースされているサービスに対して、数名のデザイナーが改善案を出す 審査員が採点し、そのポイントを競う 傍聴席がある

Page 52: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

類似サービス委員会

類似サービスを集めて議論 ノウハウ共有&レビュー 掲示板/日記/写真 など

Page 53: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

アジェンダ

• Amebaのサービス開発の舞台裏 • スピード&クオリティアップのための取り組み • まとめ • 質疑応答

Page 54: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

まとめ

Page 55: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

Amebaはチームでスピード&クオリティアップを目指す

Page 56: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

ご清聴ありがとうございました

Page 57: Ameba」サービスの舞台裏 - android-group.jp...ネイティブエンジニアの体制について • コミュニティ • メインとなるPJに所属するが、それ以外に

アジェンダ

• Amebaのサービス開発の舞台裏 • スピード&クオリティアップのための取り組み • まとめ • 質疑応答