「チームで最高のゲームを作る」ためのエンジニアマネージャーの心得

スマホゲームの企画・運営・配信を行っているサムザップでは、1年に一度、その年の振り返りと活躍したメンバーの表彰を行う総会を実施しております。
2020年4月に行われた総会において、ベストエンジニア賞を受賞したのはエンジニアマネージャーの野口でした。
現在運用タイトルのエンジニアリーダーとして、日々のサービス運用をスムーズ進行するために尽力している彼に、ベストエンジニア賞の受賞のことや日々の業務で大切にしていることを聞きました。
また、弊社では2020年5月時点で在宅での業務を推奨していることもあり、本インタビューはビデオチャットで行いました。

f:id:sumzap_engineer:20200529114448p:plain

まず最初に行ったのはタスクを一覧化しゴールを明確にすること


—— 現在どのような業務を担当してますか?

運用タイトルで、エンジニアリーダーとして主に開発管理や人のマネジメントを担当しています。
半年ほど前に現プロジェクトにヘルプ異動し、当初はサブリーダー的な役割で負荷の高いメンバーの作業巻取りや業務効率化、開発フローの整備、ビルド管理などを行っていました。
現在はチーム体制や開発自動化の仕組みもある程度整ってきたので、徐々に役割を個々のエンジニアに分散してマネジメントに専念するようになってきています。

—— 受賞した感想をお聞かせください。

素直に嬉しいですが、何より周囲の環境に恵まれたなと感じています。
難易度の高い技術的ハードルをクリアしてくれたエンジニアや、タスクの精査/棚卸しを協力的に実施してくれたプランナーなど、挙げるとキリがありませんが、緊迫したスケジュールの中、プロジェクト全体で協力して困難を乗り切れたことが大きいと感じています。
期限に追われた状況の繁忙期では、チームがピリピリした空気になってしまうこともあるかと思いますが、現プロジェクトではそれをほぼ感じることなく、一丸となって共通目標に向かえたのが大きかったです。

—— 自身が思う受賞の決め手などはありますか?

超繁忙期にジョインして、開発フローの整備や積み残しタスクの消化に注力し、なんとか期限内にプロジェクトのマイルストーンを達成して運用を正常化するところまで持っていけたことが大きいと思います。
また、そのときに自分の役割を制限せずに、色々なところに首を突っ込んで改善しようとしたのが評価されたのかなと思います。
異動後にはまず時間をかけてプロジェクト全体を俯瞰して、サポートが必要だと感じる箇所の特定から始めました。
その後、技術的な課題解決、開発フローの整備、全体のタスク整理、スケジュールの調整など、開発のフェーズや優先度に応じて不足していると感じる部分に手を入れていきました。

—— 例えばどのような取り組み/改善を実施されたのでしょうか?

異動後に最初に実施したタスクの管理についてお話しします。
異動した時点のチームは、全タスクの総量把握や、スケジュールに対する進捗の管理がうまくできておらず、今の進捗は果たしてマイルストーンの期限に対して間に合っているのかどうかが不明瞭になっていました。
チーム全員がなんとか良いものを作ろうと一心に頑張っている一方で、ゴールが見えずひたすら辛い状態が続いているような状況でした。
まず残タスクを一覧化し、上からSABCの優先度をつけて、マイルストーンではBまでを対応すると線引きを定義しました。 この線引きによって、ブラッシュアップや要望などの対応ラインが曖昧になることを防ぎ、またタスクの不用な増加を抑制して作業が溢れてしまうのを防止しました。
次に日々の消化速度と起票速度をバーンダウングラフで可視化し、チームの開発速度を概算できるようにしました。
Wrikeというチケット管理サービスでタスク管理をしていたので、WrikeのAPIをGoogleAppsScriptから利用してスプレッドシート上でグラフ化しました。

//WrikeAPIを使うサンプルコード
//※事前にWrikeの設定画面からトークンを発行しておく
//
//APIリファレンス
//https://developers.wrike.com/overview/

function Api(param)
{
  var url = "https://www.wrike.com/api/v4/" + param;
  var options ={"headers":{"Authorization": wrikeToken},"method": "get","payload" : ""};
  var response = UrlFetchApp.fetch(url,options);
  var jsonData = JSON.parse(response.getContentText());
  return jsonData;
}
//メンバー情報の収集
var members = Api("contacts");
//タスクの収集
var tasks = Api("tasks");


速度実績の統計サンプルの数が十分取れるまでは、グループ会社の過去の実績をもとに、どの程度のタスク数が消化できるかを概算して、タスクの棚卸しとスケジュールの調整を行いました。
並行してチームの増員やヘルプを募り、あとはゴールを目指して走るだけの状態にしました。
その後も定期的に棚卸しを行い、フィードバックやブラッシュアップで増加するタスクを精査して数を押さえつつ、マイルストーンまでにやると決めた作業を何とか全て完了できるように調整しました。

f:id:sumzap_engineer:20200527181129p:plain
ビデオチャットでのインタビューの様子

自らの役割を制限しない


—— 自身の業務をこなす上で一番大切にしていることはなんですか?

プロジェクトの目的のために、自らの役割を制限しないことだと考えています。
目的とは、安定した成果物をユーザのもとに届けて楽しんでもらうことです。
これは誰の作業だとか、自分の担当範囲じゃないということに縛られずに、最終的な成果物がきっちり出来ているか/出来る見込みかを常に念頭に置いて行動しています。
今のプロジェクトに異動して最初に実施したタスク管理も、エンジニア職として実施したのではなく、プロジェクトで最も改善するべきポイントだと感じ、チームの一員として職種の垣根を越えて改善に踏み切りました。
現在もエンジニアリーダーとして安定開発と品質担保を実現するために、開発全体に目を向けて、スケジュールは問題ないか、フローに不備がないか、効率は悪くないか、不具合を予防できているかなど、他のセクションの動きも含めて日頃から意識しています。
あとは周囲に気配りをするように心がけています。
ゲームは全ての開発をチームで行っているため、コミュニケーションが非常に重要です。
日々の対話では相手を尊重するようにしています。
マネージャー職だと他の職種との橋渡しをよくすることになりますが、そのときに話しかけやすい、相談しやすいと思ってもらえるように気をつけています。

—— エンジニアをマネージメントするときに工夫していることはありますか?

協力的なメンバーが多く恵まれた環境なので、特別何かしているわけではないですが、無理を言って作業をお願いする場合などには、口頭で話す/目的を伝える/休みを調整するなど、最終的に納得のいく形にすり合わせるように調整しています。
また、常日頃のコミュニケーションを良く取って、不安や不満がないか拾い上げています。
月々の面談の際には、まず相手の働きによる成果を挙げて、引き続き期待していることを最初に話したりなど、話しやすい環境になるよう進め方を工夫していたりします。

—— 自身が思う一番のやりがいはなんですか?

ものづくりが好きなので、良いプロダクトが出来て、ユーザの皆様に楽しんでもらえる/反響をもらえることが一番嬉しいですね。
また最近では、チームの課題を1つずつ解消して、徐々に開発環境が良くなっていくのを実感することにも手応えとやりがいを感じています。

—— 最後に今後の目標をお聞かせください。

まだまだチーム課題は残っているので、まずはそれらを順次解消しながら、より良いプロダクトを作れる環境を整備したいと考えています。
また、プロジェクトの目的のために役割を自ら制限しない、お互いにボールを拾い合えるメンバーをもっと増やして、各々が意思をもって自走できる強いチーム作りをしていきたいと思っています。

f:id:sumzap_engineer:20200529115015j:plain
野口 冬馬

2014入社
AdobeAIR/Unityエンジニアを経て、現在は運用タイトルのエンジニアマネージャーをしています。