レポート

『【ヒカ☆ラボ】ITベンチャーを支えるテクノロジー』レポート~話題の4社ChatWork,ブラケット,Lang-8,ランサーズが合同技術勉強会を開催!~

この記事を読むのに必要な時間:およそ 4 分

2014年2月19日(水)渋谷ヒカリエにて開催された,エンジニア向けイベント「ヒカ☆ラボ」から,注目のITベンチャー4社による技術勉強会の要素をレポートします。

「ヒカ☆ラボ」とは,レバレジーズ⁠株⁠が主催するエンジニア向けの無料イベント。プログラミングからUI/UX,グロースハックまで,エンジニアのスキルアップを幅広くサポートする大小様々なイベントを開催しています。

中でも今回のイベントは,有名ベンチャー4社が登壇する,大規模なものでした。各社から開発環境やサービス成長に伴う苦労など幅広い共有がありました。

プレゼンテーション形式で,資料はSlideShareにて公開されますので,本記事では要点をTIPS形式でまとめてお届けします。

オープニングはChatWork⁠株⁠

「チャットワークを支える技術」というテーマでChatWork⁠株⁠専務取締役CTOの山本正喜氏が登壇しました。

このコーナーでは,シリコンバレーにも進出している「チャットワーク」における運営とプロジェクト管理,フロントエンド(HTML5/JavaScript)⁠サーバーサイド(PHP)⁠モバイル(Titanium Mobile)について共有されました。

内容が濃く駆け足でしたが,ベンチャーならではの「やってみて調整していった」部分が,かなり感じられる内容でした。

写真1 ChatWork⁠株⁠ 山本正喜氏

写真1 ChatWork(株) 山本正喜氏

登壇者プロフィール
ChatWork⁠株⁠ 専務取締役CTO 山本正喜氏
大学在学中より兄の山本敏行とともに兄弟で創業。以来,製品開発担当として企画・マネジメントを行いながら,現在でも自らプログラマとして現場の第一線で開発を行っている。2011年3月にクラウド型ビジネスチャットツール「チャットワーク」を開発。

運営とプロジェクト管理

サービス開発&運営に17人,グロースに5人という体制で,グローバルチームもいるため,足並みを揃えないとユーザサポートもままならない。いろいろ試したうえで,落ち着いたのが週ベースのガントチャート。1カラム1周間で,デザイナーからマーケッターまで職種問わず全メンバーを網羅している。以前は日の単位や月の単位を試してみたが,更新が激しすぎたり,スピード感と合わなかったりで,週単位が最もフィットしたとのこと。3ヵ月先までしか予定を入れない。ビジネスの特性上,それ以上先まで入れてもほとんど変更になってしまうため,あまり入れない事が多い。

プロジェクト毎に,プロジェクトマネージャーではなく,プロジェクトディレクターというポジションが管理者となっている。ほとんどのコミュニケーションはチャットで,メールはしない。口頭確認やMTGは最低限にしておくことで,タスクの背景から全て履歴がテキストで残るため,国内外にメンバーがいる場合でも機能している。

社内に部活チャットというものがあり,スキルごとのチャットでスキルアップしていくことができる。それでも困ったときは,社外の専門家にチャットでコンサル的に聞くことができる。これが意外に安い値段で可能で,弁護士やマーケティング領域もカバーできるのでオススメ。

フロントエンド

チャットワークは,画面遷移のないフルAjaxアプリケーション。リアルタイム通信とHTML5によるリッチな機能を実装している。フレームワークはjQueryとBackbone.js(一部)⁠リアルタイム通信ではChannel APIを活用している。あまり知っている人は多くないが良いAPI。GoogleAppエンジンなので,どれだけアクセスが増えても勝手にインスタンスが増えていくので,便利。

HTML5ではWebNotifications(デスクトップ通知をブラウザ外で表示)を実装。チャットサービスでは必須である。Chromeが先行実装し,他ブラウザも後追いで実装されているが,ブラウザごとに微妙に挙動が違うので注意。ブラウザ上でのビデオ通話,画面共有を可能にするWebRTCを実装しているが,各ブラウザでの実装はまだまだ途中である。WebRTCをエミュレーションするプラグインを活用している。

モバイル

iOS/Android両アプリに対応し,Titanium Mobileでクロスプラットフォーム開発している。Titanium Mobileを採用した理由は,リリース初期の激しい機能アップデートに,ネイティブで書いていては間に合わず,そのときに見つけたのがTitanium Mobile。Web版とのコード共有化が出来るのではないかと期待したが,実際にはWebのネットワークと贅沢なスペックに対して,モバイルではコードの書き方がまったく違うため,コード共有の望みはかなわなかった。結局,ゼロベースでTitaniumのベストプラクティスに置き換えた。

安定したアプリが作れるようになったころにiOS7が登場し,TitaniumSDKが対応するまで何もできない状態に。ネイティブ化を決意し,絶賛開発中。

サーバサイド

アプリケーション部分はフルAjaxなので,ほとんどがAPIの通信処理。自社開発のフレームワークを活用している。インフラはオートスケーリング。ビジネスアプリなので平日はすごく負荷が高いが,休日はガックリ減る。なので,伸び縮みできる仕様が大事。監視はNew Relicがオススメ。絶対使ったほうが良い。

続いて⁠株⁠ブラケット

「STORES.jpの育てかた」というテーマで,牧野圭将氏が登壇しました。

実は⁠株⁠ブラケットのエンジニアが人前で話すのは始めてということでした。今後はAngularJSの解説など,いろいろなイベントを実施していくそうで,楽しみです。

写真2 ⁠株)ブラケット 牧野圭将氏

写真2 (株)ブラケット 牧野圭将氏

登壇者プロフィール
牧野圭将氏
STORES.jpのWeb Engineer。ナビゲーションアプリのWeb API開発を4年経験し,2013年9月に⁠株⁠ブラケットに入社。STORES.jpのインフラ,サーバサイド,クライアントサイドと開発全般を担当。

チーム体制

エンジニア7名,デザイナー1名,機能分担はとくに無く,なんでもやる。2013年2月時点でエンジニアは2名だったが,サービス拡大に合わせて増員。

急成長する我々にはmongoDBのスキーマフリーが便利。ただし,簡単にデータを追加できる分,どんどんデータサイズが増えがちなので,要らないものを消していくことが大事。

コードはGitHubで管理。Jenkinsでテスト実行,ローカルからデプロイ。1日に8回くらいデプロイしている。

開発環境

インフラにはAWS。サーバの増減が素早く行えるので,TV放送などで突然トラフィックが増えても,対応がしやすい。STORES.jpの場合は,サービスそのものがTVに露出したり,参加している店舗がTVに取り上げられたりするケースがあるので重要。

スポットインスタンスなら安価なので,負荷テスト用にサーバをどんどん立てられるのも良い。

リソース,エラー監視にはNew Relic。iOSアプリでPush通知してくれるのも良い。我々には専任の常設監視チームが居ないが,監視はNew Relicにおまかせで,エラーが出たら対応している。

ログ監視にはMixpanel。欲しいデータだけを抽出して,見られるのが良い。Mixpanelは従量課金でアクセス数が増えると課金が増えていくため,GoogleAnalyticsで全体を見て,詳しく見たい所をMixpaneelで見るような使い方。

ABテストにはOptimizelyを活用。ブラウザからかなり手軽にテストの開始とスタートができるのが利点。統計的な判断もOptimzelyで判断できるので,便利。

情報共有はChatWorkとGoogleサイト。デプロイ連絡や改善報告,気になるサービスの共有はチャットワーク。エンジニアが日々改善している中で,反応速度の改善など地味な改善も,報告してみんなで喜ぶ。非エンジニア向けに使っているのがGoogleサイト。開発関係はGitHubなので,こちらではカスタマーサポートが円滑に回るような仕様共有や,社内ルールの共有など。

Dashboard。アクセス数や流通額などをリアルタイム表示しており,社員みんなが数字を意識する。

少ない人数でスピーディに開発するために自動化! 各種サービスにまかせる! 開発機能に集中!

情報共有はマメに。対エンジニア,非エンジニア向けを意識する。

著者プロフィール

林英司(はやしえいじ)

前職はまったく違う業界だったが,より挑戦できる環境があったレバレジーズ(株)に入社。経歴関係なく実績を出せば次々に新しい仕事ができる現状に強くやりがいを感じている。仕事上,常に意識していることは「相手の想像を上回る」。少しでもモテようと生活感を出さずにミステリアスぶっていたら「ノリが悪い」「性格が悪い」「キモい」という事実無根なレッテルを貼られてしまったことが最近の悩み。

コメント

コメントの記入