リアズがひた隠しにしてきた開発環境を大公開!

2016.11.22 / 
こんにちは、リアズエンジニアチームの和田と申します。
リアズの技術面についても広く知って頂きたいと思い、エンジニアブログを始めました。どうぞよろしくお願いいたします。
 
まず、タイトルは釣りです。特にひた隠しにはしていませんが、今まで発信することもなかったのでリアズの開発環境について書いていこうと思います。

どんなことをやっているのか?

私たちリアズは「本物のエンターテイメントと驚きを!」をモットーに、ライブチャットやSNSアプリなどコミュニケーションを軸としたサービスを展開しています。
 
エンジニアはこれらの機能拡張を軸として、新規展開やモダンな構造に刷新といったことも行っています。
ビジネス規模は多少の上下を繰り返していますが年スパンでは毎年拡大していまして、この1年でエンジニアとデザイナー併せて9名増員しています。
 
自社開発と協力会社様のソリューションをハイブリッドで展開しています。
ソースコードを買い取って内製化といった取り組みも行っています。 

言語・インフラ

サーバーはデータセンター設置がメインですが、AWSなどクラウドへの切り替えも進んでいます。完全にAWSに移行した事業もあります。そうでない事業でも、S3やSNS、Lambdaなどマネージドサービスを積極的に使っています。
 
言語としては、サーバーサイドはPHPが主軸ですが、サーバーサイドJavaや、Android Javaといった領域も増えてきています。
今となっては他の業種であまり見られないですが、パソコン向け発祥のライブチャットはFlashの技術を使ったライブストリーミングの双方向リアルタイムコミュニケーションですので、ActionScriptでの開発も現役バリバリで行っております。WebRTCへの移行も進めていますが、完全な移行が終わるまではこれからも頑張ってもらわないといけない言語です。
 
PHP フレームワーク Laravel
PHPについてはフレームワークとしてLaravelを採用したシステムに刷新を進めている真っ最中です!そろそろ第1期が終わる見込みです。
 
ちなみに使うエディタ・IDEは自由です。
アンケートを取ったところ
・Sublime Text:4票
・PHP Storm:4票
・AndroidStudio:3票
・Visual Studio Code:2票
・XCode:2票
・Brackets:1票
・NetBeans:1票
(複数投票あり)
 
なお、フロントエンドになるとAtomが多いようです。
 

開発端末

リアズ開発環境 - 社内風景
人によって、iMacだったりMacBook Airだったり、MacBook Proだったり時期でばらついていますが、基本的にMacを使用しています。
モニタはデュアルが標準です。トリプルモニタを導入し、縦表示モニタを使用しているエンジニアもいます。ソースコードの一覧性が上がって良いとの感想です。
デザインと密接に関わるエンジニアは27inchのデュアルだったり、5KディスプレイのiMacだったりします。5Kの場合、既存解像度向けのものが小さく表示されるという贅沢な悩みもあるようですが…笑

コミュニケーションツール・プロジェクト管理ツール

slack_rgb
チャットはSlackを活用しています。
従来はSkypeでやりとりしていましたが、どうしても1対1のチャットになりがちで、それまでの経緯が他のメンバーに分かりにくいという難点がありました。Slackでチャンネルでの会話がメインとなり、議論の透明度が上がって把握しやすくなりました。今では雨後の筍のように案件単位でチャンネルが作られています。UIが英語ですが、ビジネスサイドのメンバーもそう期間をおかず慣れて積極的に使ってくれています。
PHPのエラーログやNewrelicのアラートなどをSlackで受け取ることによって、以前より異常に気付きやすくなり重宝しています。Chatworkも一部で使用していましたが、インテグレーションが物足りなく開発側では使っていません。
 
nulab Backlog Atlassian JIRA
プロジェクト管理ツールにはBacklogをメインに使っています。分かりやすいインターフェイスなので導入しやすく、非エンジニアにも親しみやすいので助かっています。局所的にTrelloも使う場合もあります。
それ以前は社内SNSのメールでやりとりしていました…。「 あれ?あの案件を依頼っていつ来てたっけ?」「誰のところで止まってたっけ?」と状態がままありましたが今考えると恐ろしいですね ^^;
 
より複雑化した案件や大型化したプロジェクトではBacklogの限界を感じ始めているので、JIRAの導入を検討しています。
ホワイトボードとふせんも活用しています。

ホワイトボード
プロジェクト終盤を迎え、複雑な進化をとげたホワイトボード

 
Confluence
要件をまとめたり開発ドキュメントをまとめたりするのは、今まで各人でGoogleドライブやEvernote、ローカルのテキストファイルなどでバラバラになっていましたが、現在ではConfluenceで一元化するようになってきています。

Gitリモートリポジトリ

Bitbucket
GitリポジトリはBitbucketを利用しています。5ユーザーまではプライベートリポジトリでも無料ということでありがたく活用させて頂きました。スモールスタートには嬉しいですね。
現在はユーザー数も増えてきたので、リポジトリオーナーをチームに設定した有料プランに移行しています。
 
基本的にプルリクエストを上げてレビューを行っています。
レビューは事業によって異なりますが、非同期のレビューではなく、席に集まってチームでレビューする行うチームもあります。1日1回時間を決めて3~4人で集まって、プルリクエストを上げた人が説明をして、その他の人が質問や指摘を行うという形をとっています。xxさんのレビュー待ちでマージが遅くなる、プルリクが溜まるという状況を改善するために出てきたTryとして実践しています。
 

ここまでご覧頂いて分かるように、様々なサービスやツールに移行中、移行したてということが多く、レガシーな環境からモダンな環境へ脱皮途中です。
リアズでは、一緒にレガシー環境を脱皮し、年商100億円、150億円と成長させていく仲間を募集しています。ご興味ある方はぜひお気軽に面談にお越しください。Skypeなどでの遠隔面談も対応しています。
 
次回は、開発体制や開発プロセス、その他のツールについてご紹介する予定です。