突撃!隣の開発環境 パート4【トランスリミット編】
こんにちは!おおはしりきたけです。前回はうちのということで弊社クラスメソッドのiPhoneアプリサービス事業部の紹介をさせていただきましたが、今回からまた色々な会社さんに突撃していきたいと思います!パート4の今回は、先日1200万DL達成したBrainWarsをリリースしているトランスリミットさんに訪問しました。インタビューに答えていただいたのはCTOの松下さん、エンジニアの牧野さんに話を伺いました。
突撃!隣の開発環境とは
技術事例やノウハウなどは、ブログや勉強会などで共有されることが多いと思います。しかし、各社の開発環境や開発体制などは意外と共有されていないこと多いと思います。ノウハウの流出になるかもしれませんが、それ以上に、より良い開発を目指している会社さん同士で情報交換を行い、良いチーム、良いプロダクトを作っていくという志の会社さんの為の情報共有のための企画になります。開発環境や開発体制なども技術領域によっても変わってくると思いますが、この突撃!隣のシリーズでは様々な会社さんのイケてるツールの使い方や、仕事が捗る開発体制についてインタビューを行っていく予定です。
トランスリミット紹介
どんなことをやっているのか?
トランスリミットさんは「世界に響くサービスをつくる」というビジョンを掲げており、先日1200万DLを達成したBrainWarsは、世界中のプレイヤーとお互いの脳をフル回転させて戦う対戦型知的ゲームで、95%以上が海外ユーザーです。複数CTO体制や、就業規則がgithubで公開されていたりなど、ユニークな施策を色々やっている会社さんです。リリースして1年で1200万DLを達成し急成長をしている会社さんです。
開発環境について
まずは、トランスリミットさんの開発環境について色々と伺っていこうかと思います。
システム構成
システム構成は、以下の様な構成になっています。サーバーは、全てAWSで構築されており、サーバーサイドの言語は対戦のマッチングをする部分がNode.jsでAPIの部分にRubyを利用しているとのことでした。RubyフレームワークはRailsが利用されており、EC2以外にもSNSやSQS、Lambda、DynamoDBなどAWSのフルマネージドサービスを利用しているのが特徴的だと思います。また、行動ログなどはGoogleのBigQueryを利用しているというのも特徴的だと思います。
開発端末
社内は全てThunderbolt Displayで統一されており、ほぼ全員Macを利用しているとのことでした。スタートアップらしくバランスボールやスタンディングデスクなど開発を行う為の道具も工夫が凝らされていました。
Thunderbolt Displayが並んでいるのは壮観ですね!
コミュニケーションツール
プロジェクトを円滑にするために様々なコミュニケーションツールを使うことになります。チャットやチケットの管理、仕様の共有などどのように行っているのか聞いてみました。
チャットツール
トランスリミットさんはChatOpsを実践しているためChatworkからSlackに移行したということでした。チャンネル数は17ちゃんねるくらいあり、勤怠管理もChatOpsで行われており、勤怠管理botである「みやもとさん」を改良して利用しているとのことでした。ChatOpsを実現できているのは、社長を含めほとんどの方がエンジニア出身という背景もあると思います。
プロジェクト管理ツール
タスクの管理はTrelloで行っているとのことでした。弊社でもTrelloを使っていますが非常に軽く使えるのでタスク管理などに非常に適しており使いやすいツールだと思います。
仕様の共有方法
Markdownで書かれた仕様などをGoogleDriveで共有しているとのことでした。APIなどの仕様についてはソースコードが仕様になっているということです。フロントのエンジニアもサーバーのコードを書くので、API定義を使ってコミュニケーションを取る必要もなく、仕様の齟齬がでないのでソースコードが仕様になるというのは非常に納得です。
リポジトリ
やはりgithubです。リポジトリ数は20個位で、ChatOpsで利用しているスクリプト郡などもgithubで管理されていたり、上記に書いた就業規則などもgithubで管理されていたりします。
自動化ツール
CI環境などは作っておらず、勤怠管理やデプロイなど全てChatOpsでやっています。こちらに詳しい情報は乗っているのですがトランスリミットさんで使わてているbotを幾つか紹介させていただきます。
No | 名前 | 役割 |
---|---|---|
1 | 修行僧 | 勤怠管理bot「みやもとさん」を改良しGoogle Spreadsheetsに勤怠を記録 |
2 | tibo | メッセージのスケジューラーや掃除当番の担当を決めたりする |
3 | boss | AndroidビルドやDEV環境へのデプロイ、ユーザーへのプッシュ通知を行う |
4 | taro | CloudWatchのALARMをSlackに表示 |
5 | conan | ユーザーの課金履歴を一覧表示したり、購入処理に失敗したユーザーに対してコインやハートの付与を行う |
6 | kira | 通報されたユーザを一覧表示したり、ユーザをBANする |
デザインツール
ベースはIllustratorを利用しているということです。基本はエンジニアが先にプロトタイプを作って動作して面白かったら、デザインを当てていくとのことでした。デザインファイルの受け渡しはSlackを使っており、リソースファイルの管理はAmazon WorkDocsを利用しているとのことでした。
写真はスタンドデスクに置いてある5kモニタのiMacで作業を行っているデザイナーさん
開発体制
開発チーム
トランスリミットさんのエンジニアさんの内訳は以下になります。
- CTO:2名
- エンジニア:14名 (うちアルバイト/インターン 8名)
- デザイナ:2名 (うちアルバイト1名)
※iOS/Androidからサーバーサイド、インフラまでエンジニアの方の全てやっているとのことでした。
開発プロセスについて
10時半頃から全員で朝会を行い、1日のタスク共有などをしているそうです。社長がプロダクトオーナーをやっており、開発プロセスは、iOSアプリがベースに考えられており、2週間に1回のサイクルでリリースを行っているとのことでした。大規模な改修は別ブランチで開発を行いリリースを行います
コミュニケーションについて
まだまだチームメンバーも少数なので、日々のコミュニケーションは関係者を集めてその都度行っているそうです。議論は対面で行い、決定事項はSlackに共有されるとのことでした。以下の写真は社長とエンジニアの方でのアプリケーションの細かい調整のやりとりです。この細かい調整をしっかり行っているから一つ一つのゲームのクオリティも高いのだと思います。
テストについて
APIに対するテストコードはRSpecで書かれており、カバレッジは高めにしているとのことでした。アプリ側の部分は、UIメインなのでテストコードは用意しておらず、今後ユーティリティー系のコードなどはテストコードを書いていくとのことでした。
その他
社内イベント
社内でお酒を飲んだり、卓球を行ったり、Translimit Tech Talkという社内の勉強会を行ったり、社内のコミュニケーションが仕事以外でも活発のようです。写真は卓球をやっている様子
今回登場したツール
コミュニケーション
- チャット:Slack
- リポジトリ:github
- タスク管理:Trello
- 仕様共有:GoogleDrive
自動化
テスト
- Ruby:RSpec
監視
- 監視ツール:NewReric
デザイン
- ファイル共有:Amazon WorkDocs
※トランスリミットさんでは、上記以外にも様々なツールを利用しております。上記はインタビュー時に伺った内容のものを記載しています。
まとめ
第4回目はトランスリミットさんにインタビューさせてもらいました。「世界に響くサービスをつくる」というビジョンを掲げその通りBrainWarsでは95%は海外ユーザーが利用しています。スピード最優先ということで、積極的に新しいサービスを導入しアーキテクチャの見直しを行ったり、エンジニアが面白そうなプロダクトやサービスは積極的に採用したりなど、非常にエンジニアのモチベーションも上がる環境何だと思いました。コストは非常にシビアに考えられており、クラッシュレポートツールなどもコストが掛かるなら自作していたりするそうです。そしてなんといってもムダなものを作らずChatOpsをフル活用している点が非常に特徴的でした。
最後に写真を取らせていただきました。左から松下さん、牧野さんそして私です。お忙しいところありがとうございました!!