Upgrade to Pro — share decks privately, control downloads, hide ads and more …

モバイルゲーム運営における認知資源をより有効活用していくための取り組み/Devsumi2019 Fukuoka DELiGHTWORKS

モバイルゲーム運営における認知資源をより有効活用していくための取り組み/Devsumi2019 Fukuoka DELiGHTWORKS

Kazumasa Kuramochi

August 29, 2019
Tweet

Other Decks in Programming

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

  4. Copyright 2019 DELiGHTWORKS. 4
    本⽇のお話

    View Slide

  5. Copyright 2019 DELiGHTWORKS. 5
    重要かつ緊急 重要だが緊急でない
    重要でないが緊急 重要でなく緊急でない
    ⾼ 緊急度 低





    ⻘⾊部分の仕事の対応⼒を上げるには?

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  23. 認知資源

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  29. プルリク リマインダー

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  77. Copyright 2019 DELiGHTWORKS. 77
    重要かつ緊急
    (予期せず発生するタスク)
    重要だが緊急でない
    重要でないが緊急 重要でなく緊急でない
    ⾼ 緊急度 低





    予期せず発⽣するタスクに対処できる余裕を⽣み出す

    View Slide

  78. Copyright 2019 DELiGHTWORKS. 78
    重要かつ緊急
    (予期せず発生するタスク)
    重要だが緊急でない
    (準備, 計画, 挑戦,成長)
    重要でないが緊急 重要でなく緊急でない
    ⾼ 緊急度 低





    計画的な仕事、⾃⼰成⻑のための余裕を⽣み出す

    View Slide

  79. Copyright 2019 DELiGHTWORKS.

    View Slide