29
iQONにおける 開発手法 2013/03/18 @kyuns on iQON エンジニアセミナー

iQONの開発手法 at iQONエンジニアセミナー

Embed Size (px)

DESCRIPTION

iQON エンジニアセミナー by VASILYでの資料 @kyuns

Citation preview

Page 1: iQONの開発手法 at iQONエンジニアセミナー

iQONにおける開発手法

2013/03/18

@kyuns on iQON エンジニアセミナー

Page 2: iQONの開発手法 at iQONエンジニアセミナー

自己紹介今村雅幸 / @kyuns

取締役 CTO

2006/4 - 2009/4 Yahoo! JAPANにエンジニアとして新卒入社。Yahoo! FASHIONやX BRANDなどのサービスを開発。2009/5 - VASILY創業。iOSアプリ開発や様々なWebサイト等を開発、2010年にiQONベータ版リリース。

Page 3: iQONの開発手法 at iQONエンジニアセミナー

Engineering Team

@6ratsAndroid/Backend

@WorldDownTowniOS

@arara_jpiOS

@kyuns Web/Backend

Page 4: iQONの開発手法 at iQONエンジニアセミナー

iQONにおける開発手法

Page 5: iQONの開発手法 at iQONエンジニアセミナー

iQONの規模感• 月間API コール 4億/月

• 画像リクエスト回数 4億/月

• アイテム数120万件、コーデ30万件

• お気に入りアイテムデータ1000万件

• 日本最大級のファッションSNSサービス

Page 6: iQONの開発手法 at iQONエンジニアセミナー

我々はスタートアップ

Page 7: iQONの開発手法 at iQONエンジニアセミナー

スタートアップ

• 資金も時間も有限

• “何が世の中を変えれるのか”の検証

• 正解は無い

厳しい時間的制約

Page 8: iQONの開発手法 at iQONエンジニアセミナー

効率的な開発手法

Page 9: iQONの開発手法 at iQONエンジニアセミナー

VASILY流リーン&アジャイル

Page 10: iQONの開発手法 at iQONエンジニアセミナー

Learn Build

MeasureData

Idea

Product

計測、データ収集、A/Bテスト

プロダクトの開発気づき

Page 11: iQONの開発手法 at iQONエンジニアセミナー

効率的な開発• 全てはBuild-Measure-Learnの高速化

• 効率的な開発スタイルが必要

1.労働環境2.開発環境3. 開発手法

Page 12: iQONの開発手法 at iQONエンジニアセミナー

開発スタイル1.労働環境

Page 13: iQONの開発手法 at iQONエンジニアセミナー

労働環境• 好きなMacを選べる

(Windowsは宗教上の理由によりVMWare内)

• 技術書籍代は全額会社負担

• アーロンチェア

• フリードリンク

Page 14: iQONの開発手法 at iQONエンジニアセミナー

開発スタイル2.開発環境

Page 15: iQONの開発手法 at iQONエンジニアセミナー

開発環境デプロイ/ CI

Capistrano / Jenkins

メイン言語Ruby on Rails 3 / Ruby 1.9.2

サーバー環境AWS / EC2

各種ミドルウェアMySQL,MongoDB, RedisMemcached,Varnish,CloudFront,Solr,fluentd,Hadoop,EMR... etc

監視zabbix

Page 16: iQONの開発手法 at iQONエンジニアセミナー

開発スタイル3.開発手法

Page 17: iQONの開発手法 at iQONエンジニアセミナー

効率的な開発手法

• 最適な開発サイクル

• タスク&進捗管理

• コードの共有/レビュー

• ロジックの一本化

Page 18: iQONの開発手法 at iQONエンジニアセミナー

最適な開発サイクルとは

iOSアプリには約1週間ほどかかる審査がある

最大のボトルネック

Page 19: iQONの開発手法 at iQONエンジニアセミナー

審査期間を活かす• 2週間を開発リリースサイクルに

http://tech.vasily.jp/2013/01/waiting-for-review/

常にWaiting For Reviewを目指すiOSアプリの開発手法

開発

審査バグ対応テスト

リリース

約2週間=1バージョン

1週間 1週間

Page 20: iQONの開発手法 at iQONエンジニアセミナー

タスク&進捗管理

Page 21: iQONの開発手法 at iQONエンジニアセミナー

Redmine

項目をカスタマイズして利用プラットフォーム,バージョン,デザインの有無,ラベル名変更等バージョンごとのタスクと進捗を管理

Page 22: iQONの開発手法 at iQONエンジニアセミナー

チケットの工夫チケット作成時に・現状 (問題点)

・改善案 (解決案)

・理由 (なぜやるのか)

・効果 (見るべき数値)

必ず書くように

意識の統一、ズレを無くす

HowWhat

Why

Page 23: iQONの開発手法 at iQONエンジニアセミナー

コードの共有/レビュー

Page 24: iQONの開発手法 at iQONエンジニアセミナー

github

• 社内gitlabからgithub.comに移行

• pull request / code review

• 各種branchはredmineのチケット単位

Page 25: iQONの開発手法 at iQONエンジニアセミナー

ロジックの一本化

Page 26: iQONの開発手法 at iQONエンジニアセミナー

iQON Product

iPhone

PC / Widget

SmartPhone Android

Page 27: iQONの開発手法 at iQONエンジニアセミナー

API Model

APInginx/Rails/unicorn

iPhone

Android

PC

plist

json

json

• iQON内のデータの読み書きは全てWebAPI経由で行う• ロジックを1箇所にまとめてマルチプラットフォーム対応

Page 28: iQONの開発手法 at iQONエンジニアセミナー

まとめ

開発におけるありとあらゆる部分で効率化本質的な問題にフォーカス

Build-Measure-Learnを高速に実行

Page 29: iQONの開発手法 at iQONエンジニアセミナー

VASILYでは爆速で新しいファッションメディアを

作る仲間を募集中です

[email protected]まで