Slide 1

Slide 1 text

複数拠点における 開発効率の維持・向上 株式会社インフィニットループ仙台支社 中野 明

Slide 2

Slide 2 text

もくじ 1. 自己紹介 2. 会社紹介 3. 開発条件 4. 開発環境 5. 開発スタイル 開発編 6. 開発スタイル リモートフォロー編 7. 開発スタイル アラート編 8. まとめ

Slide 3

Slide 3 text

1. 自己紹介 名前 : 中野 明 現在 所属 : インフィニットループ仙台支社 (4 カ月 ) 業務 : スマホゲーのサーバ開発 過去 業務 : ゲーム開発 (10 年 ) コンシューマ・スマホ・ガラケー 趣味 お菓子づくり、レザークラフト

Slide 4

Slide 4 text

2. 会社紹介 インフィニットループ仙台支社 プログラマの会社です(社内勉強会の様子)

Slide 5

Slide 5 text

3. 開発条件 開発内容 ・ それなりの規模のスマホゲーム 複数拠点 ・ 札幌 (IL) サーバサイド開発・運用 ・ 仙台 (IL) サーバサイド開発 ・ 東京 ( 他社様 ) 企画 / クライアントサイド開発 リリース ・ ほぼ毎月 特徴 ・ 遠隔多拠点での開発

Slide 6

Slide 6 text

4. 開発環境 ツール紹介

Slide 7

Slide 7 text

4. 開発環境 ツール紹介 SonarQube: 静的解析 ( 複雑度・規約違反等 )

Slide 8

Slide 8 text

4. 開発環境 ツール紹介 Knowledge: 流動的な情報 (Tips 等 ) の共有

Slide 9

Slide 9 text

5. 開発スタイル 開発編 あるプロジェクトの場合 札幌 (IL) ・ サーバサイド開発 : 10-20 人ぐらい ・ 運用 ( 含インフラ ): <3 人ぐらい ・ テスター : <5 人ぐらい 仙台 (IL) ・ サーバサイド開発 : 6 人 ( 立ち上げ半年 ) 東京 ( 他社様 ) ・ クライアントサイド開発 : <10 人ぐらい ・ ゲーム設計、企画運営 :<5 人ぐらい 職種・スキルレベル・関与期間・拠点規模が違う

Slide 10

Slide 10 text

5. 開発スタイル 開発編 拠点ではなく、敢えて個人単位でタスクを受けもつ ・ 担当で区切ることで必要な情報量を削減 ・ 個人単位なのでリソース管理がしやすい 小さく区切って小さく回す

Slide 11

Slide 11 text

5. 開発スタイル 開発編 仕様共有 ・ コントラクトで API の入出力を定義 ・ 定義に従ってクライアント・サーバアプリを実装 ・ レビューは仕様書とコントラクトの二点から実施

Slide 12

Slide 12 text

5. 開発スタイル 開発編 情報共有 ChatWork ・ 情報種別 / 目的ごとにチャンネルを設定 ・ 実装相談、企画、調査、インフラ… ・ 窓口という概念はなく、担当が直接やり取り ・ 個人チャンネルでのやりとりは行わない メンバーが見えるところでやり取りを行うため、話が複数 人の目に留まる。また、フォローに入りやすい。

Slide 13

Slide 13 text

6. 開発スタイル リモートフォロー編 個人単位の仕事においてチームメンバーは何をするか? ・ 担当が弱い部分のサポート ( 相談等 ) ・ PullRequest によるコードレビュー ・ ノウハウや Tips の展開 ・ 教育 ・ 雑談相手 ( 結構重要 ) メンバーは、個人のフォローを行う

Slide 14

Slide 14 text

6. 開発スタイル リモートフォロー編 リモートフォローと情報共有の壁 ・ 物理的な距離があるので気軽に会話できない ・ 場所ごとによって溜まっている情報が違う ・ 顔色がわからない 解決策 ・ Skype ビデオチャットの常時接続 常につなぐことによって隣にいる気分 ・ Slack による分報 普通の会話に近い環境 雑談・相談・つぶやき、何でもあり

Slide 15

Slide 15 text

6. 開発スタイル リモートフォロー編 Skype ビデオチャットの常時接続

Slide 16

Slide 16 text

6. 開発スタイル リモートフォロー編 窓口型 Head と Remote にはコミュニケーション格差がある 同じ情報量で仕事を行うことができない

Slide 17

Slide 17 text

6. 開発スタイル リモートフォロー編 チャンネル共有型 同じ箇所で会話するため、必要情報だけになりがち 通常の会話と異なる状態

Slide 18

Slide 18 text

6. 開発スタイル リモートフォロー編 Slack による分報 個々にチャンネルを作ることにより 通常の会話と同じ経路網を作り上げる

Slide 19

Slide 19 text

6. 開発スタイル リモートフォロー編 Slack による分報

Slide 20

Slide 20 text

7. 開発スタイル アラート編 アラートは、チームどころか会社で共有する事態 担当者へ飛ぶアラートメールだけでは弱い その場にいる全員が即座に反応できる仕組み ‘○○ のサーバが沈黙しまし た。各員戦闘配置について ください。’

Slide 21

Slide 21 text

8. まとめ 規模感や職種の差が大きい拠点間で 効率的な開発を行う一つの方法として ◆ 個人に重点を置いた開発にする ◆ 必要な情報量を少なくする ◆ 情報経路を絞る ◆ 可能な限りコミュニケーション格差を平準化 ・ 格差をなくすことはできない ・ 口頭の会話も可能な限り分報で  

Slide 22

Slide 22 text

9. WE’RE HIRING! インフィニットループ仙台支社ではプログラマを募集してい ます。ぜひお声がけください!