経験したこと
ゲーム追加のプロジェクトリード
ゲーム10タイトルの機能追加の開発およびプロジェクトのリードエンジニアを担当し、デザイナーやインフラエンジニアなど様々な人を巻き込み、プロジェクトマネジメントを行いました。
プロジェクトマネジメントする上で、課題は以下です。
- ドメイン知識が必要な領域のため、ゲーム追加に関するアーキテクチャのオンボーディングが必要がある
- ユーザーの満足度と最速でリリースできる最低限のゲームマネージャー機能の要件定義をする必要がある
- プレスリリースを伴うため、精度の高いスケジューリングを行う必要がある
そのため以下のアクションを行いました。
- システムアーキテクチャやゲームイメージなどのドメイン知識に関するオンボーディング
- 必要最低限のリリースできるゲームマネージャー要件をチーム全体で認識を合わせ、意思決定のスピードを短縮する
- タスクを最大1日以下まで細分化し見積もりを行い、デイリーで進捗確認を行い必要があればサポートをする
成果として、以下が挙げられます。
初期リリースにおけるゲームマネージャーの要件定義の提供項目の認識の共通化
デプロイができないトラブルなどが起きたにも関わらず、当初のスケジュール通りリリースできたこと
プロジェクト完了後も担当エンジニアがゲーム追加のみならず、他領域のタスクに着手可能になったこと
ゲームマネージャーのリアーキテクチャ
ゲームマネージャーのバックエンドの実装が複雑化していることで以下の課題があり、リアーキテクチャに取り組みました。
- 開発者によって実装方針が異なり、メンテナンス性が低く、レビューのコストが高い
- 同時並行で開発するために最適化されていない(コンフリクトが大量に発生してしまう)
根本的な課題はとして、以下が挙げられます。
- ゲームによって異なる仕様の複雑性
- 同じファイルに対して実装することにより、コンフリクトが避けられない
そのため以下のアクションを行いました。
- ゲーム設定の取得・更新RPCを共通化すること
- 新たなパッケージを作成し、複雑な仕様を抽象化すること
- 実装をゲームごとにファイルを分離すること
成果として、以下が挙げられます。
- アプリケーションの実装工数を2週間から1週間に短縮
- バックエンドとフロントエンドの開発分業が可能になり、業務委託を効率よく行えたいこと
- システムマイグレーション時に、バックエンドとフロントエンドの開発コストを大幅削減