スマートフォン向けゲームアプリ開発のプロジェクトです。
規模は、フロントエンジニア3~5名、サーバーエンジニア2~3名、グラフィックデザイナー3~5名、プランナー2~4名の中規模プロジェクトです。
私は、その中のフロントエンジニアとして配属されました。
【基本情報】
〇エンジニア能力
・Unityの基本的な操作方法、UI作成、C#プログラムの設計・実装を行う事ができます
・渡された仕様書をただ実装するのではなく、問題や矛盾点などの指摘を行い、話し合いを行いながら最善の実装を行う事ができます
〇マネージメント能力
・フロントエンジニア部門内での、タスク管理、スケジュール管理を行う事ができます
〇このプロジェクトで発揮した能力
・立場にとらわれず、何が最善かを常に考えて行動する
・認識の齟齬が出ないように、曖昧な事柄は全て明確にするように努める
【問題点と対処】
〇作業タスクと見積もりが無い
⇒エンジニアリーダーが用意していなかったので、ディレクターとエンジニアリーダーの承認を得て自分で資料を作って提出しました。結果、この資料をベースに会議が進められ、プロジェクトの進行方針が決められました。
〇スケジュール管理をする人が居ない
⇒エンジニアリーダーはスケジュール管理未経験との事だったのと、技術寄りの方だったので、技術開発の方に注力して頂いた方がいいと判断し、ディレクターの承認を得て、私の方でスケジュール管理行いました。スケジュール管理がされていないと、現状と未来を見失うので、誰かが行う事は必須だと考えます。少なくとも、現状の状況報告が出来なくなる、という事はなくなりました。
〇担当者不明のタスクが発生する
⇒チャットツールなどでのバグ報告や、誰かやっといてください等の、担当者不在のまま放置される恐れのあるタスクを拾い上げて、担当者を割り振ったり、どのように扱うのかを確認を取ったりしました。
【スケジュール管理者としての作業】
〇作業者への配慮
私がやられたら嫌なことはしない、という考えがあるので、それを基に意識した事です。
・会議の時間は極力無くす
⇒基本は文章で共有。必要があれば、口頭で短時間のMTGのセッティング。
・作業者のタスクが無くならないように、タスク作成
⇒現状と未来がわかっているので、2週間分の作業は無くならないように、実際に何を行う物なのかという細分化まで落とし込んだ作業タスク表を作成した。
・タスクの進行管理表などの更新は、口頭で状況を確認して全部引き受ける
⇒作業入力ルールなどを覚えてもらうくらいなら、聞きたい情報を聞いて自分の手で更新した方が効率がいいと判断したため。
・作業を行う理由等を納得して行って貰いたかったため、何故そのタスクを行うのか等、プロジェクト全体の状況を共有
⇒作業の理由が無いと、もやもやが残ったままの作業となり、効率が落ちると考えたため、出来る限り情報を共有して、現状を理解して頂けるよう努めました。
・これらのことに不満は無いか、一定周期ごとにヒアリング
⇒独り善がりにならないように気を付ける為。
これらをに配慮して作業を行っていただきました。
【エンジニアとして作業しての作業】
スケジュール管理が優先と考えるので、自分の手が止まるとボトルネックになるような作業は極力避け、すぐに必要ではないが、いずれ必要になる機能を中心に作業を行いました。
・開発初期に、サーバーとの通信を行う為のユーティリティクラス設計実装
・デバッグ機能強化
・アセットバンドル等、データアップデートの為の設計・実装作業
・量産化のフローが確立してきた後の、UI作業
・効率化の為のツールやエディター等の機能実装