Slide 1

Slide 1 text

Copyright 2019 DELiGHTWORKS. モバイルゲーム運営における 認知資源をより有効活⽤していくための取り組み ディライトワークス株式会社 技術部 倉持和匡

Slide 2

Slide 2 text

Copyright 2019 DELiGHTWORKS. ⾃⼰紹介 2 倉持 和匡 ディライトワークス株式会社 技術部所属 2018年9⽉⼊社 英語版『Fate/Grand Order』 エンジニアリーダー

Slide 3

Slide 3 text

Copyright 2019 DELiGHTWORKS. 英語版『Fate/Grand Order』 3 ⽇本でのリリースから2年後の 2017年6⽉にアメリカとカナダで配信開始 2018年4⽉からはシンガポール、タイ、 フィリピン、ベトナム、オーストラリアでも配信

Slide 4

Slide 4 text

Copyright 2019 DELiGHTWORKS. 4 本⽇のお話

Slide 5

Slide 5 text

Copyright 2019 DELiGHTWORKS. 5 重要かつ緊急 重要だが緊急でない 重要でないが緊急 重要でなく緊急でない ⾼ 緊急度 低 ⾼ 重 要 度 低 ⻘⾊部分の仕事の対応⼒を上げるには?

Slide 6

Slide 6 text

Copyright 2019 DELiGHTWORKS. 6 ⽇々課題に感じていること

Slide 7

Slide 7 text

Copyright 2019 DELiGHTWORKS. 7 サービスを運営していると ⽇々やるべきことが増えていく

Slide 8

Slide 8 text

Copyright 2019 DELiGHTWORKS. 8 ただ出社するだけで 昨⽇まで存在していなかった 仕事が次々と⽣まれてくる..︕

Slide 9

Slide 9 text

Copyright 2019 DELiGHTWORKS. 9 既にあるタスクは そのままに 新しいタスクが増える

Slide 10

Slide 10 text

Copyright 2019 DELiGHTWORKS. 10 昨⽇までは 存在していなかった 仕事の具体例

Slide 11

Slide 11 text

Copyright 2019 DELiGHTWORKS. 11 GooglePlay,AppStore からの義務化 昨⽇までは存在していなかった仕事

Slide 12

Slide 12 text

Copyright 2019 DELiGHTWORKS. 12 ◯⽉までに新バージョンの SDKの使⽤が義務化 昨⽇までは存在していなかった仕事

Slide 13

Slide 13 text

Copyright 2019 DELiGHTWORKS. 13 ポリシーが変更されたので ◯⽉までに対応必須 昨⽇までは存在していなかった仕事

Slide 14

Slide 14 text

Copyright 2019 DELiGHTWORKS. 14 変更していない ストア掲載の スクリーンショットが 原因でリジェクト 昨⽇までは存在していなかった仕事

Slide 15

Slide 15 text

Copyright 2019 DELiGHTWORKS. 15 某国から⼤量の BOTアクセスが…… 昨⽇までは存在していなかった仕事

Slide 16

Slide 16 text

Copyright 2019 DELiGHTWORKS. 16 Gitの操作ができなくなりました…… マシンの調⼦が悪くなりました…… etc 相談対応 昨⽇までは存在していなかった仕事

Slide 17

Slide 17 text

本当に次々と 何でも起こる..

Slide 18

Slide 18 text

Copyright 2019 DELiGHTWORKS. 18 想定外の仕事が 発⽣するのは 受け⼊れるしかない

Slide 19

Slide 19 text

Copyright 2019 DELiGHTWORKS. 19 それらは⼤抵の場合 放置できず緊急度が⾼い

Slide 20

Slide 20 text

Copyright 2019 DELiGHTWORKS. 20 普段抱えている業務に ⾼い集中⼒や注意⼒を要求する ものがあると

Slide 21

Slide 21 text

Copyright 2019 DELiGHTWORKS. 21 予期せず⽣まれた仕事に 対処する余裕が無くなる

Slide 22

Slide 22 text

Copyright 2019 DELiGHTWORKS. 22 ⾼い集中⼒や注意⼒を 要求する作業は 認知資源を多く消費する

Slide 23

Slide 23 text

認知資源

Slide 24

Slide 24 text

・⼼理学⽤語 ・注意や集中を要する活動をすることで消費される 脳が使えるリソースを指す概念 ・1⽇に使える総量は有限

Slide 25

Slide 25 text

Copyright 2019 DELiGHTWORKS. 25 時間の無駄遣いは 意識されているが

Slide 26

Slide 26 text

Copyright 2019 DELiGHTWORKS. 26 認知資源の無駄遣いは あまり意識されていないのでは︖

Slide 27

Slide 27 text

Copyright 2019 DELiGHTWORKS. 27 認知資源を浪費している 仕事を⾒つけて改善する

Slide 28

Slide 28 text

Copyright 2019 DELiGHTWORKS. 改善事例 〜⽬次〜 28 プルリク リマインダー メンテナンススケジュール作成ツール ダウンロードサイズ肥⼤化 検出の⾃動化 リリースブランチ間マージの補助ツール

Slide 29

Slide 29 text

プルリク リマインダー

Slide 30

Slide 30 text

Copyright 2019 DELiGHTWORKS. プルリクの運⽤ 30 GitHub Enterpriseでバージョン管理 全ての修正がプルリク,レビュー対象 エンジニア全員でレビュー

Slide 31

Slide 31 text

Copyright 2019 DELiGHTWORKS. 31 退勤までに忘れずに レビューしてもらいたいとき、 皆さんどうしてますか︖

Slide 32

Slide 32 text

Copyright 2019 DELiGHTWORKS. 改善前のレビュー依頼⽅法 32 未解決のプルリクがあるか確認して、 まだレビューしていない⼈に チャットで呼びかけたり、、 歩き回って声がけしたり。。。

Slide 33

Slide 33 text

Copyright 2019 DELiGHTWORKS. 33 なんとかして この作業をやらずに済ませる ⽅法は無いか..

Slide 34

Slide 34 text

リマインダー ツールを作ろう

Slide 35

Slide 35 text

Copyright 2019 DELiGHTWORKS. プルリク リマインダー 35

Slide 36

Slide 36 text

Copyright 2019 DELiGHTWORKS. リマインダーツールの作成 36 GitHubが提供する コマンドラインツール 「Hub」を使⽤ https://hub.github.com/ https://github.com/github/hub

Slide 37

Slide 37 text

Copyright 2019 DELiGHTWORKS. リマインダーツールの作成 37 hub prコマンドで未消化のプルリクを出⼒ >hub pr list -f “%pC%>(8)%i%Creset %t% l %cr %n %U %n 残りレビュアー :%rs" 未消化のプルリクの『番号』『タイトル』『作成からの経過時間』 『まだ⾒てないレビュアーは誰か』が全て出⼒

Slide 38

Slide 38 text

Copyright 2019 DELiGHTWORKS. リマインダーツールの作成 38 Jenkinsで毎⽇朝晩2回実⾏ Slackチャンネルにメンション付きで通知

Slide 39

Slide 39 text

Copyright 2019 DELiGHTWORKS. 39 プルリクの リマインド作業からの解放

Slide 40

Slide 40 text

メンテナンス スケジュール 作成ツール

Slide 41

Slide 41 text

Copyright 2019 DELiGHTWORKS. メンテナンス作業について 41 サービスの⼀時停⽌ サーバープログラムやデータの更新 新バージョンアプリの公開 お知らせの更新 etc

Slide 42

Slide 42 text

Copyright 2019 DELiGHTWORKS. メンテナンス作業について 42 メンテナンス作業に関わる⼈数 10⼈程度 定期メンテナンスの作業項⽬数 30〜40項⽬程度 数分〜数⼗分の単位で各作業が順番に進⾏

Slide 43

Slide 43 text

Copyright 2019 DELiGHTWORKS. 実際のメンテナンススケジュールの⼀部(参考) 43 作業例 13:20 [Server] マスターデータを本番環境に反映する(約5分)担当〇〇

Slide 44

Slide 44 text

Copyright 2019 DELiGHTWORKS. 44 スケジュール作成の 問題点

Slide 45

Slide 45 text

Copyright 2019 DELiGHTWORKS. 問題点1 45 過去のスケジュールの コピーから作成 (作業記載漏れのリスク)

Slide 46

Slide 46 text

Copyright 2019 DELiGHTWORKS. コピペスケジュールでの失敗談…(1/2) 46 メンテナンス無しで始まるイベントがあり、 過去にあった類似の予定をコピーして作成 コピー元の予定には無かった 『ファイルアップロード作業』が実は 今回は必要だった..

Slide 47

Slide 47 text

Copyright 2019 DELiGHTWORKS. コピペスケジュールでの失敗談…(2/2) 47 事前に本番環境にアップロードしておくのを忘れ.. 必要なファイルが本番環境に上がってない.. イベント開始直後にゲームが遊べなくなり、 ランチから慌てて会社に戻って対応することに…

Slide 48

Slide 48 text

Copyright 2019 DELiGHTWORKS. 問題点2 48 各作業の開始時間は すべて⼿計算..!

Slide 49

Slide 49 text

Copyright 2019 DELiGHTWORKS. 問題点3 49 ⾃分の作業があることに 気づきにくい

Slide 50

Slide 50 text

Copyright 2019 DELiGHTWORKS. 50 これらの問題を解決するため 何を⾏ったか

Slide 51

Slide 51 text

Copyright 2019 DELiGHTWORKS. 改善策 51 Wikiへの直書きと時間の⼿計算を廃⽌ Googleスプレッドシートで予定を管理 コピペではなくテンプレート化 Google Apps Script(GAS)を使った ツールを作成

Slide 52

Slide 52 text

Copyright 2019 DELiGHTWORKS. GASで実装した機能 52 各作業の開始時間の⾃動計算 メンテナンス専⽤カレンダーに予定を登録 作業担当者への招待 (リマインド機能) Wiki貼り付け⽤の全予定テキスト出⼒機能

Slide 53

Slide 53 text

Copyright 2019 DELiGHTWORKS. スプレッドシートでの⼊⼒イメージ 53 開始時間 所要時間(分) カテゴリ 担当者 作業項目 3日前作業 事前作業 〇〇 アセットのアップロード 自動計算 5 メンテナンス作業 〇〇 サーバー更新 自動計算 15 メンテナンス作業 〇〇 アプリ公開 1日後作業 事後作業 〇〇 メンテナンス開始日時 2019/8/29 14:15 開始時間計算ボタン 予定登録ボタン テキスト出力ボタン 予定削除ボタン

Slide 54

Slide 54 text

Copyright 2019 DELiGHTWORKS. 全ての問題を解決︕ 54 過去のスケジュールのコピーから作成 各作業の開始時間はすべて⼿計算..! ⾃分の作業があることに気づきにくい

Slide 55

Slide 55 text

ダウンロードサイズ肥⼤化 検出の⾃動化

Slide 56

Slide 56 text

Copyright 2019 DELiGHTWORKS. ダウンロードサイズの肥⼤化 56 アプリがダウンロードするファイルは 開発中に増えていく CDNのネットワーク帯域が 逼迫しないよう備える必要がある

Slide 57

Slide 57 text

Copyright 2019 DELiGHTWORKS. ダウンロードサイズの肥⼤化 57 あらかじめダウンロードサイズを⾒積もる CDNの上限緩和申請が必要な場合がある インフラチームはリリースの2週間前に 申請が必要なサイズかを把握しておきたい

Slide 58

Slide 58 text

Copyright 2019 DELiGHTWORKS. ダウンロードサイズの計算 58 追加ダウンロードサイズの計算が必要 上限緩和申請を出す必要があるか 事前に予測することは困難

Slide 59

Slide 59 text

Copyright 2019 DELiGHTWORKS. 改善前の問題点 59 計算ツールはあるが毎度⼿動実⾏だった ツール実⾏に必要なパラメータ 準備にひと⼿間かかる 2週間前に実⾏することを覚えて おかなければならない

Slide 60

Slide 60 text

Copyright 2019 DELiGHTWORKS. 失敗談… 60 上限緩和申請が必要と判断される ダウンロードサイズの数倍に 膨らんでいたがアラートを上げ忘れていた そのままイベント当⽇を迎える…

Slide 61

Slide 61 text

Copyright 2019 DELiGHTWORKS. 61 どういった改善を⾏ったか

Slide 62

Slide 62 text

Copyright 2019 DELiGHTWORKS. どういった改善を⾏ったか 62 毎⽇Jenkinsで計算するツールを⽤意 計算結果をSlackチャンネルに通知 ⼀定サイズを超えたら インフラチームにメンション付きで通知

Slide 63

Slide 63 text

Copyright 2019 DELiGHTWORKS. 改善を⾏った結果 63 ダウンロードサイズ計算の⼿間から 解放された︕ リリースの2週間前に実施することを 覚えておく必要がなくなった︕

Slide 64

Slide 64 text

ブランチ間マージ補助ツール(計画中)

Slide 65

Slide 65 text

Copyright 2019 DELiGHTWORKS. 複数ブランチでの並⾏開発 65 1~2ヶ⽉先に配信予定のイベントの 開発とQAが複数並⾏して進⾏ それぞれGitのブランチを分けて開発

Slide 66

Slide 66 text

Copyright 2019 DELiGHTWORKS. リリースブランチ間マージについて 66 各ブランチで⾏われた修正は 次にリリース予定のブランチにも反映

Slide 67

Slide 67 text

Copyright 2019 DELiGHTWORKS. マージの必要性と頻度の⾼さ 67 修正内容を次バージョンでも反映させる ためマージが必要 コミット差分をチェックしてマージする 頻度はほぼ毎⽇

Slide 68

Slide 68 text

Copyright 2019 DELiGHTWORKS. ブランチ間マージ作業での問題点1 68 コミット差分チェックから マージプルリク作成まで全て⼿動

Slide 69

Slide 69 text

Copyright 2019 DELiGHTWORKS. ブランチ間マージ作業での問題点2 69 ⼀部ファイルはコンフリクトする 場合があり解決が必要

Slide 70

Slide 70 text

Copyright 2019 DELiGHTWORKS. ブランチ間マージ作業での問題点3 70 並⾏開発している全ての ブランチ間でマージが必要

Slide 71

Slide 71 text

Copyright 2019 DELiGHTWORKS. ブランチ間マージ作業での問題点4 71 この煩雑なブランチ間の マージ作業は(ほぼ) 毎⽇⾏う必要がある

Slide 72

Slide 72 text

Copyright 2019 DELiGHTWORKS. 72 どのような改善が⾏えるか

Slide 73

Slide 73 text

Hubを使ってプルリク作成を⾃動化

Slide 74

Slide 74 text

Copyright 2019 DELiGHTWORKS. プルリク作成の⾃動化 74 Hub でプルリク作成が可能 >hub pull-request コマンドで作成 プルリクが0件の時=マージ可能な時、 マージプルリクを⾃動で作成する

Slide 75

Slide 75 text

Copyright 2019 DELiGHTWORKS. 75 これできっと楽になれる

Slide 76

Slide 76 text

Copyright 2019 DELiGHTWORKS. 最後に 76 何のために認知資源を節約するのか?

Slide 77

Slide 77 text

Copyright 2019 DELiGHTWORKS. 77 重要かつ緊急 (予期せず発生するタスク) 重要だが緊急でない 重要でないが緊急 重要でなく緊急でない ⾼ 緊急度 低 ⾼ 重 要 度 低 予期せず発⽣するタスクに対処できる余裕を⽣み出す

Slide 78

Slide 78 text

Copyright 2019 DELiGHTWORKS. 78 重要かつ緊急 (予期せず発生するタスク) 重要だが緊急でない (準備, 計画, 挑戦,成長) 重要でないが緊急 重要でなく緊急でない ⾼ 緊急度 低 ⾼ 重 要 度 低 計画的な仕事、⾃⼰成⻑のための余裕を⽣み出す

Slide 79

Slide 79 text

Copyright 2019 DELiGHTWORKS.