人生初のエンジニアリーダーを経験して得たモノ

[CYBIRD Advent Calendar 2022](https://qiita.com/advent-calendar/2022/cybird) 1日目担当の[@cy-seiyan](https://qiita.com/cy-seiyan)です。2018年1月にサイバードに入社し、イケメンシリーズのサーバサイドをメインに担当しております。入社してから丸4年が経過し2023年1月で5年目を迎える事に時の流れの速さを実感しています…。

今年もサイバードはアドベントカレンダーを開催致します。
大見得を切ってトップバッターを名乗り出たのですがドキドキしながら記事を執筆しています。

## はじめに
私は2020年9月にサイバードから配信されている[イケメン革命 アリスと恋の魔法](https://ikemen.cybird.ne.jp/title/kakumei/original/)の運営チーム(以下、革命チーム)にジョインし、サーバサイドエンジニアとしてイケメン革命のゲーム内施策の開発や機能改善、不具合修正等を担当しイケメン革命を支えてきました。

## まさかのエンジニアリーダー就任
2021年11月、革命チーム内で人員編成等が発生し私は当初、革命チームと他チームの稼働を50:50の配分で普段の業務を進める方向だったのですが、革命チームでの稼働100％で尚且つエンジニアリーダーの座をそれまでリーダーを担当していたエンジニアメンバーからバトンタッチを受けました。革命チームにてエンジニア人生で初めてエンジニアリーダーを経験して得たモノやチーム内での私の立ち回り方等、色々書き連ねていこうと思います。

## 誓い
エンジニアリーダーを行う上で私はこの言葉に沿って行動する事を強く決めました。某特撮番組にて登場したある言葉の一つ、「__他人の力を頼りにしない事__」を。
これは、周りの人間を「信用・信頼するな！信じるのは自分だけ！」と言う意味ではなく、「仕事をする時や何かしらの目的の達成の為に動く時、困った時に助けてくれる心強い仲間が必ずいる。しかしその仲間はいつでもどこでも助けてくれるとは限らない。こちらからのアラートを見逃すかもしれない、別件で動く事が出来ない等といった事がある。まずは自分一人の力で問題を全て打ち倒そう。」と言う意味や解釈が込められています。これまで革命チームで困った事があった時、メンバーに相談したりする事が多かったのでリーダー業の話を頂いた時にこの言葉に沿って立ち回ろうと決めました。
また、リーダーをやる以上あらゆるタスクを必ずスケジュール内で完遂させ誰にも迷惑を掛けない！っと強く思いました。

## 主にやっていた事
上記で早速ポエム的な事を色々言いましたが、私がやっていた事としては主に下記になります。

- ゲーム内施策の実装＆不具合修正等の対応。
  - プラスして実装を手伝って貰っている非エンジニアメンバーのサポート。
- 問い合わせ対応(CSや企画メンバー、プロデューサーやディレクターからの相談対応)。
- エンジニアスケジュール確認。
- リーダー以上のメンバーが参加するリーダー定例と言ったMTG等の参加。

人員編成前と比較しやるべき事が増えかなりバタバターってしましたが、だいぶ慣れてきたと言いますか解ってきた事が色々自分の中で出て来たのと私の立ち回り方等を書こうかと思います。

## 時には人に頼る大切さ
2022年1月、昨年の12月末に革命チームから退場したメンバーが実装・デバッグ担当していたオファーウォール型広告のタスクを引継ぎ、当初の予定である2022年1月下旬のリリースに向けて動作検証と発生した不具合の調査・改修等を行ったのですが、リリーススケジュールを再度見直す事になってしまいました。
最終的に他チームにてオファーウォール型広告の実装経験があるメンバーの助力を得て無事、リリースしました。
スケジュール内に完遂させる・自分の力で全ての問題を解決すると誓いを立てたはずがやらかしてしまい、物凄く凹んでしまったのですがここで気付いた事があります。
意固地になって「リーダーを担っている以上、一人で全て対応し解決する！迷惑を掛けない！」っという意識が逆に業務・事業を前に進める事を阻害してしまうと気付き、どうしても前に進める事が出来ない場合は「__人に頼る__」っという事も重要だと改めて知りました。
某国民的アニメの登場人物が「__自慢じゃないけど、ぼくは人に頼る事にかけては大得意なんだ！__」と言うセリフを言っていた事があるのですがこれって本当に物凄いスキルだと思いました。
大惨事になる前にこういった事も大事だと言う事を学びました。

## 問い合わせは焦らず対応し周りを不安にさせない
恥ずかしながらこれまで問い合わせ対応を行った時、少しでも詰まったら直ぐにメンバーにすぐ相談を行っていたのですが、人員編成でエンジニアメンバーがサーバサイドエンジニア1名(筆者である私)とアプリエンジニア1名の計2名の体制に変更になった為、2022年1月から1人で調査依頼対応や不具合修正対応を行う事となり不安でした。
問い合わせに対する返答も遅くなる事等もありましたが、問い合わせ対応を行っていく内に気付いた事があります。

- 現在のステータスを伝える。
  - 今自分がどこまで調査出来ていて、どの部分が終わっていないか・どこまで判明しているのか・仕様的にどうなっているか。
  - 最後まで完璧に調査をしてから返答をするスタンスだと企画メンバー・ディレクター・CS側も不安になると思ったので、ステータス・状況等について都度連絡する。
- 最初から全ての原因が自分の担当している領域だと考えない。
  - サーバ側じゃなくアプリ側起因の事もある。その逆も然り。
  - 私は最初、来ている問い合わせ全てサーバ側が原因だろうと思ったせいで調査に行き詰まる事もあった。アプリ側の方でクラッシュログが飛んで来ていないかアプリエンジニアにも協力要請をする。
- 調査しても根本たる原因が解らない場合もある。
  - 調査しても不明、再現性が取れない等の場合、企画メンバー・ディレクター・CS側に対して「こういった事を試して欲しい」等、自分が考え付いた内容を伝える。そこで再現性があるか、どうしても解らない場合、幾つかプランを挙げてどうするか判断を仰ぐ。

直ぐに原因が解らない場合、カケラを少しずつ紡いで行くように再現性の確認・エラーログが出ていないかの確認・現在の仕様について処理を一つずつ追っていけばどうにかなると感じました。

## スケジュールは厳しいと感じたらちゃんと言う
イケメン革命の全体運用スケジュールをディレクターから貰い、エンジニアの実装・デバッグスケジュールの確認を行う上で同じ時期に実装・デバッグのスケジュールがいくつか被り、バタバタする可能性がある場合は早め早めに相談する事・明らか厳しいと思うモノは厳しいと話をする事を心掛けていました。

某ロボットアニメの監督が制作現場で制作進行スタッフに対して「遅れた理由が掛け持ちしている仕事のせいにするな」「こんなスケジュールでは仕事出来ませんと断れ！現場主義で言えばそういった意見も出してもいいんだよ！貴方達は奴隷と同じようにやってるから。」と仰っていたのですが、イケメン革命のスケジュール周りで「厳しいものは厳しい」と言う事と代替案等の提示も重要と言うのが身に沁みました。

## 企画メンバー・プロデューサー・ディレクターからの相談
施策周り等で企画メンバーやプロデューサー、ディレクターから売上やDAU等のリカバリで追加実装等についての相談を受ける事があるのですが、その際に心掛けていた事があります。

- なるべく要望に応える様にする。
  - 某ゲーム会社の代表が「プログラマーはノーと言っちゃいけない」と仰っていたのですが、実装が物凄く困難と予想されるとしても無理って言った瞬間に全てがダメになるからとの事で自分は相談受けた時にどうにか出来ないかロジック周りの調査等を行っていました。
- 本当に厳しい場合、「無理」と言う言葉だけは言わない。
  - どうしても実装・改修が厳しいと感じた場合、「もしやるならば改修にこれだけ掛かりそうです。」「もしくはこういった方法もあるのですが、こちらはどうでしょうか。」と実際に掛かると予想される工数でもやるか、自分がいくつか提案し、提示した方法を取るかどうするかの判断を仰ぐと言うのを取ってました。
  - 対応した事例を挙げるならば、2022年6月に行われた大型施策にて売上等のリカバリについてプロデューサーから相談を受けた際にいくつか案を提示しリカバリ対応を行いました。

## ゲーム内で使用するマスタデータの徹底チェック
ゲーム内で開催する期間限定イベント等の施策実装でマスタデータの作成を手伝って貰っている非エンジニアメンバーからデータベースに投入するマスタデータの確認依頼を受け、施策の開催期間等のパラメータを社内独自のツールでの機械的チェックとエンジニアによる人的チェックを徹底的に行っておりました。
非エンジニアメンバーのマスタデータ作成の練度向上＆マスタデータの投入内容確認を徹底的に行った影響か今年に入ってから本番環境にてマスタデータ起因の障害等はございませんでした。

## まとめ
色々ずらずらと書き連ねてきましたがこの記事を見ている方は恐らく「んなもん普段から当たり前にやってる事だよ！」や「むしろそういう当たり前の事が全く出来ていなかったのか筆者よ…(戸惑)」と言った意見が出ているかもしれません。ですが、エンジニアリーダーやって気付いた事としてはさっと纏めると…

- 最初から完璧を求めすぎない。
- 相談・説得などをする前にちゃんとその理由や代替案を提示する。
- 本当に困ったら抱え込まない、手を上げる。
- 自分のステータスや得た情報をしっかりと共有する。

ですかね。「当たり前の事を当たり前にやる。」と言う事をスローガンとして掲げ徹底している組織もあると耳にした事があるのですが、本当にその通りだなぁ…と感じました。

リーダーだから全て自分でやらなくてはいけない、完璧に立ち回らなくてはいけないって思うと焦って色々と仕損じると理解したので、とあるファンタジー系アニメの登場人物が言っていた「__常に余裕を持って優雅たれ__」と言うのは色々的を射ているなぁ…っとしみじみ思います。


最後まで本記事を読んで頂き誠にありがとうございます。私がエンジニアリーダーを経験して得たモノは当たり前の事が多い為、大いに参考になるかどうかと言われると難しいかもしれません。しかし本記事を通して「初めてエンジニアリーダーやる事になった！」と言う方々に対して何かしらの参考になれば…っと思います。

[CYBIRD Advent Calendar 2022](https://qiita.com/advent-calendar/2022/cybird) 2日目は[@koroneko](https://qiita.com/koroneko)さんの「[改めて振り返るリモートワークの良し悪し](https://qiita.com/koroneko/items/50cb0a55436efd39e5ec)」です！