ハウテレビジョンブログ

『外資就活ドットコム』『Liiga』『Mond』を開発している株式会社ハウテレビジョンのブログです。

新卒1年目エンジニアの取り組みと成長

はじめに

この記事は HowTelevision Advent Calendar 2023 11日目の記事です。 昨日は 金丸さん(id:rinrin_how)の「採用・組織開発担当(新人)の視点での、当社のカルチャーのお話 - ハウテレビジョンブログ」でした。

qiita.com

今年の4月にハウテレビジョンに新卒入社した大平 (id:so_sky) です。

入社当初、私はインターンなどでの実務経験があるものの開発経験は浅く、エンジニアリングに対して不安を感じていました。半年後の目標は、既存のメンバーと同程度にタスクをこなすことであり、2, 3年は純粋なエンジニアとしての役割を果たすつもりでした。入社前についてはこちらの記事にまとまっております。

gaishishukatsu.com

しかし、意外にも自分が想定していた成長曲線を上回り、今では外資就活ドットコムの技術負債解消のPjM(プロジェクトマネージャー)も担っています。

今回は、この8ヶ月で経験した様々な出来事や成長の一端について、時系列で振り返りながらお伝えします。

4月頃:LPのデザインとタスク締切

入社後始めの1ヶ月は外資就活ドットコムの新規開発チームとして外資就活TerminalのLPの開発を担当しました。

このタスクを通じて、CSSで細かいデザインを実現する方法を学びました。それまでUIライブラリを主に利用していたため、LPのような複雑なデザインを実装する経験が不足していました。デザイン通りに細かくCSSを実装することは新鮮で、開発を終えた時にはこれまでにはない達成感がありました。

同時に、エンジニア以外のメンバー(PdM、デザイナー、マーケティング)と密接に連携する必要性に気づきました。コミュニケーションの円滑さがプロジェクトの進行に直結することを理解し、それ以降は積極的に情報共有や意見交換を行うようにしました。

また、この時期に仕事に対する責任感を強く感じました。入社直後から納期が定まっているタスクを担当し、それをクリアすることで自己管理や計画性の重要性を身に染みて理解しました。

エンジニアとしての業務以外にも、ロジカルシンキング研修など多くの研修もありました。これらの研修を通じて、仕事を進める上でのロジカルな思考法や問題解決のスキルを向上させることができました。

5月 ~ 7月:バックエンドのアーキテクチャやCIの高速化

5月からは外資就活ドットコムの技術負債解消チームに加わりました。

業務内容としては、PHPなどで書かれたコードを Next.js + TypeScript を用いたFrontendとGoを用いたBackendの構成で書き直すことです。

技術負債解消については、泉水さん (id:hc0001) による 技術負債解消プロジェクト・ツールやリソースの全社的な統廃合・イシューに向き合う部門再編などの話 - ハウテレビジョンブログ にも書かれております。

以前には、インターンを通じてわずかにGoを使用してBackendを実装したことがありましたが、アーキテクチャの面で不安を感じていました。そのため、技術負債解消のタスクを進めつつ、アーキテクチャの学習にも力を注ぎました。

当社のGo実装では、クリーンアーキテクチャやDDDを基にしたアーキテクチャを取り入れていましたが、細かなルールの決定が行われていない部分もありました。そのため、新たに得た知識を元に、ルールの整備や提案を行うなどしました。

アーキテクチャの勉強には以下の本を読みました。

www.amazon.co.jp

www.amazon.co.jp

また、テストに関しても取り組んだことがあります。

過去、リモートブランチにコミット・プッシュするたびに、毎回CIで全てのユニットテストを実行していました。しかし、この方法に疑問を感じ、mainブランチとの差分だけを対象にユニットテストを実行するように最適化しました。

詳細はこちらの記事に書いてます。

zenn.dev

8月~9月:プロジェクト推進のために個人でできること

この時期になると、自分が担当している既存画面のリプレースをどれだけ早く完了できるかをよく考えるようになりました。

技術負債解消プロジェクトにおいては、対象機能の仕様を正確に把握し、設計から実装、テスト、そしてリリースまでのサイクル内でボトルネックとなっている部分を見極め、具体的な時間短縮策を練る必要がありました。

特に力を入れたのは、PC画面、モバイル画面、そしてネイティブアプリの画面で同一のAPIを利用できるような新しいUI設計を提案しました。これにより、Backend開発に要する時間が短縮されるだけでなく、古い画面と比較してUI/UXを向上させることができます。

10月~12月:PjMとしての取り組み

技術負債解消プロジェクトを効果的に進めるため、私は個人最適化からチーム全体の最適化に取り組むべく、PjMに就任しました。

以下、私がPjMとして取り組んだ内容について記載します。

1. チーム全体の一体感を築く

まず初めに、私はチーム全体が同じ目標に向けて進むための基盤作りに焦点を当てました。そのために、スクラムのフレームワークを活用し、スプリント・デイリースクラムの整備を行いました。

  • スプリントの始めに目標の設定: 各メンバーがスプリント期間中に達成すべき目標を定め、これに向けて取り組みます。
  • デイリースクラムでの進捗確認: 毎日のデイリースクラムでは、進捗を確認し、困難な箇所や進めているタスクについて共有します。
  • スプリント終了時の振り返り: スプリント終了後には、目標の達成度を振り返り、成果や課題点を共有します。目標を達成できなかった場合は、その理由を明確にし、解決策をチームで協力して考えます。目標を達成できた場合でも、見積もりよりも効率的に取り組むことができたコツなどがあればチーム全体に共有します。

2. 進捗率の可視化

プロジェクト全体の進捗を正確に把握するために、進捗率の可視化にも力を入れました。

  • 目標進捗率の算出: 完了予定の期日を元に、その時点でどれだけプロジェクトが進んでいるべきかという理想的な進捗率を算出しました。
  • 実際の進捗率の算出: プロジェクト当初見積もっていた工数や実際の完了しているタスクを元に、プロジェクト全体の進捗率を算出しました。

これらのデータをグラフにまとめ、定期的に共有することで、プロジェクト全体の進捗が見えやすくなり、チーム内だけでなく、社内全体での認識の一致を促進しました。

進捗率グラフのサンプル

3. UI/UXの変更や不要機能の削除

既存画面のリプレースは基本的には既存画面と同じUI/UXをリプレース後の画面でも再現することが求められますが、以下のことにも重点を置いています。

不要機能の削除

既存の画面と同じUI/UXを再現する一方で、ユーザーがほとんど利用していない不要な機能は削除したいです。不要な機能を削除することで、技術負債解消に要する開発工数が削減されるだけでなく、MVP(最小限の実現可能なプロダクト)の優れたシンプルなUI/UXも実現されます。

同一エンドポイントを用いるためのUI設計

リプレース前のUI設計では、WebのPC画面やモバイル画面、アプリ画面で異なるエンドポイントの開発が必要である場合があります。新しいUI設計を行い、同一エンドポイントを用いることによって、開発工数を削減できるだけでなく、異なるプラットフォームでも統一的なユーザーエクスペリエンスを提供することができたり、保守・運用も容易になったりします。

まとめ

以上が新卒1年目のエンジニアとして私が実際に取り組んできた出来事や成長についての振り返りです。冒頭でも述べた通り、自分が入社当時想像していた成長曲線より大きく上回ることができた実感があります。与えられた役割がいつもその時点での能力を超えているおかげで、常に挑戦し、新たなスキルや洞察を身につけることができました。また、上長やメンターとの1on1する機会も定期的に設けられていたので、日々の業務では話せないような悩みの相談に乗ってくださったり、モチベーションを向上させるための良い刺激を与えてくださったりしました。このような環境で働くことは、自分自身の成長にとって非常に重要です。もし、この記事を読んでくれている方が学生さんなのであれば、企業選びの軸として「自己成長」を考慮することをお勧めします。

最後になりますが、今後もプロジェクトの円滑な進行のために、技術力だけでなくマネジメント力にも優れたエンジニアを目指して今後も精進して参ります。