突撃!隣の開発環境 パート8【インフィニットループ編】
こんにちは!おおはしりきたけです。突撃!隣の開発環境も既に第8回目になりました。今回は、札幌に出張突撃を行ってきました!、パート8の今回は、札幌でソーシャルゲームの受託開発や、勤怠管理システム「シュキーン」の開発などを行っているインフィニットループさんに訪問してきました。インフィニットループさんは、最近拡張の為サッポロファクトリーにオフィスを移転しました。弊社の札幌オフィスで勉強会を行うときにもインフィニットループさんのオフィスをお借りしてたりします。
突撃!隣の開発環境とは
技術事例やノウハウなどは、ブログや勉強会などで共有されることが多いと思います。しかし、各社の開発環境や開発体制などは意外と共有されていないこと多いと思います。ノウハウの流出になるかもしれませんが、それ以上に、より良い開発を目指している会社さん同士で情報交換を行い、良いチーム、良いプロダクトを作っていくという志の会社さんの為の情報共有のための企画になります。開発環境や開発体制なども技術領域によっても変わってくると思いますが、この突撃!隣のシリーズでは様々な会社さんのイケてるツールの使い方や、仕事が捗る開発体制についてインタビューを行っていく予定です。
インフィニットループ紹介
どんなことをやっているのか?
インフィニットループさんは「ソースコードで何でも生み出す」というビジョンを掲げており、PHPとMySQLに特化して開発を行っている会社さんです。最近では「ブラウザ三国志」や「戦国IXA」といったソーシャルゲームの開発を主に行っており、従業員数もここ数年で一気に増加しており、札幌では非常に勢いのある開発会社さんです。また、会議室などオープンな場を提供しており、積極的に技術勉強会なども行っています。ガラケー時代に開発をしていた時にke-tai.orgというサイトに非常に助けられたのですが、このサイトを運営していたのは社長の松井さんということで縁を感じました。
いつもは、取材を申し込ませて頂いてインタビュー形式でやりとりさせて頂いているのですが、インフィニットループさんは、事前にお送りした質問をプレゼン資料に纏めて説明してくれました!非常にビックリしたのと同時に、札幌の方のおもてなし力の高さに感動を覚えました。何度か札幌で勉強会を開催した時に思ったのですが、札幌のエンジニアの方は、おもてなし力が非常に高いと感じました。
その時のプレゼン資料(改訂版)をこちらに公開させていただきます。
開発環境について
まずは、インフィニットループさんの開発環境について色々と伺っていこうかと思います。
開発端末
入社時に希望のPCをWindows、Mac、Linuxから選択できることで、特筆すべきは、ディスプレイが1人3枚提供されるということです。何故3枚なのかと伺った所、2枚は開発用、1枚はチャット専用とのことでした。主に東京の仕事をやっているということで、基本的にはチャットを使ったお仕事が多いので、チャットのログを表示する専用のディスプレイを用意することにより、画面の切替も少なくすみますし、開発用とディスプレイを分けることで視点の切り替えも非常にしやすいのかなと思いました。
コミュニケーションツール
プロジェクトを円滑にするために様々なコミュニケーションツールを使うことになります。チャットやチケットの管理、仕様の共有などどのように行っているのか聞いてみました。
チャットツール
Skypeをメインに利用しているということでしたが、お客さんに合わせChatWork、HipChat、IRC、Slackなど様々なチャットツールを利用しているということでした。東京都の仕事が多く、チャット中心に仕事が回っていると入っても過言ではないです。その為、上述した通りチャット専用のディスプレイが用意されていたりします。
プロジェクト管理ツール
こちらもプロジェクトによって様々ですが、backlog、gitlab、Redmine、Trelloなどでチケットの管理をしてプロジェクトを進めていくということでした。また、社内ではポストイット等でタスクカンバンでの管理も行っているチームも有りました。
仕様の共有方法
お客様毎に共有方法は異なっており、チケットに仕様を書いて共有することもあれば、Excelなどのドキュメントで仕様を記載することもあるということです。社内ではチャットを使って共有することも多いそうですが、文字だけでは伝わりにくかったりするので、Gyazoという画面共有用のツールなどを使うことにより、効率よく仕様の共有を行っているとのことでした。
社内勉強会などで、技術的なスキルの共有も行っているとのことでした。写真はインフラ道場というインフラに特化した社内勉強会です。
リポジトリ
8割のプロジェクトでgitを利用しており、gitlabを使っているチームは、github flow的運用を行っており。ブランチを作ってMerge Requestを作成、マージ前にコードレビューを依頼投げて必ずレビューを行うようにしているということでした。公開、非公開合わせ100以上のリポジトリがあるということでした。また2割程度はSubversionなども利用しているプロジェクトはあるということでした。
自動化ツール
CI環境は、基本的にJenkinsを使っている所が多く、アセットバンドルやパッケージのビルド、デプロイ、VMセットアップやVMミドルウェアのアップデートに利用しているということで、社内のプロジェクトでは7割程度利用されているということでした。
写真は、エラーが発生すると赤くなる回転灯です。正常時は緑で、エラー時は赤くなります。また、「マザーゆっくり」というSkypebotはエラー発生状況について話をしてくれます
開発体制
開発チーム
取材時の会社の人数構成は以下でした。
- プログラマ:76名
- インフラ/運用:10名
- マネージャー職:8名
- テスト技術者:5名
- 事務:2名
- デザイナー:2名
社長の松井さんもプログラマーですし、エンジニアの比率が非常に高い会社さんということがわかります。チームは全部で13個あるとのことでした。
開発プロセスについて
朝は9時〜10時に出社し、シュキーンで出勤登録を行います。その後のチーム運営はチームリーダーの裁量にお任せしているということなので、開発プロセスもチームごとに朝会、夕会をやっているチームがいたり、計画を立ててタスクをこなしていくチームがいたりなどします。リーダーは他チームの状況などを把握するため、Skypeグループや、週1のリーダーミーティングを行って情報共有を行っているということでした。
写真は、自社サービスのシュキーン。隣に松岡修造カレンダーがあるのが印象的ですね。弊社でも勤怠管理システムの横に松岡修造カレンダーがあります。
コミュニケーションについて
ほぼ全てSkype(チャット)でコミュニケーションをとっているので、チャット中心の働き方を実践されています。ただ、チャットだけでは顔が見えないので最初の1回めは必ず会ったりしているとのことでした。また、チャットと対面のコミュニケーションは異なるので、チャットでのコミュニケーションの注意点を社内のGoogleSiteに公開しているということでした。何点か重要なポイントを教えていただきました。
○チャットコミュニケーションのポイント
- 主語を抜かない
- 無言で待たせない
- いつも以上に気をつけよう
日本では「あうんの呼吸」といった言葉がありますが、これはよっぽど洗練されたチーム出ない限り難しいものだと思っています。コミュニケーションとひとくくりにしても、言葉のコミュニケーションと文字のコミュニケーションと言うのは全然違いますし、文字のコミュニケーションも、メールやチャットなど方法で異なります。最近でこそリモートワークというような働き方が増えてきていますが、インフィニットループさんでは昔から東京とチャットを使ってやりとりをすることが多いため、当たり前のようにチャットを使った働き方ができていると感じました。
写真は、執務室スペース。チャットで頻繁に会話が行われているため、業務中の執務室は非常に静かでした。
テストについて
PHPがメインなので、ユニットテスト系では、PHPUnitを利用しており、その他、BDD系のテスティングフレームワークであるCodeceptionなども利用して自動化を行っているプロジェクトもあるそうですが、人力でのテストを行っているとのことでした。専門のテスト技術者もおり、受託開発が主流のため、テストについては非常に丁寧にやっているように感じました。
その他
インフィニットループさんでは、社員のコミュニケーション活性化や満足度向上のために以下のような施策を行っているとのことでした。
OpenIL
元々、社内でやっていた技術共有勉強会を社外の人にも向けた形で、誰でも参加できる勉強会を開催しています。ネタも様々でCodeceptionの話やNode.jsだったり、D言語の話だったり多岐にわたっています。2015年8月28日(金)にもOpenIL Vol4が開催されるとのことです。
社内福利厚生
以下の写真にあるように、ミニ四駆コースや、アーケードゲームなど出来る場所(昼休みと業務終了後のみ開放)や、マッサージチェア、全自動雀卓、うまい棒食べ放題、筋トレマシンなど様々な福利厚生の場所が、社内に提供されています。
今回登場したツール
コミュニケーション
- チャット:Skype
- チャット:ChatWork
- チャット:HipChat
- チャット:Slack
- リポジトリ:gitlab
- リポジトリ:Subversion
- タスクカンバン:ポスト・イット
- 画面共有:Gyazo
自動化
テスト
- PHP:PHPUnit
- PHP:Codeception
※インフィニットループさんでは、上記以外にも様々なツールを利用しております。上記はインタビュー時に伺った内容のものを記載しています。
まとめ
第8回目は、インフィニットループさんに突撃させてもらいました。札幌で今イケてる会社さんは?とウチの社員に聞いた所、みんな口をそろえてインフィニットループさんという名前をあげていました。取材して改めてわかりましたが、札幌で東京の仕事をやるための工夫や、札幌のエンジニアを採用、教育していくための施策など、非常に参考になりました。急激に人が増えると統制取れなくなることもありますが、コミュニケーションの取り方、教育体制など整っているため、規模が大きくなった今でも安定した開発力を提供できているのだと思います。
最後に写真を取らせていただきました。左から山田さん、名古屋さん、社長の松井さん、そして私です。お忙しいところありがとうございました!!
参考リンク
http://www.infiniteloop.co.jp/