Copyright 2019 DELiGHTWORKS.モバイルゲーム運営における認知資源をより有効活⽤していくための取り組みディライトワークス株式会社技術部 倉持和匡
View Slide
Copyright 2019 DELiGHTWORKS.⾃⼰紹介2倉持 和匡ディライトワークス株式会社 技術部所属2018年9⽉⼊社英語版『Fate/Grand Order』エンジニアリーダー
Copyright 2019 DELiGHTWORKS.英語版『Fate/Grand Order』3⽇本でのリリースから2年後の2017年6⽉にアメリカとカナダで配信開始2018年4⽉からはシンガポール、タイ、フィリピン、ベトナム、オーストラリアでも配信
Copyright 2019 DELiGHTWORKS. 4本⽇のお話
Copyright 2019 DELiGHTWORKS. 5重要かつ緊急 重要だが緊急でない重要でないが緊急 重要でなく緊急でない⾼ 緊急度 低⾼重要度低⻘⾊部分の仕事の対応⼒を上げるには?
Copyright 2019 DELiGHTWORKS. 6⽇々課題に感じていること
Copyright 2019 DELiGHTWORKS. 7サービスを運営していると⽇々やるべきことが増えていく
Copyright 2019 DELiGHTWORKS. 8ただ出社するだけで昨⽇まで存在していなかった仕事が次々と⽣まれてくる..︕
Copyright 2019 DELiGHTWORKS. 9既にあるタスクはそのままに新しいタスクが増える
Copyright 2019 DELiGHTWORKS. 10昨⽇までは存在していなかった仕事の具体例
Copyright 2019 DELiGHTWORKS. 11GooglePlay,AppStoreからの義務化昨⽇までは存在していなかった仕事
Copyright 2019 DELiGHTWORKS. 12◯⽉までに新バージョンのSDKの使⽤が義務化昨⽇までは存在していなかった仕事
Copyright 2019 DELiGHTWORKS. 13ポリシーが変更されたので◯⽉までに対応必須昨⽇までは存在していなかった仕事
Copyright 2019 DELiGHTWORKS. 14変更していないストア掲載のスクリーンショットが原因でリジェクト昨⽇までは存在していなかった仕事
Copyright 2019 DELiGHTWORKS. 15某国から⼤量のBOTアクセスが……昨⽇までは存在していなかった仕事
Copyright 2019 DELiGHTWORKS. 16Gitの操作ができなくなりました……マシンの調⼦が悪くなりました……etc 相談対応昨⽇までは存在していなかった仕事
本当に次々と何でも起こる..
Copyright 2019 DELiGHTWORKS. 18想定外の仕事が発⽣するのは受け⼊れるしかない
Copyright 2019 DELiGHTWORKS. 19それらは⼤抵の場合放置できず緊急度が⾼い
Copyright 2019 DELiGHTWORKS. 20普段抱えている業務に⾼い集中⼒や注意⼒を要求するものがあると
Copyright 2019 DELiGHTWORKS. 21予期せず⽣まれた仕事に対処する余裕が無くなる
Copyright 2019 DELiGHTWORKS. 22⾼い集中⼒や注意⼒を要求する作業は認知資源を多く消費する
認知資源
・⼼理学⽤語・注意や集中を要する活動をすることで消費される脳が使えるリソースを指す概念・1⽇に使える総量は有限
Copyright 2019 DELiGHTWORKS. 25時間の無駄遣いは意識されているが
Copyright 2019 DELiGHTWORKS. 26認知資源の無駄遣いはあまり意識されていないのでは︖
Copyright 2019 DELiGHTWORKS. 27認知資源を浪費している仕事を⾒つけて改善する
Copyright 2019 DELiGHTWORKS.改善事例 〜⽬次〜28プルリク リマインダーメンテナンススケジュール作成ツールダウンロードサイズ肥⼤化 検出の⾃動化リリースブランチ間マージの補助ツール
プルリク リマインダー
Copyright 2019 DELiGHTWORKS.プルリクの運⽤30GitHub Enterpriseでバージョン管理全ての修正がプルリク,レビュー対象エンジニア全員でレビュー
Copyright 2019 DELiGHTWORKS. 31退勤までに忘れずにレビューしてもらいたいとき、皆さんどうしてますか︖
Copyright 2019 DELiGHTWORKS.改善前のレビュー依頼⽅法32未解決のプルリクがあるか確認して、まだレビューしていない⼈にチャットで呼びかけたり、、歩き回って声がけしたり。。。
Copyright 2019 DELiGHTWORKS. 33なんとかしてこの作業をやらずに済ませる⽅法は無いか..
リマインダーツールを作ろう
Copyright 2019 DELiGHTWORKS.プルリク リマインダー35
Copyright 2019 DELiGHTWORKS.リマインダーツールの作成36GitHubが提供するコマンドラインツール「Hub」を使⽤https://hub.github.com/https://github.com/github/hub
Copyright 2019 DELiGHTWORKS.リマインダーツールの作成37hub prコマンドで未消化のプルリクを出⼒>hub pr list -f “%pC%>(8)%i%Creset %t% l %cr %n %U %n 残りレビュアー:%rs"未消化のプルリクの『番号』『タイトル』『作成からの経過時間』『まだ⾒てないレビュアーは誰か』が全て出⼒
Copyright 2019 DELiGHTWORKS.リマインダーツールの作成38Jenkinsで毎⽇朝晩2回実⾏Slackチャンネルにメンション付きで通知
Copyright 2019 DELiGHTWORKS. 39プルリクのリマインド作業からの解放
メンテナンス スケジュール作成ツール
Copyright 2019 DELiGHTWORKS.メンテナンス作業について41サービスの⼀時停⽌サーバープログラムやデータの更新新バージョンアプリの公開お知らせの更新 etc
Copyright 2019 DELiGHTWORKS.メンテナンス作業について42メンテナンス作業に関わる⼈数10⼈程度定期メンテナンスの作業項⽬数30〜40項⽬程度数分〜数⼗分の単位で各作業が順番に進⾏
Copyright 2019 DELiGHTWORKS.実際のメンテナンススケジュールの⼀部(参考)43作業例 13:20 [Server] マスターデータを本番環境に反映する(約5分)担当〇〇
Copyright 2019 DELiGHTWORKS. 44スケジュール作成の問題点
Copyright 2019 DELiGHTWORKS.問題点145過去のスケジュールのコピーから作成(作業記載漏れのリスク)
Copyright 2019 DELiGHTWORKS.コピペスケジュールでの失敗談…(1/2)46メンテナンス無しで始まるイベントがあり、過去にあった類似の予定をコピーして作成コピー元の予定には無かった『ファイルアップロード作業』が実は今回は必要だった..
Copyright 2019 DELiGHTWORKS.コピペスケジュールでの失敗談…(2/2)47事前に本番環境にアップロードしておくのを忘れ..必要なファイルが本番環境に上がってない..イベント開始直後にゲームが遊べなくなり、ランチから慌てて会社に戻って対応することに…
Copyright 2019 DELiGHTWORKS.問題点248各作業の開始時間はすべて⼿計算..!
Copyright 2019 DELiGHTWORKS.問題点349⾃分の作業があることに気づきにくい
Copyright 2019 DELiGHTWORKS. 50これらの問題を解決するため何を⾏ったか
Copyright 2019 DELiGHTWORKS.改善策51Wikiへの直書きと時間の⼿計算を廃⽌Googleスプレッドシートで予定を管理コピペではなくテンプレート化Google Apps Script(GAS)を使ったツールを作成
Copyright 2019 DELiGHTWORKS.GASで実装した機能52各作業の開始時間の⾃動計算メンテナンス専⽤カレンダーに予定を登録作業担当者への招待 (リマインド機能)Wiki貼り付け⽤の全予定テキスト出⼒機能
Copyright 2019 DELiGHTWORKS.スプレッドシートでの⼊⼒イメージ53開始時間 所要時間(分) カテゴリ 担当者 作業項目3日前作業 事前作業 〇〇 アセットのアップロード自動計算 5 メンテナンス作業 〇〇 サーバー更新自動計算 15 メンテナンス作業 〇〇 アプリ公開1日後作業 事後作業 〇〇メンテナンス開始日時2019/8/29 14:15開始時間計算ボタン予定登録ボタンテキスト出力ボタン予定削除ボタン
Copyright 2019 DELiGHTWORKS.全ての問題を解決︕54過去のスケジュールのコピーから作成各作業の開始時間はすべて⼿計算..!⾃分の作業があることに気づきにくい
ダウンロードサイズ肥⼤化検出の⾃動化
Copyright 2019 DELiGHTWORKS.ダウンロードサイズの肥⼤化56アプリがダウンロードするファイルは開発中に増えていくCDNのネットワーク帯域が逼迫しないよう備える必要がある
Copyright 2019 DELiGHTWORKS.ダウンロードサイズの肥⼤化57あらかじめダウンロードサイズを⾒積もるCDNの上限緩和申請が必要な場合があるインフラチームはリリースの2週間前に申請が必要なサイズかを把握しておきたい
Copyright 2019 DELiGHTWORKS.ダウンロードサイズの計算58追加ダウンロードサイズの計算が必要上限緩和申請を出す必要があるか事前に予測することは困難
Copyright 2019 DELiGHTWORKS.改善前の問題点59計算ツールはあるが毎度⼿動実⾏だったツール実⾏に必要なパラメータ準備にひと⼿間かかる2週間前に実⾏することを覚えておかなければならない
Copyright 2019 DELiGHTWORKS.失敗談…60上限緩和申請が必要と判断されるダウンロードサイズの数倍に膨らんでいたがアラートを上げ忘れていたそのままイベント当⽇を迎える…
Copyright 2019 DELiGHTWORKS. 61どういった改善を⾏ったか
Copyright 2019 DELiGHTWORKS.どういった改善を⾏ったか62毎⽇Jenkinsで計算するツールを⽤意計算結果をSlackチャンネルに通知⼀定サイズを超えたらインフラチームにメンション付きで通知
Copyright 2019 DELiGHTWORKS.改善を⾏った結果63ダウンロードサイズ計算の⼿間から解放された︕リリースの2週間前に実施することを覚えておく必要がなくなった︕
ブランチ間マージ補助ツール(計画中)
Copyright 2019 DELiGHTWORKS.複数ブランチでの並⾏開発651~2ヶ⽉先に配信予定のイベントの開発とQAが複数並⾏して進⾏それぞれGitのブランチを分けて開発
Copyright 2019 DELiGHTWORKS.リリースブランチ間マージについて66各ブランチで⾏われた修正は次にリリース予定のブランチにも反映
Copyright 2019 DELiGHTWORKS.マージの必要性と頻度の⾼さ67修正内容を次バージョンでも反映させるためマージが必要コミット差分をチェックしてマージする頻度はほぼ毎⽇
Copyright 2019 DELiGHTWORKS.ブランチ間マージ作業での問題点168コミット差分チェックからマージプルリク作成まで全て⼿動
Copyright 2019 DELiGHTWORKS.ブランチ間マージ作業での問題点269⼀部ファイルはコンフリクトする場合があり解決が必要
Copyright 2019 DELiGHTWORKS.ブランチ間マージ作業での問題点370並⾏開発している全てのブランチ間でマージが必要
Copyright 2019 DELiGHTWORKS.ブランチ間マージ作業での問題点471この煩雑なブランチ間のマージ作業は(ほぼ)毎⽇⾏う必要がある
Copyright 2019 DELiGHTWORKS. 72どのような改善が⾏えるか
Hubを使ってプルリク作成を⾃動化
Copyright 2019 DELiGHTWORKS.プルリク作成の⾃動化74Hub でプルリク作成が可能>hub pull-request コマンドで作成プルリクが0件の時=マージ可能な時、マージプルリクを⾃動で作成する
Copyright 2019 DELiGHTWORKS. 75これできっと楽になれる
Copyright 2019 DELiGHTWORKS.最後に76何のために認知資源を節約するのか?
Copyright 2019 DELiGHTWORKS. 77重要かつ緊急(予期せず発生するタスク)重要だが緊急でない重要でないが緊急 重要でなく緊急でない⾼ 緊急度 低⾼重要度低予期せず発⽣するタスクに対処できる余裕を⽣み出す
Copyright 2019 DELiGHTWORKS. 78重要かつ緊急(予期せず発生するタスク)重要だが緊急でない(準備, 計画, 挑戦,成長)重要でないが緊急 重要でなく緊急でない⾼ 緊急度 低⾼重要度低計画的な仕事、⾃⼰成⻑のための余裕を⽣み出す
Copyright 2019 DELiGHTWORKS.