iQONにおける
     開発手法
        2013/03/18

@kyuns on iQON エンジニアセミナー
自己紹介
今村雅幸 / @kyuns

取締役 CTO


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


  @kyuns             @arara_jp
 Web/Backend           iOS




    @6rats        @WorldDownTown
Android/Backend         iOS
iQONにおける開発手法
iQONの規模感
• 月間API コール 4億/月
• 画像リクエスト回数 4億/月
• アイテム数120万件、コーデ30万件
• お気に入りアイテムデータ1000万件
• 日本最大級のファッションSNSサービス
我々は   スタートアップ
スタートアップ

• 資金も時間も有限
• “何が世の中を変えれるのか”の検証
• 正解は無い
  厳しい時間的制約
効率的な開発手法
VASILY流
リーン&アジャイル
Idea



Learn                        Build

気づき                          プロダクトの開発




 Data                     Product
           Measure

        計測、データ収集、A/Bテスト
効率的な開発
• 全てはBuild-Measure-Learnの高速化
• 効率的な開発スタイルが必要
 1.労働環境
 2.開発環境
 3. 開発手法
開発スタイル
1.労働環境
労働環境
• 好きなMacを選べる
 (Windowsは宗教上の理由によりVMWare内)


• 技術書籍代は全額会社負担
• アーロンチェア
• フリードリンク
開発スタイル
2.開発環境
開発環境
メイン言語                           デプロイ/ CI
Ruby on Rails 3 / Ruby 1.9.2    Capistrano / Jenkins

サーバー環境                    各種ミドルウェア
AWS / EC2                 MySQL,MongoDB, Redis
監視                        Memcached,Varnish,
                          CloudFront,Solr,fluentd,
zabbix                    Hadoop,EMR... etc
開発スタイル
3.開発手法
効率的な開発手法

• 最適な開発サイクル
• タスク&進 管理
• コードの共有/レビュー
• ロジックの一本化
最適な開発サイクルとは

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




最大のボトルネック
審査期間を活かす
     • 2週間を開発リリースサイクルに
                                                              リリース
開発     1週間                               1週間
                                                   バグ対応
審査                                                   テスト



             約2週間=1バージョン
       常にWaiting For Reviewを目指すiOSアプリの開発手法
          http://tech.vasily.jp/2013/01/waiting-for-review/
タスク&進   管理
Redmine


項目をカスタマイズして利用
プラットフォーム,バージョン,デザインの有無,ラ
ベル名変更等
バージョンごとのタスクと進   を管理
チケットの工夫
   チケット作成時に
   ・現状 (問題点)      Why
   ・改善案 (解決案)     What
                  How
   ・理由 (なぜやるのか)
   ・効果 (見るべき数値)
   必ず書くように


      意識の統一、ズレを無くす
コードの共有/レビュー
github

• 社内gitlabからgithub.comに移行
• pull request / code review
• 各種branchはredmineのチケット単位
ロジックの一本化
iQON Product




  iPhone        Android      SmartPhone




               PC / Widget
API Model
           PC
                   json



         iPhone                   API
                   plist   nginx/Rails/unicorn




         Android
                    json



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

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



   Build-Measure-Learnを
        高速に実行
VASILYでは   爆速で
    新しいファッションメディアを


           作る仲間を 募集中です
                   masa@vasily.jpまで

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